基本コマンド

コンソールに統計データを表示する。
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 まで

コメントを残す

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

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