如何修剪非常大的视频?

Tim*_*Tim 15 video

我做了一个屏幕录制,但后来不小心把它录制了一夜,额外的 6 个小时。我认为总共大约需要 9 个小时 - 文件已达到 15GB。

幸运的是它设法保存到桌面,但我正在努力打开它来修剪它。

我正在考虑将文件拆分为约 30 个较小文件的最佳方式。然后我可以重新组装所需的。

同样,我对有用的内容结束的地方相当有信心 - 大约 2:30 标记。如果需要,我可以更准确地计算它。

我可以用一个不会将整个视频加载到内存中的工具来做这些事情吗?我之前在 Ubuntu 上使用过 ffmpeg,但我不知道它是否可以做这样的事情。

小智 23

我认为 ffmpeg 会做到这一点。这具有不解压缩和重新压缩文件的优点,因此它应该很快。使用-c copy参数来实现这一点。

ffmpeg -i input.mp4 -ss 00:02:30 -t 00:10:00 -c copy output.mp4
Run Code Online (Sandbox Code Playgroud)

为了解释上面的命令...

  • ffmpeg 是应用程序
  • -i input.mp4 是你的输入文件
  • -ss 00:02:30 起点 (HH:MM:SS)
  • -t 00:10:00 剪辑的持续时间(十分钟长)
  • -c copy 无需重新编码即可复制音频和视频
  • output.mp4 输出文件

请参阅此链接了解更多信息。


此外,GitHub 页面中的评论(在上面的链接中提到)建议放置 -ss 00:02:30 before -i input.mp4以加快速度。您可以使用time. 相比

time ffmpeg -i input.mp4 -ss 00:02:30 -t 00:10:00 -c copy output.mp4
Run Code Online (Sandbox Code Playgroud)

time ffmpeg -ss 00:02:30 -i input.mp4 -t 00:10:00 -c copy output.mp4
Run Code Online (Sandbox Code Playgroud)

  • @BruceWayne `-c copy` 表示“不要解码和重新编码任何东西,只需将数据直接从输入复制到输出”;ffmpeg 总是创建一个新文件。我建议只使用这个,然后删除原来的。 (2认同)
  • `-i` 之前的 `-ss` 不仅更快,而且在这种情况下更好。`-i` 之前的 `-ss` 和 `-copy` 将始终在关键帧处开始复制。`-i` 之后的 `-ss` 将在请求的时间戳开始输出,即使 * 不是 * 解码器启动的有效点。转码的时候没问题,但是流拷贝的时候,很可能会创建一个开头乱码的输出文件。 (2认同)