FFmpeg添加带透明度水印报错:Filter scale2ref has an unconnected output
解决FFmpeg水印缩放与透明度设置的错误问题
错误原因分析
你遇到的Filter scale2ref has an unconnected output错误有两个核心原因:
scale2ref滤镜输出了[logo][video]两个标签,但后续未使用[video]标签,导致该输出未连接到任何后续滤镜。- 先通过
scale2ref处理logo生成[logo],之后又直接调用原始logo输入[1]重新生成同名[logo],既浪费了之前的缩放操作,还造成标签冲突与输出未连接问题。
修正后的命令
ffmpeg -i $initialFilePath -i $assetLogoFilePath -y -filter_complex '[1][0]scale2ref=w=oh*mdar:h=ih*0.03[scaled_logo][video];[scaled_logo]format=rgba,colorchannelmixer=aa=0.5[transparent_logo];[video][transparent_logo]overlay=W-w-5:H-h-5' -c:a copy $temporaryDirectoryPath/$finalVideoPath
命令解释
[1][0]scale2ref=w=oh*mdar:h=ih*0.03[scaled_logo][video]:将logo(输入1)参照视频(输入0)尺寸缩放,logo高度设为视频高度的3%,宽度按原logo宽高比自动计算,输出缩放后的logo为[scaled_logo],原视频为[video]。[scaled_logo]format=rgba,colorchannelmixer=aa=0.5[transparent_logo]:把缩放后的logo转换为带Alpha通道的RGBA格式,设置透明度为50%(aa=0.5),输出带透明效果的logo为[transparent_logo]。[video][transparent_logo]overlay=W-w-5:H-h-5:将透明logo叠加到视频右下角,距离右边缘和下边缘各5像素。-c:a copy:直接复制原视频音频流,避免重新编码节省时间。
内容的提问来源于stack exchange,提问作者Danny
相关产品推荐
相关产品推荐

