【问题标题】:How to split accurately a LONG GOP video (h264/XDCAM...) with FFMPEG?如何使用 FFMPEG 准确分割 LONG GOP 视频(h264/XDCAM ...)?
【发布时间】:2013-08-22 09:11:12
【问题描述】:

我的目标是使用 ffmpeg 准确地分割 XDCAM 或 H264 视频。 我猜这个问题来自它的长 GOP 结构,但我正在寻找一种方法来分割视频而不重新编码它。 我应用偏移量仅对视频的特定部分进行编码(比如说从第 10 秒到媒体结尾) 有什么想法吗?

【问题讨论】:

    标签: bash ffmpeg debian h.264


    【解决方案1】:

    请参考ffmpeg documentation。 你会发现一个选项-frames。该选项可用于为给定的输入流(以下流 0:0 是第一个输入文件,第一个视频流)指定要记录的帧数。该选项可以与其他选项结合使用以在输入文件中的某处开始(时间偏移等......)

    ffmpeg -i intput.ts -frames:0:0 100 -vcodec copy test.ts
    

    该命令仅对视频的前 100 帧进行 demux 和 remux(无重新编码)。

    如前所述,您可以将其与跳跃结合使用。使用“-ss 偏移量(输入)” ' 您可以指定“帧精确”位置,即。 1 分 10 秒后的第 14 帧 = 0:1:10:14。该选项应在输入之前使用,如下所示。

    ffmpeg -ss 00:00:10.0 -i intput.ts -frames:0:0 100 -vcodec copy test.ts
    

    ffmpeg 丢弃前 10 秒并绕过 100 帧到复用器。

    【讨论】:

    • -c:v copy 方法的问题在于,我们只能在完全自给自足的 I 帧开始复制(这可能与每 10 秒仅发生一次一样稀疏,具体取决于GOP 设置),因此指定 -ss 00:00:15.3 没有意义...
    【解决方案2】:

    我不确定 ffmpeg 是否可以通过 1 次,但是 2-3 次

    第一遍:您只需将原始帧转储到文件中 第二遍:您找到封闭的 gop(mxdcam)/idr 帧 (h264),索引

    如果索引相等,您可以启动多路复用器。否则你需要从封闭的 gop/idr 帧解码序列到下一个封闭的 gop/idr 帧并编码你想要的起始帧

    【讨论】:

      猜你喜欢
      • 2016-09-08
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      • 2021-01-16
      • 2019-02-13
      • 2012-08-03
      • 2015-02-23
      • 2012-10-07
      相关资源
      最近更新 更多