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

FFmpeg多图层叠加场景实现问题:含视频、图片及文字图层

解决FFmpeg三层叠加(文字在视频上方)的滤镜错误问题

我来帮你搞定这个FFmpeg的滤镜错误!你遇到的Too many inputs specified for the "format" filter报错,根源很简单:format滤镜只能接收单个输入流,但你在命令里把[0][a]两个流同时传给它了,这就违反了它的输入规则,所以才会抛出初始化错误。

正确的命令实现(文字在视频上方)

先明确我们要的图层顺序(从下到上):基础图片 → 带透明度的视频 → 文字图片,对应的正确FFmpeg命令如下:

ffmpeg -i video.mp4 -i image.jpg -i text.png -filter_complex '[0]format=rgba,colorchannelmixer=aa=0.7,scale=3840:2160[vid];[1][vid]overlay=0:0[base_vid];[base_vid][2]overlay=0:0' -t 5 output.mp4

命令拆解说明

  • 处理视频流:[0]format=rgba,colorchannelmixer=aa=0.7,scale=3840:2160[vid]
    把原始视频转成RGBA格式(支持透明度),设置70%的不透明度,再缩放到和基础图片一致的3840×2160尺寸,最后把处理后的视频流命名为[vid]。
  • 叠加视频到基础图:[1][vid]overlay=0:0[base_vid]
    把处理好的视频[vid]叠加到基础图片[1]上,得到包含基础图+视频的中间流[base_vid]。
  • 叠加文字到最上层:[base_vid][2]overlay=0:0
    最后把文字图片[2]叠加到[base_vid]的最上层,完美实现文字在视频上方的效果。

小提示

FFmpeg里不同滤镜的输入数量是固定的:像overlay需要2个输入(底层+上层),而format、scale、colorchannelmixer这类滤镜都是单输入单输出的,一定要注意不要给它们传递多个流哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:56:29