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

yod*_*lex 5 video mp4 ffmpeg h.264 x264

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

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

提前致谢!

mpe*_*kov 5

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

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

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