音声データの周波数を調べて周波数と時間の2次元軸とした1枚画像を出力するshowspectrumpic
の使い方。
リアルタイムに周波数を調べるにはshowspectrum
フィルタを使う。
音声波形を表示する showspectrum, showwaves の使い方
基本コマンド
ffmpeg -i input -filter_complex showspectrumpic=s=1024x1024:mode=combined:color=intensity:scale=log:saturation=1:win_func=hann:orientation=vertical:gain=1:legend=1:start=0:stop=0 -y showspectrumpic.png
任意の周波数帯だけを表示するにはstart、stopの値を指定する。legend=1で経過時間を整数秒で表示するには12.8秒の倍数にするとよい。
公式ドキュメント
FFmpeg Filters Documentation : showspectrumpic
オプション
- size, s[image_size]
出力画像の解像度の目安指定。縦の解像度を小さくすると高周波数帯が見切れることがある
この書式が使える
既定値:4096×2048 - mode[int]
チャンネル毎にグラフを分離するか - 0, combined
分離しない。既定値 - 1, separate
分離する。ステレオだと下が c0(FL)、上が c1(FR) - color[int]
チャンネル毎の色の表示指定 - 0, channel:チャンネル毎に異なる
- 1, intensity:チャンネル毎に異ならない。既定値
- 2, rainbow:虹色。七色
- 3, moreland:モアランド。青背景に白と赤
- 4, nebulae:星雲。薄茶系
- 5, fire:花火。茶系
- 6, fiery:灼熱。赤系
- 7, fruit:フルーツ。緑系
- 8, cool:寒色。青系
- 9, magma
- 10, green
- 11, viridis
- 12, plasma
- 13, cividis
- 14, terrain
- scale[int]
描写で使われる計算方法 - 0, lin:線形
- 1, sqrt:平方根
- 2, cbrt:立方根
- 3, log:対数。既定値
- 4, 4thrt:四乗根
- 5, 5thrt:五乗根
- fscale[int]
波形の表示方法 - 0, lin:線形。既定値
- 1, log:対数
- saturation[float]
色の彩度の指定
既定値:1
範囲:-10.0 から 10 まで
0 にするとモノクロになる - win_func[int]
波形の表示設定 - 0, rect
- 1, bartlett
- 2, hann, hanning:既定値
- 3, hamming
- 4, blackman
- 5, welch
- 6, flattop
- 7, bharris
- 8, bnuttall
- 9, bhann
- 10, sine
- 11, nuttall
- 12, lanczos
- 13, gauss
- 14, tukey
- 15, dolph
- 16, cauchy
- 17, parzen
- 18, poisson
- 19, bohman
- orientation[int]
縦横の内容の表示形式の指定 - 0, vertical:横軸が時間、縦軸が周波数。既定値
- 1, horizontal:横軸が周波数、縦軸が時間
- gain[float]
音量を上げ下げして描写具合を変える。0に近いほど色が薄くなる
既定値:1(音量を変えない)
範囲:0 から 128 まで - legend[boolean]
グラフ周辺にある周波数や時間、dBのメーターを表示する
既定値:1(表示) - rotation[float]
色を変える
既定値:0
範囲:-1 から 1 まで - start[int]
調べる周波数の最小値
既定値:0
範囲:0 から INT_MAX まで - stop[int]
調べる周波数の最大値
既定値:0(無制限)
範囲:0 から INT_MAX まで