数値化した YUV、彩度、色相 のデータを映像にオーバーレイしたり、コンソールに表示したり出来る。映像の表示方法はグラフで表示する方法と、映像に数値をオーバーレイする方法の2通りがある。
オプション
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 から 360 まで
HUEMED
該当フレームの色相の中央値。0 から 360 まで
HUEAVG
該当フレームの色相の平均値。0 から 360 まで
YDIF
現在フレームと1フレーム前の Y の差分。0 から 255 まで
UDIF
現在フレームと1フレーム前の U の差分。0 から 255 まで
VDIF
現在フレームと1フレーム前の V の差分。0 から 255 まで
stat
out 映像に対象部分を反映させる
tout, vrep, brng が指定できる。tout+vrep+brng で複数指定も可能
color, c
out の色指定。規定値:yellow
基本コマンド
YAVG の折れ線グラフに縦32ピクセルのグリッドを表示
ffplay -f lavfi -i "movie=input,signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255,drawgrid=0:0:0:32,format=yuv420p"
YAVG, YHIGH の複数表示
ffplay -f lavfi -i "movie=input,signalstats,split[0][1];[0]drawgraph=lavfi.signalstats.YAVG:min=0:max=255[YAVG];[1]drawgraph=lavfi.signalstats.YHIGH:min=0:max=255[YHIGH];[YAVG][YHIGH]blend=c0_mode=and,drawgrid=0:0:0:32,format=yuv420p"
グラフの表示形式は drawgraph
で設定できる。
ffplay -f lavfi -i "movie=input,signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255:mode=line:slide=frame:size=900x256,drawgrid=0:0:0:32,format=yuv420p"
テキストファイル(signalstat_drawtext)に表示させる内容を記載してそれを表示させる。表示する内容が増えるとそれだけ負荷も高くなる。テキストの表示位置は drawtext
で x=10:y=10 のように指定する。
drawtext で数値をオーバーレイする
ffplay input -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile='C\://WINDOWS/Fonts/arial.ttf':textfile=signalstat_drawtext.txt
signalstat_drawtext.txt の内容
time %{pts:hms}
Y (%{metadata:lavfi.signalstats.YMIN}-%{metadata:lavfi.signalstats.YMAX})
U (%{metadata:lavfi.signalstats.UMIN}-%{metadata:lavfi.signalstats.UMAX})
V (%{metadata:lavfi.signalstats.VMIN}-%{metadata:lavfi.signalstats.VMAX})
saturation maximum: %{metadata:lavfi.signalstats.SATMAX}
その他に表示できるものは drawtext
の Text expansion を参照する。ただし日本語は日本語が使えるフォントでないと文字化けする。
現在時間の表示 %{localtime}
フレーム番号 %{n}
フレームタイプ %{pict_type}
情報をテキストに保存する
ffprobe -f lavfi -i movie=input,signalstats="stat=tout+vrep+brng" -show_frames > signalstats.txt
特定シーンを取り出す場合は sp
で開始秒の指定と、trim
で長さ(秒)を指定する
ffprobe -f lavfi -i movie=input:sp=10,trim=duration=10,signalstats="stat=tout+vrep+brng" -show_frames > signalstats.txt
関連フィルタ