RTSP教程

概要

音视频的传输方式有两种,一种是基于TCP,一种是基于UDP。基于TCP由于有三次握手的过程,延迟较大。基于UDP由于可能会丢包,需要自己控制传输质量。RTSP是一种基于字符串的协议,主要用于信令,本身不传输音视频,音视频的传输要用到RTP协议,传输的质量主要由RTCP协议保证。

基本流程

  • 创建socket server等待rtsp client的连接
  • rtsp client和rtsp server信令交互,其中重要的信令如下:
    • client告知server自己接收RTP包和RTCP包的端口号
    • rtsp client向server 请求sdp,用于rtsp server告知client都支持哪些音视频的编码。
    • 收到PLAY信令之后,开始connect rtsp client的指定端口,然后发送一包一包的视音频数据

需要注意的点

  • RTSP包中的\r\n非常重要,如果少了一个\r\n,ffplay会解析失败
  • RTP包中的sequence number非常重要,如果这个多了,ffplay会合并包失败
  • RTP中的timestamp如果错误,会导致播放卡顿,效果像幻灯片
  • 要注意网络字节序
  • 主要参考协议有rfc3550和rfc6184

参考

个人实现的librtsp,https://github.com/felix-001/librtsp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值