You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FFmpeg showwaves滤镜:如何修改波形颜色(附Shell代码)

如何修改FFmpeg生成的音频波形颜色

我帮你梳理下修改波形颜色的正确方法,你的原命令其实绕了个弯——先生成黑色波形再抠除黑色来做透明叠加,其实我们可以直接让showwaves滤镜生成指定颜色的波形,同时保留透明背景,效果更好也更简单。

直接修改波形颜色的优化命令

ffmpeg -y -i $local_mp3 -loop 1 -i $local_image -filter_complex "[0:a]showwaves=s=1280x720:mode=line:colors=0xFF0000:bgcolor=0x00000000,format=yuva420p[v];[1:v][v]overlay[outv]" -map "[outv]" -map 0:a -vcodec libx264 -pix_fmt yuv420p -profile:v main -level 4.0 -acodec aac -strict -2 -shortest -movflags +faststart output.mp4

关键修改说明

  • 指定波形颜色:通过colors=0xFF0000参数设置波形颜色,这里用的是红色的十六进制代码,你可以替换成任何你想要的颜色:
    • 蓝色:0x0000FF
    • 绿色:0x00FF00
    • 半透明紫色:0x80008080(最后两位是透明度,00完全透明,FF完全不透明)
  • 透明背景设置:添加bgcolor=0x00000000让波形的背景完全透明,这样叠加到背景图上不会有多余色块,省去了原命令里的colorkey滤镜,避免了抠色边缘不干净的问题。
  • 移除冗余滤镜:删掉了原命令中的colorkey步骤,因为直接设置透明背景更高效可靠。

如果你想保留原抠色逻辑(不推荐)

要是你坚持用原来的抠色方式,只需要同步修改showwaves的波形颜色和colorkey的目标颜色就行。比如把波形改成蓝色,就把showwaves的默认黑色换成0x0000FF,同时把colorkey=0x0000FF:0.01:0.1。但这种方式容易出现波形边缘残留或抠除过度的问题,还是推荐上面的透明背景方案。

内容的提问来源于stack exchange,提问作者fab23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:48:06