我有一个视频文件,它被分成三个不同的部分。我想用另一个剪辑替换这个视频的中间部分。但是,我仍然想保留原始视频的音频。我可以在 ffmpeg 中做到这一点吗?
以下是我的要求:
- 原始视频长60秒。
- 我想要替换的部分是25到45秒。
- 我想保留 25 到 45 秒的原始音频,并用其他片段替换视觉部分。
- 生成的视频也将是 60 秒长。但是,新视频的长度将为 25 到 45 秒。
谢谢。
答案1
答案2
简单的方法是使用设定点过滤器添加延迟new.mp4
,然后覆盖过滤enable
选择new.mp4
放置original.mp4
:
ffmpeg -i original.mp4 -i new.mp4 -filter_complex "[1]setpts=PTS-STARTPTS+25/TB[fg];[0][fg]overlay=enable='between(t,25,45)'[v]" -map "[v]" -map 1:a -c:a copy output.mp4
假设
new.mp4
其宽度 x 高度与 相同original.mp4
。如果不是,则添加 scale、scale2ref、pad 和/或 crop 滤镜。如果您希望
new.mp4
在叠加时以自己的 25 秒时间戳而不是 0 时间戳播放,请删除 setpts。