使用Spydroid(libstreaming)作为rtsp server

实现android视频直播的库,主要实现的功能有RTSP协议、H263/H264编码、RTP/RTCP协议打包等


1、分析net.majorkernelpanic.streaming.rtp:

 

1)H264Packetizer

H264Packetizer负责读取h264的视频帧,然后打包封装为rtp包。Rtp头是在RtpSocket初始化时默认生成了的。

当读取到NALUtype 5时, 会先将NALU type 7 (SPS) and 8 (PPS)转化为STAP-ANAL (NAL type 24)封为一个RTP包发送出去,然后再打包发送NALU type 5。

打包时,如果包大小小于MTU,默认使用Single NAL unit的方式打包为Rtp包,包时去除 "00 00 01" 或 "00 00 0001" 的开始码, 把其他数据封包的 RTP 包即可。

如果包大小大于MTU,则会利用FU-A方式分包发送。

H264Packetizer和RtpSocket同时会计算好各个包的sequencenumber和timestamp。


图H264中的NALU类型定义


图 Rtp中的NALU类型定义

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值