FFmpeg / X264:拆分视频mid-GOP而不重新编码整个流

时间:2011-09-25 10:41:24

标签: video ffmpeg h.264 mp4 x264

我有一个H264视频(存储在MP4文件中)。每个GOP长约10秒。我想在视频的前几秒修剪,这意味着我需要拆分第一个GOP。有没有办法在不重新编码整个视频的情况下执行此操作?

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

提前致谢!

1 个答案:

答案 0 :(得分:5)

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

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

我从来没有这样做过,但是FAQ似乎有关于加入视频文件的部分。