如何使用 FFmpeg 在一个命令中将 PNG 叠加在两个视频上(一个视频叠加在另一个视频上)?

如何使用 FFmpeg 在一个命令中将 PNG 叠加在两个视频上(一个视频叠加在另一个视频上)?

我是 FFmpeg 的新用户,我想用一个命令在两个视频(一个视频覆盖另一个视频)上插入徽标。

例如,我有一个背景视频(1)、一个缩放视频(2)和一个徽标(3P,我想创建一个用一个命令包含“3 on 2 on 1”的视频。

通常情况下,我必须一步一步地进行:缩放视频(2),然后将此视频叠加在背景视频上(3),最后将徽标(1)叠加在上面。我认为这些步骤可能会降低最终视频的质量,因为需要重新编码 3 次。


第一步:

ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output1.mp4

第二步:

ffmpeg -loop 1 -i background.mp4 -i output1.mp4 -filter_complex "[1]scale=1280:720[inner];[0][inner]overlay=70:70:shortest=1[out]" -map "[out]" -map 1:a -c:a copy -y output2.mp4

第三步:

ffmpeg -i output2.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay=10:10:enable=not(between'(t\,10\,15)')" -codec:a copy -preset medium output3.mp4

非常感谢你的帮助。

答案1

使用此命令:

ffmpeg -stream_loop -1 -i background.mp4 -i input.mp4 -i logo.png
-filter_complex "[1]scale=1280:720[inner];[0][inner]overlay=70:70:shortest=1[vid];
                 [vid][2]overlay=10:10:enable='not(between(t\,10\,15))'[out]" -map "[out]" -map 1:a -c:a copy -y output.mp4

相关内容