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

RGB の表示例

透過させてオーバーレイする例。透過部分はformat=rgbaformat=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

映像の上に映像をのせる 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枚絵に描く

コメントを残す

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

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