如何在不重新编码的情况下删除 FFmpeg 中视频的特定部分?

如何在不重新编码的情况下删除 FFmpeg 中视频的特定部分?

我找到了此主题剪切文件中的特定部分。它不是很有用,因为我想要做的恰恰相反,即删除视频的选定部分。

该用户的无需重新编码即可提取部分内容的解决方案效果很好。我可以做类似的事情来删除选定部分吗?

我不喜欢重新编码,但无论哪种方式我都同意,所以任何解决方案都可以。

答案1

使用编解码器的“复制”选项 -c:v copy -c:a copy 提取所需的部分

假设您有一个 6 分钟的视频,并且您不想要 2-3 分钟和 4-5 分钟的部分:

ffmpeg -ss 00:00:00 -to 00:02:00 -i input.mp4 -c:v copy -c:a copy input_part1.mp4
ffmpeg -ss 00:03:00 -to 00:04:00 -i input.mp4 -c:v copy -c:a copy input_part2.mp4
ffmpeg -ss 00:05:00 -to 00:06:00 -i input.mp4 -c:v copy -c:a copy input_part3.mp4

为您提取的文件创建一个文本文件(filelist.txt)

file 'input_part1.mp4'
file 'input_part2.mp4'
file 'input_part3.mp4'

然后将它们连接在一起,就像这样

ffmpeg -safe 0 -f concat -i 文件列表.txt -c 复制输出.mp4

output.mp4 不应该包含您不想要的部分。

相关内容