映像の YUV、彩度、色相を映像にオーバーレイしたり、コンソールに表示したり出来るdrawgraph
フィルタと、音声の周波数や音量などを映像にオーバーレイしたり、コンソールに表示したり出来るadrawgraph
フィルタの使い方。出力フォーマットは RGBA で色指定の AA の値を小さくすることでオーバーレイしたときに背景が映る。
メタデータをコンソールに表示する metadata, ametadata
基本コマンド
signalstats
フィルタを使って YUV のデータを表示している。
ffplay -i input -vf "signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255,drawgrid=0:0:0:32,format=yuv420p"
ffplay -f lavfi -i "movie=input,signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255,drawgrid=0:0:0:32,format=yuv420p"
YAVG、UAVG、VAVGの複数表示。
ffplay -i input -vf "signalstats,drawgraph=m1=lavfi.signalstats.YAVG:m2=lavfi.signalstats.UAVG:m3=lavfi.signalstats.VAVG:min=0:max=255:bg=white:slide=scroll:mode=bar,drawgrid=0:0:0:32,format=yuv420p"
ffplay -f lavfi -i "movie=video,signalstats,drawgraph=m1=lavfi.signalstats.YAVG:m2=lavfi.signalstats.UAVG:m3=lavfi.signalstats.VAVG:min=0:max=255:bg=white:slide=scroll:mode=bar,drawgrid=0:0:0:32,format=yuv420p"
drawtext
フィルタでテキストファイル(signalstat_drawtext)の内容をオーバーレイして表示させる。表示する内容が増えるとそれだけ負荷も高くなる。テキストの表示位置はdrawtext
フィルタのx=10:y=10のように指定する。
ffplay -i input -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=C\\://WINDOWS/Fonts/arial.ttf:textfile=signalstat_drawtext.txt:borderw=1:bordercolor=white
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}
その他の設定例。
Y (%{metadata:lavfi.signalstats.YMIN}-%{metadata:lavfi.signalstats.YLOW}-%{metadata:lavfi.signalstats.YHIGH}-%{metadata:lavfi.signalstats.YMAX}) U (%{metadata:lavfi.signalstats.UMIN}-%{metadata:lavfi.signalstats.ULOW}-%{metadata:lavfi.signalstats.UHIGH}-%{metadata:lavfi.signalstats.UMAX}) V (%{metadata:lavfi.signalstats.VMIN}-%{metadata:lavfi.signalstats.VLOW}-%{metadata:lavfi.signalstats.VHIGH}-%{metadata:lavfi.signalstats.VMAX}) Sat AVG %{metadata:lavfi.signalstats.SATAVG} Sat MAX %{metadata:lavfi.signalstats.SATMAX} Hue AVG %{metadata:lavfi.signalstats.HUEAVG} Hue MED %{metadata:lavfi.signalstats.HUEMED}
signalstat_drawtext.txtのサンプル。
その他に表示できるものはdrawtext
フィルタのText expansionを参照する。ただし日本語は日本語が使えるフォントでないと文字化けする。
情報をテキストに保存する。
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
ebur128
フィルタをadrawgraph
フィルタで表示する例。
ffmpeg -i input -filter_complex ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-32:max=0,realtime -f sdl -
ffplay -f lavfi -i "amovie=input,ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-32:max=0"
公式ドキュメント:FFmpeg Filters Documentation : drawgraph, adrawgraph
オプション
色指定は 0xAABBGGRR 形式になる。AAの値を小さくすると透過するようになる。ffplay で再生するときはアルファチャンネルをFFか、フォーマット変換で消さないと真っ黒になる。
- m1[string]
1番目のメタデータキーを指定する - fg1[string]
m1の色を指定する。文字指定は不可
既定値:0xffff0000 - m2[string]
2番目のメタデータキーを指定する - fg2[string]
m2の色を指定する。文字指定は不可
既定値:0xff00ff00 - m3[string]
3番目のメタデータキーを指定する - fg3[string]
m3の色を指定する。色名指定は不可
既定値:0xffff00ff - m4[string]
4番目のメタデータキーを指定する - fg4[string]
m4の色を指定する。文字指定は不可
既定値:0xffffff00 - min[float]
グラフ描写のY軸(値)の最小値の指定
既定値:-1 - max[float]
グラフ描写のY軸(値)の最大値の指定
既定値:1 - bg[color]
グラフの背景色の指定。カラーコード、色指定どちらも可能
既定値:white - mode[int]
グラフの表示モード - 0, bar
- 1, dot
- 2, line:既定値
- slide[int]
グラフの画面切り替え - 0, frame:1画面毎に切り替え。既定値
- 1, replace:上書き
- 2, scroll:左から右
- 3, rscroll:右から左
- 4, picture:全体を1フレームに描く
- size, s[image_size]
グラフのサイズ。この書式が使える
既定値:900×256 - rate, r[video_rate]
表示フレームレートの指定
既定値:25