UDP_RTP+MPEG2-TS浅析

对于TS流的产生和到组成UDP包的发送,通过一下图,大家有个直观的了解:

1、TS流的产生:

UDP_RTP+MPEG2-TS浅析_第1张图片


2、TS流组包为RTP数据包,通过UDP发送出去:

UDP_RTP+MPEG2-TS浅析_第2张图片


3、针对MPEG2-TS协议包格式及头参数介绍如下:

UDP_RTP+MPEG2-TS浅析_第3张图片

UDP_RTP+MPEG2-TS浅析_第4张图片


针对RTP协议及MPEG2-TS具体的详细介绍,下面几篇文章下的很好:

http://blog.csdn.net/rootusers/article/details/42772657

http://blog.csdn.net/rootusers/article/details/42970859

http://blog.chinaunix.net/uid-24922718-id-3686257.html

http://blog.csdn.net/leixiaohua1020/article/details/50535230


这里要说明下,在MPEG2-TS相关开发的时候注意两点:

1、对于RTP协议头,由于大小端对结构体的位域也有影响,定义的时候要考虑大小端问题。

UDP_RTP+MPEG2-TS浅析_第5张图片


2、对于每次发送UDP包中TS包的个数。

考虑到以太网数据帧的最大长度为1500,所以一般规定,每7个TS数据包封装在一起进行发送。

另外我在测试的过程中通过ffmpeg进行ts数据包推流,每次socket接受到的UDP数据包大小为1328byte,

也就是7*188+12,这里12为rtp协议头大小。


你可能感兴趣的:(H.264与音视频编解码)