RTP Over RTSP Over TCP

说明:从各帖子收集了一些资料,结合自己抓包,整理而来

socket接收到RTSP包结构:
        [Magic][Channel][0x00][0x00]
        Magic:0x24
        Channel取值由RTSP协议中Setup阶段设置的interleaved来决定,默认0-1,0代表后面的是RTP包,1代表RTCP包
        例如,设置TCP隧道传输RTP:
             
SETUP rtsp://user:pwd@192.168.1.45:554/trackID=1 RTSP/1.0
             CSeq:2
             Transport:RTP/AVP/TCP;unicast;interleaved=0-1  
        后面两个[0x00][0x00]字节是RTP或RTCP包的长度 
----------------------------------------------------------------------------------
RTP包由RTP报头和RTP Payload(有效载荷)构成,结构:
        
[0x00][0x00][0x00][0x00]         V(2bit)P(1bit)X(1bit)CC(4bit)M(1bit)PT(7bit)sequence number(16bit)   
                                                        版本号、填充标记、扩展标记、CSRC计数器、有关有效载荷的标记、有效载荷类型(Payload                                                          Type)、序列号
        [0x00][0x00][0x00][0x00]         time stamp                                   时间戳
        [0x00][0x00][0x00][0x00]         synchronization source (SSRC) identifier     同步信源
        [0x00][0x00][0x00][0x00]         contributing source (CSRC) identifiers       特约信源
        ………………………………
        [Payload........................][Padding]

        V:2bit,版本号
        P:1bit,Padding标记,取值0-1,0表示Payload后面没有填充,1代表Payload后跟有1个或最多8个字节的填充,如果有填充,
             RTP包最后一个字节是填充计数器,表示包含自身在内的填充的字节数
        X:1bit,扩展标记
        CSRC:4bit,Contributing Source 
identifiers  Count,CSRC计数器  ,特约信源计数器
        M:标记,取值0-1,0代表不是一帧的结束,1代表一帧数据的结束,该值是由h264定义的NAL单元传输三个结构中
             的FU(
Fragmentation unit 分片单元 ) 结构的Header中E结束位决定的
        PT:7bit,有效载荷类型,Payload Type
        Seq:16bit,sequence number序列号,在前包的seq上自增1 

        如果没有扩展,RTP包除去前面12个字节的报头后,就是Payload,如果有Padding,还要减去后面的填充
 -------------------------------------------------------------------------------------
 RTP Payload的结构,是由h264协议定义的,可能会有三种情况:
        1.当NAL单元小
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值