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

art*_*bot 25 video-editor 12.04

我正在寻找一个应用程序来帮助我有效且无损地从 mp4 文件的开头和结尾处截取位。

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

通过 mp4,我的意思是 MP4 容器中的 H264 视频 + AAC 音频

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

AFAIK、Openshot、Kdenlive、Pitivi 等都将通过解码和重新编码(缓慢且有损)来实现这一点。

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

ear*_*Lon 32

ffmpeg

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

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

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

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

  • 杰出的。请注意,您不能缩写 `-ss` 参数,即 9 分钟的 `9:00` 必须表示为 `00:09:00`,否则它会被默默忽略。根据 ffmpeg 的警告,我认为这个答案也应该更新为使用 `avconv`。谢谢。 (3认同)

Ale*_*oVD 5

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

要安装它,请运行:

sudo apt-get install libav-tools
Run Code Online (Sandbox Code Playgroud)

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

avconv -i originalFile.ogv -ss 00:00:00 -t 00:00:10 -vcodec copy -acodec copy croppedFile.ogv
Run Code Online (Sandbox Code Playgroud)