histogramフィルタの使い方
動画編集ツールによくあるヒストグラムを表示するhistogram
フィルタの使い方。以前あったcolor、waveformオプションは廃止になり個別のフィルタとして独立した。
2チャンネルの値を2次元で表示する vectorscope
ffmpeg で YUV, RGB波形を表示する waveform
基本コマンド
YUV の映像に RGB のヒストグラムを調べるにはformat=gbrp
で変換する。
ffplay -i input -vf histogram=level_height=200:scale_height=12:d=2:m=0:c=7:f=0.7:b=0.5
ffplay -i input -vf histogram=200:12:2:0:7:0.7:0.5
ffplay -i input -vf format=gbrp,histogram=200:12:2:0:7:0.7:0.5
透過させてオーバーレイする例。透過部分はformat=rgba
、format=yuva420p
などで透過チャンネルを追加する。
ffplay -i input -vf split=2[v1][v2];[v2]format=rgba,histogram=50:6:2:bgopacity=0.5[v2a];[v1][v2a]overlay
ffplay -i input -vf split[v2],format=rgba,histogram=50:6:2:bgopacity=0.5,[v2]overlay
公式ドキュメント:FFmpeg Filters Documentation : histogram
オプション
- level_height[int]
個別チャンネルの映像の高さ
既定値:200
範囲:50 から 2048 まで - scale_height[int]
個別チャンネルの映像の下の色の高さ
既定値:12
範囲:0 から 40 まで - display_mode, d[int]
チャンネルの表示方法 - 0, overlay:1つにまとめる
- 1, parade:左から右の横に並べる
- 2, stack:上から下の縦に並べる。既定値
- levels_mode, m[int]
表示モード - 0, linear:既定値
- 1, logarithmic
- components, c[int]
どのカラーチャンネルを表示するか。表示チャンネル数を変えるならこれを設定する
順番についてはffmpeg について | チャンネルの順番と注意点のグラフを参照
既定値:7
範囲:1 から 15 まで - fgopacity, f[float]
前景の透過指定。効果不明
既定値:0.7
範囲:0 から 1 まで - bgopacity, b[float]
背景の透過指定。入力映像にアルファチャンネルがあれば全体が透過する
既定値:0.5
範囲:0 から 1 まで - colors_mode[int]
波形と背景の白の指定 - 0, whiteonblack:波形が白で背景が黒。既定値
- 1, blackonwhite
- 2, whiteongray
- 3, blackongray
- 4, coloronblack
- 5, coloronwhite
- 6, colorongray
- 7, blackoncolor
- 8, whiteoncolor
- 9, grayoncolor
thistogramフィルタの使い方
thistogram
フィルタは ffmpeg 4.3 で追加予定のフィルタで、histogram
フィルタが該当フレームでのヒストグラムに対してthistogram
フィルタは過去フレームに対してもヒストグラムが表示される。
基本コマンド
ffplay -i input -vf thistogram=w=0:d=2:m=0:c=7:b=0.9:e=0:ec=gold
ffplay -i input -vf thistogram=0:2:0:7:0.9:0:gold
公式ドキュメント:FFmpeg Filters Documentation : thistogram
オプション
- width, w[int]
個別チャンネルの映像の幅
既定値:0(入力幅)
範囲:0 から 8192 まで - display_mode, d[int]
チャンネルの表示方法 - 0, overlay:1つにまとめる
- 1, parade:左から右の横に並べる
- 2, stack:上から下の縦に並べる。既定値
- levels_mode, m[int]
表示モード - 0, linear:既定値
- 1, logarithmic
- components, c[int]
どのカラーチャンネルを表示するか。表示チャンネル数を変えるならこれを設定する
順番についてはffmpeg について | チャンネルの順番と注意点のグラフを参照
既定値:7
範囲:1 から 15 まで - bgopacity, b[float]
背景の透過指定。入力映像にアルファチャンネルがあればその部分が透過する
既定値:0.9
範囲:0 から 1 まで - envelope, e[boolean]
上限下限に線を引く
既定値:0 - ecolor, ec[color]
envelopeの色指定
既定値:”gold” - slide[int]
グラフの画面切り替え - 0, frame:1画面毎に切り替え。既定値
- 1, replace:上書き
- 2, scroll:左から右
- 3, rscroll:右から左
- 4, picture:1枚絵に描く