librtmp分析(接收数据包处理)

RTMP详细分析(三次握手)
RTMP详细分析(Message 消息,Chunk分块)
librtmp分析(发送数据包处理)

rtmp协议中的message的接收涉及有message 组合多个chunk、相对时间戳计算绝对值。
分析一下librtmp库中的int RTMP_ReadPacket(RTMP *r, RTMPPacket *packet)函数可以更好的理解。

1、刚开始接收一个字节的判断Basic Header占用多少个字节,获取fmt、csid。

在这里插入图片描述

2、申请用来保存上一次Packet的Packet*空间和保存上次时间戳空间

在这里插入图片描述

3、判断这次Packet是否是RTMP_LARGE_HEADER_SIZE,就知道是否是绝对值。否则将上次的Packet复制过来,就是同一个消息了。

在这里插入图片描述

4、读取message header中的字段。

在这里插入图片描述

5、读扩展时间戳

在这里插入图片描述

6、申请消息体的空间

在这里插入图片描述

7、读取消息体

在这里插入图片描述

8、备份这次Packet,和判断这次Packet消息是否完整了(一个或多个Packet组成)计算时间戳。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值