我正在寻找一种在 mp4 上实现 gif 覆盖的方法,具有以下特点:
- 保持视频中的 GIF 透明度
- 让 GIF 仅在特定时间间隔内显示(例如 0:02-0:06)
- 将 GIF 定位到 MP4 文件的左下角
答案1
您可以使用x=between(t, 2, 6), 0, NAN)
表达式求值和y=(H-h)
。
参见overlay
过滤器文档(阅读示例 - 它们足够接近)。
ffmpeg -y -i in.mp4 -i in.gif -filter_complex "[0][1]overlay=x='if(between(t, 2, 6), 0, NAN):y=(H-h)':format=yuv444" -vcodec libx264 -pix_fmt yuv444p -crf 17 -acodec copy out.mp4
format=yuv444
并-pix_fmt yuv444p
用于提高输出质量。
我使用了以下透明 gif邮政,并与合成图案叠加。
构建合成模式(用于测试):
ffmpeg -y -f lavfi -r 10 -i testsrc=size=640x480:rate=1:duration=300 -vf setpts=N/10/TB -vcodec libx264 -pix_fmt yuv444p -crf 17 in.mp4