音声波形を表示する showspectrum, showwaves の使い方

showspectrum の使い方


入力した音声をスペクトラムとして映像表示する。出力フォーマットは yuv444p。

ffmpeg_showspectrum_sample.jpg


ffmpeg -i input -filter_complex showspectrum=size=640x512:slide=1:mode=separate:color=intensity:
scale=sqrt:saturation=1 output
ffplay -f lavfi -i "amovie=input,asplit[out0],showspectrum[out1]"
  • size, s[image_size]
    出力される動画の解像度。既定値は 640x512(w x h)
    640x512 で15秒程度の幅になり、282x512 で3秒程度の幅になる

  • slide[int]
    波形の表示方法。既定値は 0
    0, replace:波形が左から右に移り右に到達すると左に移動し上書きされる
    1, scroll:波形が右から左に移り常時スクロールする
    2, fullframe:解像度分右まで最初から表示して、解像度分新しくなったらすべて更新する
    3, rscroll:波形が左から右に移り常時スクロールする

  • mode[int]
    音声のチャンネルごとに表示するかどうか
    0, combined:一纏めに表示。既定値
    1, separate:各チャンネルごとに表示

  • 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:五乗根

  • 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
    横軸が周波数、縦軸が時間

  • overlap[float]
    既定値:0
    範囲:0 から 1 まで

  • gain[float]
    音量を上げ下げして描写具合を変える。0に近いほど色が薄くなる
    範囲:0 から 128 まで
    既定値:1(音量を変えない)

  • data[int]
    表示内容の指定
    0, magnitude:枠一杯に表示
    1, phase:おなじみの波形表示。既定値

  • rotation[float]
    色を変える
    既定値:0
    範囲:-1 から 1 まで
  • start[int]
    調べる周波数の最小値

  • stop[int]
    調べる周波数の最大値

  • fps[string]
    描写のフレームレート
    既定値:"auto"

  • legend[boolean]


showspectrum はフレームレートを指定できないので動画との overlay 合成は不向き

ffmpeg のコマンド例
ffmpeg -i input -filter_complex "showspectrum=size=640x512:slide=1:mode=separate:color=intensity: scale=sqrt:saturation=1" -vcodec libx264 -acodec copy out.mkv

音声フィルタを当てた場合は先に音声を加工した後に showspectrum を当てる
ffmpeg -i input -filter_complex "earwax,volume=2.6,bs2b=profile=jmeier,bass=g=3:f=400,allpass=f=800, showspectrum=size=640x512:slide=1:mode=separate:color=intensity: scale=sqrt:saturation=1" -vcodec libx264 -acodec copy out.mkv

参照リンク

FFmpeg documentation : : showspectrum

showwaves


入力した音声を音声波形(オシロスコープ)として映像表示する。出力フォーマットは RGBA になっているのでオーバーレイが可能。

mode point の例
ffmpeg_showwaves_sample2.jpg

mode line の例
ffmpeg_showwaves_sample.jpg


ffmpeg -i input -filter_complex showwaves=size=600x240:mode=point:rate=25:split_channels=1 output
ffplay -f lavfi -i "amovie=input,asplit[out0],showwaves[out1]"


  • size, s[image_size]
    出力される動画の解像度。既定値は 600x240(w x h)

  • mode[int]
    0, point:点の波形表示。既定値
    1, line:山なりの波形表示
    2, p2p:点と線の波形表示
    3, cline:山なりの波形表示に似ている

  • n[int]
    描写間隔で正の値を指定する。値を大きくすると表示回数が減る
    既定値:0
    範囲:0 から INT_MAX まで

  • rate, r[video_rate]
    おおよその出力フレームレート。既定値は 25

  • split_channels[boolean]
    チャンネル別に表示するかどうか
    既定値:0(しない)

  • colors[string]
    波形の色指定。チャンネル数毎に | で指定する
    既定値:”red|green|blue|yellow|orange|lime|pink|magenta|brown”

  • scale[int]
    0, lin:線形
    1, log:対数
    2, sqrt:平方根。既定値
    3, cbrt:立方根

  • scale[int]
    描写で使われる計算方法
    0, lin:線形
    1, log:対数
    2, sqrt:平方根。既定値
    3, cbrt:立方根

  • draw[int]
    0, scale
    1, full


ffmpeg のコマンド例
ffmpeg -i input.wav -filter_complex showwaves=size=600x240:mode=line:r=25 -vcodec libx264 -acodec copy out.mkv

入力動画 fps=24 で背景動画の解像度 640x360 の上に波形映像 640x100 を合成する場合
波形映像に重複フレームが有る場合は showwaves 内の r を +10 程度大きく見積もる
ffmpeg -i input.mp4 -filter_complex pad=iw:ih+100:0:100[a];showwaves=size=640x100:mode=point:r=24[b];[a][b]overlay -vcodec libx264 -acodec copy out.mp4

参照リンク

FFmpeg documentation : : showwaves
Windows の ffmpeg で生放送する方法 : pad
Windows の ffmpeg で生放送する方法 : overlay

関連記事
音声をオクターヴ表示する showcqt の使い方

追加オプションを追記し、文章を直した。2016年9月8日
追加オプションを追記。2018年11月24日
関連記事

コメント

非公開コメント

プロフィール

ロベルト

お問い合わせはこちらまで
robelt2525[at]gmail.com

中の人 @nico_lab

広告リンク
Amazon
楽天市場

ブログ更新用 @blo_nico_lab

詳しいプロフィールはこちら

当ブログは、Amazonアソシエイトに参加しています。