UDP-RTP协议解析

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


1、原理


视频如果前面损坏或后面损坏可以从中间继续播



3、名词解释

MPEG-TS(Transport Stream“传输流”;又称TS、TP、MPEG-TS)是用于音效、图像与数据的通信协定,最早应用于DVD的实时传送节目。

sync_byte  同步字节,固定为0x47 ,表示后面的是一个TS分组,当然,后面包中的数据是不会出现0x47

transport_error_indicator传输错误标志位,一般传输错误的话就不会处理这个包了

payload_unit_start_indicator这个位功能有点复杂,字面意思是有效负载的开始标志,根据后面有效负载的内容不同功能也不同,后面用到的时候再说。

transport_priority  传输优先级位,1表示高优先级,传输机制可能用到,解码好像用不着。

PID 这个比较重要,指出了这个包的有效负载数据的类型,告诉我们这个包传输的是什么内容。前面已经叙述过。 

transport_scrambling_control加密标志位,表示TS分组有效负载的加密模式。TS分组首部(也就是前面这32bit)是不应被加密的,00表示未加密。

 adaption_field_control  翻译为调整字段控制,表示TS分组首部后面是否跟随有调整字段和有效负载。01仅含有效负载,10仅含调整字段,11含有调整字段和有效负载。为00的话解码器不进行处理。空分组没有调整字段

 continuity_counter   一个4bit的计数器,范围0-15,具有相同的PIDTS分组传输时每次加1,到15后清0。不过,有些情况下是不计数的。如下:(1)TS分组无有效负载(2)复制的TS分组和原分组这个值一样(3)后面讲到的一个标志discontinuity_indicator1 

adaptation_field()调整字段的处理

data_byte有效负载的剩余部分,可能为PES分组,PSI,或一些自定义的数据。


实时传输协议RTP(Real-time Transport Protocol)是一个网络传输协议,详细说明了在互联网上传递音频和视频的标准数据包格式。

UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。

3、代码



关于用到的结构体参考http://blog.csdn.net/qingkongyeyue/article/details/52123732

关于用到的函数参考http://blog.csdn.net/qingkongyeyue/article/details/52921559

这里要注意的是htons(port)这里是将16位数从主机字节序(小端字节序)转换成网络字节序(大端字节序)。网络字节顺序TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big endian排序方式。

这里的INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址”。 一般来说,在各个系统中均定义成为0值。





下面是时间戳,假若是MP2T类型,判断同步字节,固定为0x47 ,表示后面的是一个TS分组







  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值