我有一段长达几个小时的 MP4 视频 (h264+AAC),我需要用另一个视频 (或仅音频) 替换其中的一小部分。原因是该文件是现场会议的录制,我需要在发布之前将其部分内容黑屏/静音。
我想使用 ffmpeg。我找到了很多有关 filter complex、concat 等的信息……但在深入研究所有这些之前,我想知道是否有更简单的方法。或者至少提示一下我应该使用 filter_complex 的哪些功能。
到目前为止,我都是在 Premiere Elements 中手动操作的,我会取出主视频并将另一个剪辑放入第二轨。我想让整个过程自动化……
答案1
假设你想在需要的时候关闭视频并静音,你的基本命令模板将是
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
颜色大小和速率应该与您的视频相同。
如果要用图像替换黑屏,请删除-f lavfi
和颜色表达式并-loop 1
在前面添加-i image.jpg
。