基本コマンド

コンソールに統計データを表示する。
ffprobe -f lavfi movie=input,signalstats="stat=tout+vrep+brng" -show_frames

統計情報をプレビューする。
ffplay -i input -vf signalstats=out=tout

drawgraphフィルタの併用で折れ線グラフを表示する。
ffplay -f lavfi -i "movie=input,signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255,drawgrid=0:0:0:32,format=yuv420p"

一定間隔で映像に線を引く drawgrid
メタデータを映像化する drawgraph, adrawgraph

metadataフィルタの併用でコンソールにを表示する。
ffplay -f lavfi -i movie=input,signalstats,metadata=print:key=lavfi.signalstats.YDIF:value=0:function=expr:expr='between(VALUE1,0,1)'

TVスケールから外れているピクセルをシアンで描写する。
ffplay -i input -vf signalstats=out=brng:color=cyan

複数のメタデータをログに出力する。
ffmpeg -i input -vf signalstats,metadata=mode=print:key=lavfi.signalstats.YAVG:file=YAVG.txt,metadata=mode=print:key=lavfi.signalstats.UAVG:file=UAVG.txt,metadata=mode=print:key=lavfi.signalstats.VAVG:file=VAVG.txt -f null -
ffprobe -v error -f lavfi -i movie=input,signalstats -select_streams v:0 -show_entries packet=pts_time -show_entries packet_tags=lavfi.signalstats.YAVG,lavfi.signalstats.UAVG,lavfi.signalstats.VAVG -of csv > YUVAGV.csv

メタデータをコンソールに表示する metadata, ametadata

YUVの値だけを改行してテキストに書き出す。trim=end_frame=1を外すと全フレーム出力する。
ffprobe -f lavfi -i "movie=input,signalstats,trim=end_frame=1" -show_entries frame_tags=lavfi.signalstats.YAVG,lavfi.signalstats.UAVG,lavfi.signalstats.VAVG -of default=noprint_wrappers=1:nokey=1 > yuv.txt

trim フィルタの使い方

YUVのYの値を映像に描写する。
ffplay -i input -vf signalstats,drawtext=y=h/32:fontfile=C\\://WINDOWS/Fonts/arial.ttf:fontsize=36:fontcolor=white:box=1:boxcolor=black@0.4:text='"Y ("%{metadata\:lavfi.signalstats.YMIN}-%{metadata\:lavfi.signalstats.YLOW}-%{metadata\:lavfi.signalstats.YAVG}-%{metadata\:lavfi.signalstats.YHIGH}-%{metadata\:lavfi.signalstats.YMAX})'

文字を描写する drawtext

他のアプリケーションに利用しやすいJSON形式に書き出す。
ffprobe -f lavfi -i "movie=input,signalstats,trim=end_frame=100" -show_entries packet=pts_time -show_entries frame_tags=lavfi.signalstats.YAVG,lavfi.signalstats.UAVG,lavfi.signalstats.VAVG -of json > yuv.json

明るさを調べるだけならdeflickerフィルタでも可能。
フリッカー(ちらつき) を低減する deflicker

公式ドキュメント:FFmpeg Filters Documentation : signalstats

オプション

  • stat[flags]
    コンソールに統計データを表示する
    既定値:0
    • 0:表示しない。既定値
    • 1, tout
      時間的な異常値のピクセルを識別する。時間的な異常値とは同じフィールドの隣接するピクセルとは異なるピクセルである
    • 2, vrep
      縦のラインの反復を識別する。縦のラインの反復にはフレーム内の近似のピクセルを含む
    • 3, tout+vrep
    • 4, brng
      TVスケール(リミテッドレンジ)から外れているピクセルを識別する
    • 5, tout+brng
    • 6, vrep+brng
    • 7, tout+vrep+brng
  • out[int]
    映像に統計情報をハイライト表示する
    • 0, tout
    • 1, vrep
    • 2, brng
  • color, c[color]
    ハイライトの色指定
    既定値:yellow
    メタデータでの設定項目。metadatadrawgraphを併用する。以下は8ビット深度の例。9, 10 ,12, 14, 16の高ビット深度にも対応している。
    • YMIN
      該当フレームの Y の最小値。0 から 255 まで
    • YLOW
      該当フレームの Y の10%の値。0 から 255 まで
    • YAVG
      該当フレームの Y の平均値。0 から 255 まで
    • YHIGH
      該当フレームの Y の90%の値。0 から 255 まで
    • YMAX
      該当フレームの Y の最大値。0 から 255 まで
    • UMIN
      該当フレームの U の最小値。0 から 255 まで
    • ULOW
      該当フレームの U の10%の値。0 から 255 まで
    • UAVG
      該当フレームの U の平均値。0 から 255 まで
    • UHIGH
      該当フレームの U の90%の値。0 から 255 まで
    • UMAX
      該当フレームの U の最大値。0 から 255 まで
    • VMIN
      該当フレームの V のでの最小値。0 から 255 まで
    • VLOW
      該当フレームの V のでの10%の値。0 から 255 まで
    • VAVG
      該当フレームの V のでの平均値。0 から 255 まで
    • VHIGH
      該当フレームの V のでの90%の値。0 から 255 まで
    • VMAX
      該当フレームの V のでの最大値。0 から 255 まで
    • SATMIN
      該当フレームの彩度の最小値。0 から 181.02 まで
    • SATLOW
      該当フレームの彩度の10%の値。0 から 181.02 まで
    • SATAVG
      該当フレームの彩度の平均値。0 から 181.02 まで
    • SATHIGH
      該当フレームの彩度の90%の値。0 から 181.02 まで
    • SATMAX
      該当フレームの彩度の最大値。0 から 181.02 まで
    • HUEMED
      該当フレームの色相の中央値。0 から 360 まで
    • HUEAVG
      該当フレームの色相の平均値。0 から 360 まで
    • YDIF
      現在フレームと1フレーム前の Y の差分。0 から 255 まで
    • UDIF
      現在フレームと1フレーム前の U の差分。0 から 255 まで
    • VDIF
      現在フレームと1フレーム前の V の差分。0 から 255 まで
    • YBITDEPTH
      該当フレームの Y のビット深度。0 から 16 まで
    • UBITDEPTH
      該当フレームの U のビット深度。0 から 16 まで
    • VBITDEPTH
      該当フレームの V のビット深度。0 から 16 まで

    メタデータ出力内容。

    lavfi.signalstats.YMIN
    lavfi.signalstats.YLOW
    lavfi.signalstats.YAVG
    lavfi.signalstats.YHIGH
    lavfi.signalstats.YMAX
    lavfi.signalstats.UMIN
    lavfi.signalstats.ULOW
    lavfi.signalstats.UAVG
    lavfi.signalstats.UHIGH
    lavfi.signalstats.UMAX
    lavfi.signalstats.VMIN
    lavfi.signalstats.VLOW
    lavfi.signalstats.VAVG
    lavfi.signalstats.VHIGH
    lavfi.signalstats.VMAX
    lavfi.signalstats.SATMIN
    lavfi.signalstats.SATLOW
    lavfi.signalstats.SATAVG
    lavfi.signalstats.SATHIGH
    lavfi.signalstats.SATMAX
    lavfi.signalstats.HUEMED
    lavfi.signalstats.HUEAVG
    lavfi.signalstats.YDIF
    lavfi.signalstats.UDIF
    lavfi.signalstats.VDIF
    lavfi.signalstats.YBITDEPTH
    lavfi.signalstats.UBITDEPTH
    lavfi.signalstats.VBITDEPTH

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)