![ffmpeg 在特定时间将视频叠加在另一个视频上](https://linux22.com/image/1495039/ffmpeg%20%E5%9C%A8%E7%89%B9%E5%AE%9A%E6%97%B6%E9%97%B4%E5%B0%86%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.png)
我有一个视频的时长为 01:30 分钟,还有另一个视频的时长为 00:50 秒,我想在 00:45 到 00:50 之间将第二个视频叠加在第一个视频的顶部
我尝试使用此命令,但它不起作用
ffmpeg -i D:\ffmpeg\base_video.mp4 -i D:\ffmpeg\top_video.avi -filter_complex "[0:0][1:0]overlay[out]" -shortest -map [out] -map 0:1 -pix_fmt yuv420p -c:a copy -c:v libx264 -crf 18 D:\ffmpeg\final_video.mp4
有什么建议吗?
谢谢
答案1
你必须使用enable
选项:
ffmpeg -i D:\ffmpeg\base_video.mp4 -i D:\ffmpeg\top_video.avi -filter_complex \
"[0:0][1:0]overlay=enable='between(t\,45,50)'[out]" \
-shortest -map [out] -map 0:1 \
-pix_fmt yuv420p -c:a copy -c:v libx264 -crf 18 D:\ffmpeg\final_video.mp4
要延迟顶部视频的开始,请使用 setpts 过滤器。
ffmpeg -i D:\ffmpeg\base_video.mp4 -i D:\ffmpeg\top_video.avi -filter_complex \
"[1]setpts=PTS-STARTPTS+10/TB[top];
[0:0][top]overlay=enable='between(t\,10,15)'[out]" \
-shortest -map [out] -map 0:1 \
-pix_fmt yuv420p -c:a copy -c:v libx264 -crf 18 D:\ffmpeg\final_video.mp4