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

FFmpeg添加带淡入淡出效果的PNG水印无显示问题求助

排查FFmpeg PNG叠加不显示的问题

我看了你的命令,大概率是图片流的时间轴和fade参数的配合逻辑出了问题。单帧PNG作为输入时,FFmpeg会默认生成无限时长的流,虽然你给alpha通道加了淡入淡出效果,但可能因为时间戳匹配偏差或播放器渲染逻辑,导致图片没正常显示。咱们一步步修正:

问题分析

你的原命令里,fade=in:st=1:d=3:alpha=1是对PNG流的第1秒开始淡入,逻辑本身没问题,但PNG流全程存在(哪怕alpha为0),部分播放器对长时间透明帧的处理可能有偏差;另外overlay滤镜没有明确参数,也可能带来不确定性。

修正后的命令

ffmpeg.exe -i "20180523152257.mp4" -i "20180523152257.mp4.png" -filter_complex "[1:v]format=rgba,trim=start=1:end=9,setpts=PTS-STARTPTS,fade=in:st=0:d=3:alpha=1,fade=out:st=5:d=3:alpha=1 [ovr]; [0:v][ovr] overlay=x=0:y=0:enable='between(t,1,9)' " -codec:a copy "OUT.mp4"

关键修正点解释

  • trim=start=1:end=9:把PNG流裁剪到对应视频的1秒到9秒区间(刚好覆盖淡入+显示+淡出的全过程),避免生成多余的透明帧。
  • setpts=PTS-STARTPTS:重置裁剪后的PNG流时间轴为0,让后续fade参数的时间计算更直观(比如fade=in:st=0就对应视频的1秒)。
  • overlay=x=0:y=0:enable='between(t,1,9)':明确指定PNG叠加在左上角,并且只在视频的1-9秒内启用叠加,彻底避免额外渲染问题。
  • 调整后的fade参数:fade=in:st=0:d=3对应视频1-4秒完成淡入,fade=out:st=5:d=3对应视频6-9秒完成淡出(裁剪后的PNG流第5秒就是视频的1+5=6秒)。

额外排查建议

  1. 尽量使用最新稳定版FFmpeg,旧版本可能对部分滤镜参数支持不完善。
  2. 确认PNG本身带有透明通道(用图片查看器检查是否有透明区域)。
  3. 如果还是看不到,可以先去掉fade效果,用overlay=enable='between(t,1,9)'测试PNG是否能正常显示,再逐步添加淡入淡出效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:14:49