2013-02-01 49 views
1

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

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

有没有办法在此支离破碎的H.264码流可以组合成一个单一的I帧?

我已经通过链接Problem to Decode H264 video over RTP with ffmpeg (libavcodec)

我实现什么的链接被提及,但我仍然无法运行MPEG-4由此产生。

采用上述技术时,得到段类型= 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。

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

在此先感谢。

回答

0

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

mp4box -add MySourcFile.h264 MyDestFile.mp4