如何裁剪(时间而不是图片)MP4 视频文件

如何裁剪(时间而不是图片)MP4 视频文件

我正在寻找一个应用程序来帮助我截断 mp4 文件的开头和结尾高效无损

例如,有什么方法可以让我找到一个关键帧并在该关键帧和另一个关键帧之间复制所有内容,而无需重新编码所有内容(缓慢且有损),并且不会丢失 AV 同步?

我说的 mp4 指的是 MP4 容器中的 H264 视频 + AAC 音频

在 h264 之前,Avidemux 是一个出色的工具,因为您可以重用原始编码流,这意味着不会有任何损失,只需几秒钟即可创建修剪版本,但对于 h264 来说,这是不可能的 - 打开一个会给您两个选项:使用安全模式(会大量丢失 AV 同步)或使用危险模式,这会立即使其崩溃。

据我所知,Openshot、Kdenlive、Pitivi 等都会通过解码和重新编码(缓慢且有损)来实现这一点。

看起来很简单(可能表明我在这里缺乏知识!),所以想知道我是否遗漏了什么。

答案1

ffmpeg

ffmpeg -i source.mp4 -ss 00:00:00 -t 00:00:00 -vcodec copy -acodec copy splice.mp4

这将获取 source.mp4,并使用相同的音频和视频编解码器,并且不会降低质量,-t 时间-ss 开始时间视频并输出你的 splice.mp4

请注意,时间对格式非常敏感(以上是格式的一个示例)。此外,在某些发行版中,ffmpeg已被替换为avconv。只需运行上述命令并将单词 ffmpeg 替换为 avconv 即可解决此问题。

有关该主题的另一个极好的信息来源。(感谢@pbhj)

答案2

在 Ubuntu 16.04 中,相当于ffmpeg命令avconv

要安装它,请运行:

sudo apt-get install libav-tools

按时间裁剪视频的示例命令行:

avconv -i originalFile.ogv -ss 00:00:00 -t 00:00:10 -vcodec copy -acodec copy croppedFile.ogv

相关内容