You need to enable JavaScript to run this app. 如何在FFmpeg中将showwaves生成的波形调整至视频底部并解决overlay报错
优惠活动
大模型
产品
解决方案
定价
更多

如何在FFmpeg中将showwaves生成的波形调整至视频底部并解决overlay报错

报错核心原因

overlay 是双输入类型滤镜,需要同时接入两路视频流才能正常工作:

  • 输入0(第1路接入的流):作为底层背景
  • 输入1(第2路接入的流):作为上层叠加内容

你原命令的滤镜链仅把生成的波形流 [sw] 直接喂给 overlay,这路流只会自动接入到 overlay 的输入0 pad位置,剩下的输入1 pad没有任何流接入,FFmpeg就会抛出「找不到与未标记的输入pad1匹配的流」的报错。另外你的输入仅包含音频文件,没有现成的视频流作为最终视频的底层画布,本身也无法实现把波形移动到指定位置的效果。

波形移到视频底部的调整方案

要实现波形贴在画面底部的效果,只需要补全 overlay 的两路输入即可,处理逻辑如下:

  1. 生成一路和最终视频尺寸匹配的纯色背景流,作为overlay的底层输入
  2. 把音频生成的波形流作为上层叠加内容,接入overlay的第二个输入pad
  3. 调整overlay的坐标参数为 x=0:y=H-h:其中H是底层背景的总高度,h是波形的固定高度(202),计算后波形的下边缘会刚好和画面下边缘齐平
  4. 后续再接上文字绘制的滤镜,完成全链路处理
可直接运行的调整后命令
ffmpeg -i security3.mp3 -filter_complex "[0:a]showwaves=s=1280x202:mode=line[wave]; color=c=black:s=1280x720[bg]; [bg][wave]overlay=0:H-h[ovly]; [ovly]drawtext=fontcolor=white:x=10:y=10:text='\"Song Title\" by Artist'[out]" -map "[out]" -map 0:a -c:v libx264 -preset fast -crf 18 -c:a copy output.mp4

参数说明

  • 背景尺寸 1280x720 可按需调整,比如改成1280x1080,overlay会自动适配坐标计算,无需手动修改位置数值
  • 背景色 black 可根据需求替换成其他颜色值,也可以换成你自己的本地图片/视频当背景:只需要在命令开头增加 -i 你的背景文件路径,把滤镜链里的color生成流替换成对应输入的流标签即可
  • 生成的波形默认位置在画面底部,不会遮挡左上角的文字区域,文字位置可根据自己的布局调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 21:54:05