解码器如何确定H264解码中单个NAL单元的大小

时间:2015-12-07 08:58:45

标签: video-streaming h.264 rtp

如RFC 6184 https://tools.ietf.org/html/rfc6184#section-5.6第5.6节所述,单个NAL单元数据包只能包含一个NAL单元。

我的问题是现在接收端的解码器如何识别该单个NAL单元的大小或者知道单个NAL单元分组中的NAL单元的结束。

然而,在STAP等其他分组化模式中,NAL单元的大小作为RTP有效载荷的一部分存在。

1 个答案:

答案 0 :(得分:2)

  

我的问题是现在接收端的解码器如何识别此单NAL单元的大小或者知道单NAL单元数据包中NAL单元的结束。

OS / socket API告诉您接收到的UDP(RTP)数据包的大小。在TCP流式传输的情况下,RTP数据包的大小通常预先添加到RTP数据包(RTSPRFC4571)。 处理RTP header后,有效负载 single nal unit mode中的NAL单元。

虽然典型的RTP标头是12个字节,但您应该根据RFC3550对其进行解析,因为大小取决于CSRC和RTP标头扩展。

在STAP的情况下,您需要知道大小,因为单个RTP数据包中有多个NALU。因此,你必须通过阅读大小来解析每一个。