使用 ffmpeg 将部分视频替换为另一个视频

Rad*_*dík 4 audio video ffmpeg

我有几个小时长的 MP4 视频 (h264+AAC),我需要用另一个视频(或仅音频)替换其中的一小部分。原因是该文件是实时会话的录音,我需要在发布之前将其部分黑屏/静音。

我想使用 ffmpeg。我发现了很多关于过滤器复合体、连接等的信息......但我想知道在我深入研究所有这些之前是否有更简单的方法。或者至少提示我应该使用 filter_complex 的哪些功能。

到目前为止,我都是在 Premiere Elements 中手动完成此操作,在其中获取主视频并将另一个剪辑放入第二个轨道中。我想自动化整个过程......

Gya*_*yan 5

假设您想要在需要时关闭视频并静音音频,您的基本命令模板将是

ffmpeg -i video.mp4 -f lavfi -i "color=black:s=1280x720:r=25" -filter_complex \
"[0:v][1]overlay=enable='between(t,25,35)'[a]; \
 [a][1]overlay=enable='between(t,80,90)'[b]; \
 [b][1]overlay=enable='between(t,94,115)'[c]; \
 ...
 [n][1]overlay=enable='between(t,4805,4821)'[video]; \
 [0:a]volume=0:enable='between(t,25,35)', \
      volume=0:enable='between(t,80,90)', \
      volume=0:enable='between(t,94,115)', \
      ...
      volume=0:enable='between(t,4805,4821)'[audio]" \
-map "[video]" -map "[audio]"  output.mp4
Run Code Online (Sandbox Code Playgroud)

颜色大小和速率应与您的视频相同。

如果您想用图像替换黑屏,请删除-f lavfi和 颜色表达式并-loop 1在 之前添加-i image.jpg