如何裁剪(时间不拍照)MP4video文件

我正在寻找一个应用程序,以帮助我有效和无损地切断mp4文件的开始和结束位。

例如,有什么东西可以让我找到关键帧并在那个和另一个关键帧之间复制批次,而无需重新编码该批次(慢速和有损),并且不会丢失AV同步?

通过mp4,我指的是MP4容器中的H264video+ AAC音频

预h264天Avidemux是一个很好的工具,因为你可以重复使用原始编码流意味着没有损失,只需几秒钟就可以创建修剪版本,但是对于h264它是没有希望的 – 打开一个会给你两个选择:使用安全模式(大量失去AV同步)或使用立即崩溃的危险模式。

AFAIK,Openshot,Kdenlive,Pitivi等都将通过解码和重新编码(慢速和有损)来实现这一目标。

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

ffmpeg的

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

这将采用source.mp4,并使用相同的音频和video编解码器而不降低质量,在-ss开始时间video后输出-t时间并输出splice.mp4

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

关于这个主题的另一个很好的信息来源。 (谢谢@pbhj)

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

要安装它运行:

 sudo apt-get install libav-tools 

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

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