目录
RTP 实时传输协议
RTCP协议
将H264 RTP打包
RTP 实时传输协议
音视频数据传输,先将原始数据经过编码压缩后,将码流打包成一个个RTP包,再将码流传输到接收端。
打包的作用
接收端要正确地使用这些音视频编码数据,不仅仅需要原始的数据码流,还需要一些额外的信息当前编码标准,H264 H65等
按照什么速度播放视频?
RTP告知接收端一些必要的信息。
网络带宽预测和拥塞控制。
RTP传输的协议UDP,不具有丢包重传和拥塞控制,需要另外实现,要用到RTCP协议
RTCP协议
实时传输控制协议,辅助RTP协议使用。
其报文有多种,发送端报告(SR),接收端报告(RR),RTP反馈报告(RTPFB)等。
每一种报告的有效负荷都是不同的,通过这些报告在接收端和发送端传递当前统计的RTP包的传输情况。使用这些信息来做丢包重传以及预测带宽。
RTCP协议只是用来传递RTP包的传输统计信息,本身不具有丢包重传和带宽预测的功能,而这些功能需要自己实现。
RFC 3550 - RTP: A Transport Protocol for Real-Time Applications
将H264 RTP打包
1、单NALU封包方式:一个NALU打一个包
适合单个RTP包小于1500字节的时候,P帧和BZ帧编码比较小,还有SPS,PPS适合采用这种方式。
2、组合封包方式:多个NALU打一个包
3、分片封包方式:一个NALU分开在连续多个RTP包中。大的I帧,P帧,B帧使用分片方式