ffmpeg在特定时间将视频叠加在另一个视频上

BOB*_*BOB 3 video ffmpeg overlay video-conversion

我有持续时间为 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
Run Code Online (Sandbox Code Playgroud)

请问有什么建议吗?

谢谢

Gya*_*yan 5

您必须使用该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
Run Code Online (Sandbox Code Playgroud)

要延迟顶部视频的开始,请使用 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
Run Code Online (Sandbox Code Playgroud)