gpt4 book ai didi

ffmpeg - 两个 .ts 文件之间缺少一帧

转载 作者:行者123 更新时间:2023-12-04 23:00:17 29 4
gpt4 key购买 nike

我有 2 个文件:fileSequence0.ts 和 fileSequence1.ts,我使用 ffmpeg 检查每个文件的帧数,结果是:

  • fileSequence0.ts,29 帧
  • fileSequence1.ts,28 帧

  • 然后我将 2 个文件合并为一个:
    ffmpeg -i 'concat:fileSequence0.ts|fileSequence1.ts' -codec copy merge.mp4

    现在,merge.mp4 有 58 框架,而不是 57 = 29 + 28 ,那是什么,有人能指出我缺少什么知识吗?

    此处提及的文件可在以下网址下载: https://github.com/ideawu/missing-frame-between-ts

    最佳答案

    第二个文件fileSequence1.ts还有 29 框架不是 28 .

    由于最初分段的方式,如果您自己播放它,您将无法获得一帧,因为它缺少所需的 SPS/PPS 数据:

    [h264 @ 0x4111460] non-existing PPS 0 referenced
    Last message repeated 1 times
    [h264 @ 0x4111460] decode_slice_header error
    [h264 @ 0x4111460] non-existing PPS 0 referenced
    [h264 @ 0x4111460] decode_slice_header error
    [h264 @ 0x4111460] no frame!

    由于 SPS/PPS 存在于第一个文件中,当您连接时,它将读取 fileSequence0.ts首先它将能够解码丢失的帧,因此结果是正确的值 58 .

    您可以通过颠倒 concat 的顺序轻松看到这一点:
    ffmpeg -i 'concat:fileSequence1.ts|fileSequence0.ts' -codec copy merge.mp4

    此命令导致 57 帧,因为它无法解码第一个。

    关于ffmpeg - 两个 .ts 文件之间缺少一帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34286338/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com