这是我运行的命令:
ffmpeg -y -i source_file.wav -loop 1 -i image.jpg -filter_complex "[0:a]showwaves=s=1920x175:colors=White:mode=line,format=yuv420p[v];[1:v][v]overlay=0:1000[outv]" -map "[outv]" -pix_fmt yuv420p -map 0:a -c:v libx264 -c:a aac -shortest output9.mp4
输出视频如下所示:
如您所见,振幅可视化背后是一个黑框。是否可以使此框透明,以便可视化直接叠加在视频上?
答案1
format=rgba
在过滤器后添加showwaves
:
ffmpeg -y -i source_file.wav -loop 1 -i image.jpg -filter_complex "[0:a]showwaves=s=1920x175:colors=White:mode=line,format=rgba[v];[1:v][v]overlay=0:1000[outv]" -map "[outv]" -pix_fmt yuv420p -map 0:a -c:v libx264 -c:a aac -shortest output9.mp4
- 该
format
过滤器将输出转换showwaves
为 RGBA 像素格式,“黑色”背景的 alpha 通道为零(完全透明)。 - 该
overlay
滤镜将 showwaves 结果(带有透明背景)覆盖在 JPEG 图像上。
输出将转换为yuv420p
像素格式(不带透明度)。