shingoushori's dialy

音信号処理を専ら研究していた元博士後期課程の学生によるメモ

ffmpegでスペクトログラムの動画出力

FFmpeg ...

FFmpeg(エフエフエムペグ)は動画と音声を記録・変換・再生するためのフリーソフトウェアである。」FFmpeg - Wikipedia

定番のフリーソフトで、いろんなソフトが実はライブラリとして使っている ... とも、どこかでか聞いたような
コマンドラインで動画や音声をいじる、Pythonからコマンドラインを通して ... というような時には、とりあえずFFmpegが便利です


で、FFmpegでスペクトログラムが出力できる、しかも簡単に
さらには凝ったこともできそうだ、ということに気づきました
ので、感動のあまりこちらにもメモがてら記事にしておきたい

www.youtube.com

↑こんな感じです!↓こんな感じで作れます! 複数!cqt!素晴らしい

ffmpeg -i hoge.wav -filter_complex \
"[0:a]showcqt=s=640x518,pad=1280:720[vs]; \
[0:a]showspectrum=mode=separate:color=intensity:scale=cbrt:slide=scroll:s=640x518[ss]; \
[0:a]showwaves=s=1280x202:mode=line[sw]; \
[vs][ss]overlay=w[bg]; \
[bg][sw]overlay=0:H-h[out]" \
-map "[out]" -map 0:a hoge.mp4

スペクトログラムの画像出力もできました。

ffmpeg -i hoge.wav -lavfi showspectrumpic=s=1024x1024 hoge.png

数値で出せないと、あれこれやるには全然足りないですが、
手軽に見れるのが素晴らしい!

<参考文献>

音声波形を表示する showspectrum, showwaves の使い方 : ニコニコ動画研究所

音声をオクターヴ表示する showcqt の使い方 : ニコニコ動画研究所

FFmpeg Filters Documentation

ffmpeg: audio visualization tricks | Luka Prinčič

How do I turn audio into video (that is, show the waveforms in a video)? - Video Production Stack Exchange

ffmpeg - Create a video file from an audio file and add visualizations from audio - Super User