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

入力した音声を E0 から D#10 (10 オクターヴ) までの映像に変換する。出力フォーマットは yuv420p。cqtは(constant Q transform)の略語。

ffmpeg_showcqt_sample_1.jpg

  • size, s[image_size]
    出力解像度
    既定値:1920x1080

  • fps, rate, r[video_rate]
    フレームレート
    既定値:25

  • bar_h[int]
    オクターブを表示するアルファベットの上からの位置の高さ(偶数)指定
    既定値:-1(自動設定)
    範囲:-1 から INT_MAX まで

  • axis_h[int]
    オクターブを表示するアルファベットの文字の高さ(偶数)指定
    既定値:-1(自動設定)
    範囲:-1 から INT_MAX まで

  • sono_h[int]
    オクターブを表示するアルファベットの下からの位置の高さ(偶数)指定
    既定値:-1(自動設定)
    範囲:-1 から INT_MAX まで

  • fullhd[boolean]
    使われていないオプション

  • sono_v, volume[string]
    sonogram の音量調整。大きくすると波形も大きくなる
    既定値:16
    範囲:0 から 100 まで
      使える評価式
    • bar_v:bar_v と同じ値
    • frequency, freq, f:周波数と同じ値
    • timeclamp, tc:timeclamp と同じ値
    • a_weighting(f):A と同じ音量
    • b_weighting(f):B と同じ音量
    • c_weighting(f):C と同じ音量

  • bar_v, volume2[string]
    bargraph の音量調整。大きくすると波形も大きくなる
    既定値:sono_v
    範囲:0 から 100 まで
      使える評価式
    • sono_v:sono_v と同じ値
    • frequency, freq, f:周波数と同じ値
    • timeclamp, tc:timeclamp と同じ値
    • a_weighting(f):A と同じ音量
    • b_weighting(f):B と同じ音量
    • c_weighting(f):C と同じ音量

  • sono_g, gamma[float]
    sonogram のガンマ値の指定。低い値はスペクトラムのレンジが狭くなり、高い値はスペクトラムのレンジが広くなる
    既定値:3
    範囲:1 から 7 まで

  • bar_g, gamma2[float]
    sonogram のガンマ値の指定。低い値はスペクトラムのレンジが狭くなり、高い値はスペクトラムのレンジが広くなる
    既定値:3
    範囲:1 から 7 まで

  • bar_t[float]
    波形のバーに透過度の指定。0に近い程ぼかしのないくっきりした色になる
    既定値:1
    範囲:0.から 1 まで

  • timeclamp, tc[double]
    低い値にすればタイムドメイン(時間領域)(例えばバスドラム)がより正確に、高い値にすればフレケンシードメイン(周波数帯域)(例えばバスギター)をより正確に表示する
    既定値:0.17
    範囲:0.1 から 1 まで

  • basefreq[double]
    基底周波数の指定
    既定値:20.01523126408007475
    範囲:10 から 100000 まで

  • endfreq[double]
    終了周波数の指定
    既定値:20495.59681441799654
    範囲:10 から 100000 まで

  • coeffclamp[float]
    使われていないオプション

  • tlength[string]
    タイムドメインを波形に変換したときに表示される高さの指定
    既定値:384*tc/(384+tc*f)
      使える評価式
    • frequency, freq, f:周波数と同じ値
    • timeclamp, tc:timeclamp と同じ値

  • count[int]
    動画を何フレーム毎に描写するかの指定。大きい値ほど映像が早くなる
    既定値:6
    範囲:1 から 30 まで

  • fcount[int]
    動画を何ピクセル毎に描写するかの指定
    既定値:0(自動設定)
    範囲:0 から 10 まで

  • fontfile[string]
    オクターブを表示するアルファベットのフォント指定
    既定値:内蔵フォント
    例:'C\://Windows/Fonts/msgothic.ttc'

  • fontcolor[string]
    フォントカラーの指定
    既定値:st(0, (midi(f)-59.5)/12); st(1, if(between(ld(0),0,1), 0.5-0.5*cos(2*PI*ld(0)), 0)); r(1-ld(1)) + b(ld(1))
      使える評価式
    • frequency, freq, f:周波数と同じ値
    • timeclamp, tc:timeclamp と同じ値
    • midi(f):midi ノートナンバー。E0(16), C1(24), C2(36), A4(69)
    • r(x), g(x), b(x):RGB それぞれの値を x で表示する

  • axisfile[string]
    オクターブを表示するアルファベットの代わりに画像を配置する。適宜 axis_h で高さを指定する。これを指定すると fontfile, fontcolor は無視される
    既定値:何も指定しない

  • axis, text[boolean]
    オクターブを表示するアルファベットを表示するしないの指定
    既定値:1(表示する)

  • csp[int]
    カラースペースの指定
    • 0, unspecified:既定値
    • 1, bt709
    • 2, fcc
    • 3, bt470bg:BT.470BG または BT.601-6 625
    • 4, smpte170m
    • 5, smpte240m:SMPTE-170M または BT.601-6 525
    • 6, bt2020ncl:BT.2020 with non-constant luminance

  • cscheme[string]
    スペクトグラムカラーのスキーム指定。left_r|left_g|left_b|right_r|right_g|right_b の順番
    既定値:"1|0.5|0|0|0.5|1"

基本コマンド
ffmpeg -i audio.m4a -filter_complex "showcqt" -pix_fmt yuv420p -acodec copy out.mkv
ffmpeg -i video.mp4 -filter_complex "showcqt" -pix_fmt yuv420p -acodec copy out.mkv
ffplay -f lavfi "amovie=audio.m4a, asplit[a][out1]; [a] showcqt[out0]"
ffplay -f lavfi "amovie=video.mp4, asplit[a][out1]; [a] showcqt[out0]"

コマンド例
ffplay -f lavfi "amovie=audio.m4a, asplit[a][out1]; [a] showcqt=fps=50:count=3:gamma=2:volume=10:fullhd=0[out0]"
ffplay -f lavfi "amovie=audio.m4a, asplit[a][out1]; [a] showcqt=fps=50:count=1:gamma=2:volume=10,scale=640:-1[out0]"
ffplay -f lavfi "aevalsrc=0.1*sin(2*PI*55*t)+0.1*sin(4*PI*55*t)
+0.1*sin(6*PI*55*t)+0.1*sin(8*PI*55*t),asplit[a][out1]; [a] showcqt=timeclamp=0.5 [out0]"


音声デバイスの音声を映像化して配信する例
ffmpeg -rtbufsize 2MB -f dshow -i audio=virtual-audio-capturer -filter_complex "showcqt,scale=640:-1" -pix_fmt yuv420p -vcodec libx264 -acodec libmp3lame -f flv rtmp://...

virtual-audio-capturer の配布先:
virtual audio capture device - Browse Files at SourceForge.net
setup Virtual Audio Capture Grabber v0.4.6.exe を保存しインストールする。

サンプル動画


関連記事
FFmpeg documentation : : showcqt
音声波形を表示する showspectrum, showwaves の使い方
関連記事

コメント

非公開コメント

プロフィール

ロベルト

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

中の人 @nico_lab

広告リンク
Amazon
楽天市場

ブログ更新用 @blo_nico_lab

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

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