FFmpeg/X264:分割视频中 GOP,无需重新编码整个流

发布于 2024-12-06 22:21:31 字数 192 浏览 0 评论 0原文

我有一个 H264 视频(存储在 MP4 文件中)。每个 GOP 大约长 10 秒。我想剪掉视频的前几秒,这意味着我需要分割第一个 GOP。有没有办法在不重新编码整个视频的情况下做到这一点?

我有 FFmpeg 和 x264 可用。我很高兴使用 FFmpeg 命令行,或者我自己的链接到 x264 库的 ffmpeg 的程序。

提前致谢!

I've got an H264 video (Stored in an MP4 file). Each GOP is approx 10s long. I want to trim the first couple of seconds off the video, which means I need to split the first GOP. Is there a way to do this without re-encoding the entire video?

I've got FFmpeg and x264 available. I'm happy to use either the FFmpeg command line, or my own program linked against ffmpeg of x264 libraries.

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

兔姬 2024-12-13 22:21:31

我认为您意识到一些重新编码是不可避免的。您可以使用以下方法避免重新编码整个视频:

  • 将视频分为两部分:第一个 GOP 和视频的其余部分。您应该能够在不重新编码的情况下执行此操作(使用 -vcodec copy
  • 将第一个 GOP 转换为您可以轻松剪切的内容,例如 YUV
  • 剪切 YUV 文件
  • 使用以下命令重新编码剪切文件与原始视频相同的参数(您可以从 ffprobe 获取这些参数。
  • 将重新编码的剪切文件与视频的其余部分(从第一步开始)连接起来。同样,您将使用 - vcodec复制到确保不执行重新编码。

我从来没有这样做过,但是 常见问题解答似乎有一个关于加入视频文件的部分。

I think you realize that some re-encoding is unavoidable. You may be able to avoid re-encoding the entire video using the following approach:

  • Split the video into two parts: the first GOP and the rest of the video. You should be able to do this without re-encoding (use -vcodec copy)
  • Convert the first GOP into something that you can easily cut, such as YUV
  • Cut the YUV file
  • Re-encode the cut file using the same parameters as the original video (you can get these from ffprobe.
  • Join the re-encoded cut file with the rest of the video (from step one). Again, you would use -vcodec copy to ensure no re-encoding is performed.

I've never had to do this, but the FAQ seems to have a section on joining video files.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文