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

使用FFmpeg filter_complex缩放视频并叠加时出现滤镜解析错误

FFmpeg滤镜图解析错误修复

问题场景

需要将RTMP输入视频(2304x1296)缩放到1920x1080,同时叠加循环播放的本地视频slider.mp4,执行以下命令时出现错误:

exec_static /usr/bin/ffmpeg -threads 1 -i "rtmp://url" -stream_loop -1 -i /slider.mp4 -filter_complex "[0:v]scale=1920:1080[1:v] overlay=20:main_h-overlay_h-80" -c:v h264 -c:a aac -b:v 1980k -b:a 64k -an -tune zerolatency -preset ultrafast -f flv rtmp://localhost:1935/live/std 2>>/var/log/nginx/ffmpeg-std.log;

错误信息

[AVFilterGraph @ 0x556874510700] Unable to parse graph description substring: "overlay=20:main_h-overlay_h-80"
Error initializing complex filters.

输入视频信息

Input #0, flv, from 'rtmp://url':
Metadata:
displayWidth : 2304
displayHeight : 1296
Duration: 00:00:00.00, start: 53669.778000, bitrate: N/A
Stream #0:0: Data: none
Stream #0:1: Video: h264 (Baseline), yuv420p(progressive), 2304x1296, 12 fps, 12 tbr, 1k tbn
Stream #0:2: Audio: aac (LC), 16000 Hz, mono, fltp

错误原因与修复

错误点

  • 滤镜标签冲突:将缩放后的视频标签设为[1:v],但该标签已被第二个输入文件(/slider.mp4)的视频流占用,导致overlay滤镜无法识别正确输入源。
  • 滤镜链语法错误:scale滤镜的输出未正确与overlay滤镜关联,缺少必要的连接语法。

修正后的命令

exec_static /usr/bin/ffmpeg -threads 1 -i "rtmp://url" -stream_loop -1 -i /slider.mp4 -filter_complex "[0:v]scale=1920:1080[scaled_v];[scaled_v][1:v]overlay=20:main_h-overlay_h-80" -c:v h264 -b:v 1980k -an -tune zerolatency -preset ultrafast -f flv rtmp://localhost:1935/live/std 2>>/var/log/nginx/ffmpeg-std.log;

说明

  • 将scale滤镜的输出标签改为[scaled_v],避免与输入1的视频流标签冲突。
  • 用分号分隔滤镜节点,明确scale和overlay的执行顺序,同时将[scaled_v](缩放后的主视频)和[1:v](循环的overlay视频)作为overlay滤镜的两个输入,确保滤镜图解析正确。
  • 移除冗余的-c:a aac -b:a 64k参数,因为-an已禁用音频输出,这些参数不会生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 10:01:42