无需黑匣子即可在视频上实现透明振幅叠加

无需黑匣子即可在视频上实现透明振幅叠加

这是我运行的命令:

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像素格式(不带透明度)。

相关内容