用FFmpeg生成视频或音频的波形图
广告
{{v.name}}
默认情况下,showwavespic 会将所有音频通道的波形叠加显示在一张图中,代码如下
$ ffmpeg -i input.mp3 -filter_complex "showwavespic=s=640x120" -frames:v 1 output.png
如果音频有多个声道(如立体声),可以使用 split_channels 选项让每个声道在独立的行上显示,代码如下
$ ffmpeg -i input.mp3 -filter_complex "showwavespic=s=640x240:split_channels=1" -frames:v 1 output_separated.png
先用 aformat 滤波器转换为单声道再显示,代码如下
$ ffmpeg -i input.mp3 -filter_complex "aformat=channel_layouts=mono,showwavespic=s=640x120" -frames:v 1 output_mono.png
先使用 compand 滤波器来调整动态范围再显示,代码如下
$ ffmpeg -i input.mp3 -filter_complex "compand,showwavespic=s=640x120" -frames:v 1 output_companded.png
使用 colors 参数为每个音频通道指定不同的颜色并显示,代码如下
$ ffmpeg -i input.mp3 -filter_complex "showwavespic=s=640x120:colors=red|blue" -frames:v 1 output_colored.png
使用 showwaves 滤镜可以创建动态的波形视频,代码如下
$ ffmpeg -i input.mp3 -filter_complex "[0:a]showwaves=s=1280x720:mode=line,format=yuv420p[v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy output_wavevideo.mkv