![如何使用 FFmpeg 在一个命令中将 PNG 叠加在两个视频上(一个视频叠加在另一个视频上)?](https://linux22.com/image/1589031/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20FFmpeg%20%E5%9C%A8%E4%B8%80%E4%B8%AA%E5%91%BD%E4%BB%A4%E4%B8%AD%E5%B0%86%20PNG%20%E5%8F%A0%E5%8A%A0%E5%9C%A8%E4%B8%A4%E4%B8%AA%E8%A7%86%E9%A2%91%E4%B8%8A%EF%BC%88%E4%B8%80%E4%B8%AA%E8%A7%86%E9%A2%91%E5%8F%A0%E5%8A%A0%E5%9C%A8%E5%8F%A6%E4%B8%80%E4%B8%AA%E8%A7%86%E9%A2%91%E4%B8%8A%EF%BC%89%EF%BC%9F.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