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

FFmpeg中scale2ref输出的水印流无法在第二个overlay调用问题

报错原因

你遇到的报错核心原因是 FFmpeg 滤镜图中每个输出流默认只能被一个滤镜消费一次:你第一次在overlay=10:10里已经使用了[logo-out]流,该流被消耗后就会从滤镜图的可用流中移除,第二个overlay自然找不到匹配的流,和 overlay 的输出类型没有关联。

优化后可用命令

直接用split滤镜把第一次缩放完成的水印拆成两份,分别供给两个位置的overlay调用即可,完全不需要重复执行scale2ref:

ffmpeg -hide_banner -i /path/to/input.mp4 -i /path/to/watermark.jpg -filter_complex "[1:v][0:v]scale2ref=oh*mdar:ih/10[logo-out][video-out];[logo-out]split[logo1][logo2];[video-out][logo1]overlay=10:10[flag];[flag][logo2]overlay=W-w-10:H-h-10" -c:a copy /path/to/output.mp4

命令逻辑说明

  • 第一步scale2ref和原有逻辑一致,将水印图片高度缩为对应视频高度的1/10,同时保持水印宽高比,输出缩放后的水印流[logo-out]、原视频流[video-out]
  • 第二步split滤镜将[logo-out]复制为两个完全相同的独立流[logo1]、[logo2],可供两个overlay分别调用
  • 第一个overlay把[logo1]贴到视频左上角,输出加了第一个水印的中间流[flag]
  • 第二个overlay把[logo2]贴到中间流的右下角,得到最终输出视频

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:06:03