我将 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。
请让我知道我在做什么这是错误的。
提前致谢。