使用 ffmpeg 循环叠加视频

使用 ffmpeg 循环叠加视频

我有两个视频,其中一个视频叠加在另一个视频上。叠加的视频只有几秒钟长,我想让它在主视频播放时继续循环播放。我试过了我能想到的所有办法,但似乎都没有用ffmpeg

循环视频背景 - 例子:

  1. “main_video” 持续时间 56:00:00
  2. “video_bg_overlay” 长时间 00:00:30

如何让“video_bg_overlay”在“main_video”时自动循环播放

答案1

电影滤镜中的循环选项不会为循环扩展设置新的时间戳,因此必须手动完成。

ffmpeg -i "main_video" -af "pan=stereo|c0=FL|c1=FR,volume=1.5" \
    -vf "movie=video_bg_overlay.mp4:loop=0,setpts=N/FRAME_RATE/TB,hue=s=0[bg];[in]scale=iw/2:-1,pad=iw+20:ih+20:10:10:color=yellow[m]; [bg][m]overlay=shortest=1:x=(W-w)/2:y=(H-h)/2[out]" \
    -c:v libx264 Out_video

答案2

使用-stream_loop选项:

ffmpeg -stream_loop -1 -i bg.mp4 -i main.mp4 -filter_complex "[0][1]overlay=shortest=1[v]" -map "[v]" -map 1:a -c:a copy output.mp4

相关内容