【问题标题】:Reconstructing fragmented H.264 stream重构分段的 H.264 流
【发布时间】:2013-01-16 16:02:03
【问题描述】:

我将 H.264 流存储为文件。我正在尝试通过将此流添加到 MDAT BOX 来创建 MPEG4 文件。我创建了 MPEG-4 标准所需的其他标头。但我无法读取 MPEG-4 文件。

我解析了 H.264 流,发现文件中有多个 I 帧。在我看来,这是零散的 H.264 流。

有没有什么方法可以将这个分段的 H.264 流组合成一个 I 帧?

我已经浏览了链接Problem to Decode H264 video over RTP with ffmpeg (libavcodec)

我实现了链接中提到的内容,但我仍然无法运行由此创建的 MPEG-4。

通过上述技术,我得到了 fragmentType = 5。我得到了以下 nalTypes (8, 2, 1, 0, 0, ...)。我得到指定的 startBit,对于其他片段,我得到 00(对于 StartBit|endBit)。我没有得到 endBit。

当我尝试使用 FFMPEG 重新转换创建的 MPEG-4 文件时,我收到以下错误:“标头损坏”。看起来 IDR 帧的重建工作不正常。

如果我遵循的方法有任何问题,请告诉我。

H.264 流文件大约 100KB。当使用 FFMPEG 将此文件转换为 MP4 时,我得到大约 38KB。这是否意味着 FFMPEG 再次重新编码文件以重新创建 MP4 文件?

使用链接中提到的上述技术,我创建的 MP4 本身约为 100KB。

请让我知道我做错了什么。

提前致谢。

【问题讨论】:

    标签: h.264


    【解决方案1】:

    听起来您想将 H.264 基本流包装在一个 mp4 容器中,以便您可以播放它。 像 mp4box (http://gpac.wp.mines-telecom.fr/mp4box/) 这样的工具将使您能够将基本流包装到 mp4 文件中。例如:

    mp4box -add MySourcFile.h264 MyDestFile.mp4

    【讨论】:

      猜你喜欢
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      • 2013-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-12
      • 2012-06-22
      相关资源
      最近更新 更多