SpecialVirusTasker Asked: 2022-02-13 23:41:17 +0800 CST2022-02-13 23:41:17 +0800 CST 2022-02-13 23:41:17 +0800 CST 以特定时间间隔在 MP4 上覆盖 GIF(同时保持 GIF 透明度)[FFMPEG] 772 我正在寻找一种在 mp4 之上实现 gif 覆盖的方法,具有以下特征: 保持视频的 GIF 透明度 让 GIF 仅在特定时间间隔内显示(等 0:02-0:06) 将 GIF 定位在 MP4 文件的左下角 video ffmpeg 1 个回答 Voted Best Answer Rotem 2022-02-14T09:29:37+08:002022-02-14T09:29:37+08:00 您可以使用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 具有透明度的 GIF 图像:
您可以使用
x=between(t, 2, 6), 0, NAN)
表达式评估和y=(H-h)
.请参阅
overlay
过滤器文档(阅读示例 - 它们足够接近)。format=yuv444
-pix_fmt yuv444p
用于提高输出质量。我使用了下面帖子中的透明 gif ,并用合成图案覆盖。
输出帧样本:
构建合成模式(用于测试):
具有透明度的 GIF 图像: