在过去的几个月里,我一直在玩 ffmpeg 并且无法摆脱在添加 GIF 文件作为叠加层时遇到的问题。
基本上我想要实现的是添加一个透明的 GIF 动画作为 MP4 视频的叠加层。
请在下面找到我正在使用的示例命令:
ffmpeg \
-i 0689a8a9-43b5-45d2-b0e8-acbea6905ce1.mp4 \
-ignore_loop 0 \
-i 02a6e696-969b-4a90-9444-e4b0b4d6f6da.gif \
-t 10.000000 \
-filter_complex "[0:v][1:v]overlay=enable='between(t, 1, 3)'[overlay]" \
-map '[overlay]' \
-pix_fmt yuv420p \
output.mp4
Run Code Online (Sandbox Code Playgroud)
为了更好地理解,请注意:
-ignore_loop 0 只要启用覆盖,我就可以循环播放动画-t 让我的视频持续 10 秒overlay=enable='between(t, 1.0, 3.0)' 设置它可见的时间间隔但是,当我运行此命令时,在 GIF 消失前的几毫秒(3 秒时),它开始闪烁。如果我逐帧查看它,它实际上会从视频中消失,然后又回来,并最终按预期消失。
请在此链接中找到一个带有黑色背景和来自 giphy 的随机 GIF 的示例。资产可以在这里找到。
我可能在这里遗漏了一些东西。你有什么提示吗?
我跑ffmpeg在4.3.1。
先感谢您