如何使用FFmpeg将视频在2秒至4秒时段叠加到另一视频?
FFmpeg 实现视频仅在指定时间段叠加
方法1:利用 overlay 滤镜的 enable 参数
直接给 overlay 滤镜添加时间启用条件,让叠加仅在主视频的2秒到4秒区间生效:
ffmpeg -i tmp/test_screen_1672755242397.mp4 -vf "movie=tmp/test_camera_1672755249551.mp4, scale=250:-1 [inner]; [in][inner] overlay=10:10:enable='between(t,2,4)' [out]" completed.mp4
enable='between(t,2,4)':指定仅当主视频的时间轴t处于2秒至4秒之间时,执行叠加操作。
方法2:裁剪子视频并调整时间戳
先截取子视频的对应时长,再调整其时间戳,让它刚好在主视频的2秒位置开始播放:
ffmpeg -i tmp/test_screen_1672755242397.mp4 -vf "movie=tmp/test_camera_1672755249551.mp4, scale=250:-1, trim=start=0:end=2, setpts=PTS-STARTPTS+2/TB [inner]; [in][inner] overlay=10:10 [out]" completed.mp4
trim=start=0:end=2:截取子视频的前2秒内容(匹配主视频2-4秒的叠加时长)setpts=PTS-STARTPTS+2/TB:将截取后的子视频时间戳偏移,使其从主视频的2秒节点开始播放
内容的提问来源于stack exchange,提问作者KoliK
相关产品推荐
相关产品推荐

