繁体   English   中英

H264基本流格式混乱

[英]H264 elementary stream format confusion

我对H264视频流的格式感到困惑。 简单地说,我从ISO规格和其它来源的是H264 NAL单元由起始码界定,并且不包含任何长度的信息他们没有起始码和4个字节导致阅读(我知道这可以改变)给出NAL单位的长度。 为了让事情更加混乱,我一直在寻找Spydroid中的代码,它似乎解决了这两种情况。 有两种不同的格式,我混淆了,如果是这样,任何人都可以指导我解释这两种格式的信息。

背景

给出一些背景知识,以帮助我从Android摄像头进行直播。 流将在设备上拆分为RTP,或作为原始MP4数据发送,以便在服务器上拆分。 无论哪种方式,流都将是实时的,因此没有MOOV信息可以找到音频和视频帧。 我相信我已经找到了很多项目,但我对H264流中应该看到的内容感到困惑。 如果长度确实包含在NAL单位中,那肯定对我有帮助。

就H.264比特流而言。 它被分成NAL单元,由startcode前缀分隔。

startcode_prefix  NALUnit    startcode_prefix  NALUnit .....  

其中没有长度信息,因为它是比特流。 您必须在下一个NAL单元的比特流中查找起始码模式(0x000001或0x00000001)。

更多信息: H264解析 - 切片头检测

根据以下链接,存在H.264子类型。 一些具有流中的起始码,而另一些具有1,2或4个字节长度的字段。

http://msdn.microsoft.com/en-us/library/windows/desktop/dd757808(v=vs.85).aspx

所以看起来我需要检查子类型以确定如何解析流。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM