histogram
フィルタに含まれていたwaveformオプションが個別のフィルタになった。高ビット深度に対応。
前回書いた記事:ffmpeg でヒストグラムを表示する
基本コマンド
YUV 映像のコマンド例。
ffplay -i input -vf waveform=m=1:i=.04:r=1:d=1:c=1:e=0:f=0
ffmpeg -i input -vf waveform=m=1:i=.04:r=1:d=1:c=1:e=0:f=0 output
RGB 映像のコマンド例。
ffplay -i input -vf format=gbrp,waveform=m=1:i=.04:r=1:d=1:c=1:e=0:f=0
ffmpeg -i input -vf format=gbrp,waveform=m=1:i=.04:r=1:d=1:c=1:e=0:f=0 output
映像の上にoverlay
フィルタを使った例。
ffplay -i input -vf split=2[0][1];[1]format=yuva420p,waveform=filter=color:graticule=green:opacity=1:bgopacity=0.75[1a];[0][1a]overlay
ffmpeg -i input -vf split=2[0][1];[1]format=yuva420p,waveform=filter=color:graticule=green:opacity=1:bgopacity=0.75[1a];[0][1a]overlay output
公式ドキュメント:FFmpeg Filters Documentation : waveform
表示サンプルがある公式Wiki:WaveformMonitor – FFmpeg
オプション
- mode, m[int]
- 0, row:(縦長)「左が0右が255」
- 1, column:(横長)「上が0下が255」。既定値
- intensity, i[float]
同じ輝度がどれだけ分散されているか。小さい値ほど範囲が狭い
既定値:0.04
範囲:0 から 1 まで - mirror, r[boolean]
高い数値を column なら左右、または row なら上下入れ替えるかどうか
既定値:1
範囲:0(入れ替えない), 1(入れ替える) - display, d[int]
- 0, overlay:各コンポーネントを一緒に表示
- 1, stack:各コンポーネントを縦に表示。既定値
- 2, parade:各コンポーネントを横に表示
- components, c[int]
コンポーネント毎の表示指定
詳しくはffmpeg について | チャンネルの順番と注意点を参照
既定値:1
範囲:1 から 15 まで - envelope, e[int]
- 0, none:既定値
- 1, instant:現在の最小と最大を表示
- 2, peak:最大と最小をずっと表示する
- 3, peak+instant
- filter, f[int]
- 0, lowpass:既定値
- 1, flat:輝度と彩度を合わせて表示
- 2, aflat:青と赤の輝度と彩度の差異を合わせて表示
- 3, chroma:彩度だけを表示
- 4, color:実際の色を表示
- 5, acolor:color と似ているが輝度部分に彩度が表示される
- 6, xflat
- 7, yflat
- graticule, g[int]
放送レンジの範囲内である数値線を数値といっしょに表示する - 0, none:表示しない。既定値
- 1, green:緑で表示する
- 2, orange:オレンジで表示する
- 3, invert
- opacity, o[float]
graticule で表示される文字と線の透過具合の指定
既定値:0.75
範囲:0 から 1。1 は不透過 - flags, fl[flags]
graticule で表示される文字と線の表示方法 - numbers:数字。既定値
- dots:ドット
- scale, s[int]
- 0, digital:0 から 255 の間。既定値
- 1, millivolts:0 から 700 の間
- 2, ire:0 から 100 まで
- bgopacity, b[float]
背景色の透過指定。あらかじめ映像に透過チャンネルがないと透過しないのでフィルタを使ってformat=yuva420p
などを最初に追加する。1 は不透過
既定値:0.75
範囲:0 から 1。 - tint0, t0[float]
第1出力のtintを指定する。f=lowpassを使い、display=overlayを使わず、入力ピクセルフォーマットがRGBではないときだけに使える
既定値:0
範囲:-1 から 1 まで - tint1, t1[float]
第2出力のtintを指定する。f=lowpassを使い、display=overlayを使わず、入力ピクセルフォーマットがRGBではないときだけに使える
既定値:0
範囲:-1 から 1 まで - fitmode, fm[int]
横幅は元の映像のままにSARを変更する - 0, none:1/1に変更。既定値
- 1, size:オリジナルの映像と同じSAR