重建分段的H.264流

时间:2013-02-01 10:50:04

标签: h.264

我将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。

请让我知道我在做什么,这是错误的。

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

mp4box -add MySourcFile.h264 MyDestFile.mp4