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

FFmpeg滤镜字符串报错排查:添加透明通道后无法运行

问题排查与修复

原代码

<?php
shell_exec('ffmpeg -i input.mp4 -i watermark.png -filter_complex &quot;[1]format=rgba,colorchannelmixer=aa=0.75[logo];[0]scale2ref=oh*mdar:ih*0.3[video][logo];[video][logo]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2;&quot; output.mp4')

报错信息

[AVFilterGraph @ 0x5615d18ba440] No such filter: '' Error initializing complex filters Invalid argument


问题根源

  1. 多余分号导致空滤镜:滤镜字符串末尾的;会被FFmpeg解析为滤镜链分隔符,误以为后面还有一个空滤镜,触发"No such filter: ''"错误。
  2. 标签名冲突覆盖透明度设置:第一个滤镜链输出的带透明度水印标签[logo],被scale2ref滤镜输出的[logo]覆盖,导致之前的透明度设置失效。

修复后的代码

<?php
shell_exec('ffmpeg -i input.mp4 -i watermark.png -filter_complex "[1]format=rgba,colorchannelmixer=aa=0.75[watermark];[0]scale2ref=oh*mdar:ih*0.3[video][scaled_watermark];[video][watermark]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" output.mp4')

修复说明

  • 移除滤镜字符串末尾的多余分号,避免解析出空滤镜。
  • 修改水印标签名为[watermark],避免被scale2ref的输出标签覆盖,保证透明度设置生效。
  • 若需求是缩放水印而非视频,需调整scale2ref的输入顺序,示例:[1][0]scale2ref=oh*mdar:ih*0.3[watermark][video],具体根据实际需求调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 20:58:10