RTP+H264打包--rfc3984

rfc3984:RTP Payload Format for H.264 Video

RTP+H264打包--rfc3984_第1张图片

H264的Nal Unit以上面图开始,一字节,后5位是type。

RTP+H264打包--rfc3984_第2张图片

 一般是标红的三种打包格式比较常见,很多开源库都有,比如WebRTC和MediaStream2。WebRTC中RtpPacketizerH264类有这三种打包。不带起始码。

RTP+H264打包--rfc3984_第3张图片

一 NAL unit:Single NAL unit mode

RTP+H264打包--rfc3984_第4张图片 

RTP+H264打包--rfc3984_第5张图片

第一字节的后5位是nalu type,分别为7、8、5,分开的RTP包发的。

二  FU_A

RTP+H264打包--rfc3984_第6张图片

 RTP+H264打包--rfc3984_第7张图片

 RTP+H264打包--rfc3984_第8张图片

SPS和PPS分单个包发送。没有必须。

FU_A和NAL Unit区别:FU_A比NAL Unit多了1字节,type为28,在第二字节新增SER,S表示Start第一包,End最后一包,后5位是nalu type。

三 STAP_A

RTP+H264打包--rfc3984_第9张图片  SPS和PPS做一包发送:24 | size| sps | size | pps。

RTP+H264打包--rfc3984_第10张图片

RTP+H264打包--rfc3984_第11张图片

type是24,后面跟2字节的长度,视频数据。多了3字节。

四 sdp协商的packetization-mode

packetization-mode=0,只能Single NAL unit mode。

packetization-mode=1,只能Single NAL unit mode、FU_A、STAP_A。

RTP+H264打包--rfc3984_第12张图片

 RTP+H264打包--rfc3984_第13张图片

你可能感兴趣的:(流媒体开发,音视频)