流媒体服务器之rtp协议,rtcp协议,rtsp协议,sdp协议,sip协议简析
来源:互联网 发布:小蚁 知乎 编辑:程序博客网 时间:2024/05/21 17:15
0.前言
流媒体服务器做音视频媒体传输主要就两件事:媒体回话协商,媒体数据传输;下面这几种协议就围绕着这两个需求而产生。
1.rtp协议
rtp的全称是实时传输协议RTP(Real-time Transport Protocol),是应用层的一个协议,主要用来做音视频数据传输,一般基于udp协议之上,也支持组播,当然基于tcp也是可以的。
用rtp传输音视频数据的一般做法是将音视频数据前面加上rtp头封装成一个个的rtp包,接收端根据接收到的数据在组成按帧标记组成音视频数据,里面可以是h264或者h265的裸码流打包,也是是ps格式或者ts格式封装的数据包,也可以是具有私有头的第三方封包。
rtp主要说的就是rtp头,里面比较重要的字段就是sn,一般在一帧数据被拆成多个rtp包,sn就是拆包的顺序,从1-32767循环叠加,在一个帧的最后一包会被打上mark标记,以此来区分一帧与另外一帧,用于接收方组成一帧数据包,多路不同的音视频媒体流使用ssrc源标记区分。
2.rtcp协议
一般提到rtp总会提到rtcp协议,它们是配套的一套协议,国内交通部也有的只要rtp协议,不要rtcp协议的。
RTCP的全称是实时传输控制协议(Real-time Control Protocol),rtp虽然可以传输音视频数据,但是却不能携带其他的信息,比如当前网络的丢包,延迟,抖动,这些都是保证音视频数据传输质量的重要信息。简单的说来就是rtp协议负责传输音视频数据,rtcp协议配套传输当前传输的控制信息。
rtcp主要说的就是两个东西,sr报告和rr报告,sr报告叫发送报告,随着发出的rtp包发出,主要告诉接收端,当前的发送情况;rr报告叫做接收报告,在接收到一个数据包后发出,回传到发送端,主要告诉发送端当前的接收情况;当然还有其他的媒体描述信息,应用程序消息等。
rtp另一个支持的特性就是端口复用,简单的说就是多路音视频传输使用一个端口接收,多路不同的媒体流使用一个叫做复用id的字段来区分,每一路的muxid不一样。
3.rtsp协议
我们还知道有个叫rtsp的东西,rtsp全称叫实时流协议,RTSP(Real Time Streaming Protocol),rtp主要是做音视频媒体数据的传输,rtcp主要做传输音视频媒体数据的控制信息,rtsp则是通过会话协商传输的音视频媒体信息,比如协商两边的发送端口,接收端口,音视频码流信息,组帧sdp等。
4.sdp协议
好吧,又来了一个sdp协议,准确的说它不是一个协议,而是一个描述信息的格式,作为其他协议协商信息的载体,比如sip,rtsp,私有协商协议等。特别是sip协议的offer-answer模型,完全通过sdp作为回话信息的载体。sdp协议的全称是回话描述协议,SDP(Session Description Protocol),从字面意思看就知道是描述媒体回话协商的,是一个如http一样的文本协议,回话交互时通过传递一个叫sdp的文本,互相协商收发两端的媒体信息。
5.sip协议
上面又提到了sip协议,这里顺带说一下,sip协议的全称是会话初始协议(Session Initiation Protocol)是一种信令协议,最早是用于ip电话交互的,也是一种回话协商协议,不过提供更好的灵活性与交互性,简单的交互就是invite,200ok,ack三步交互,最重要的就是sip的offer-answer模型,国内的gb28181标准就引用了sip协议作为其回话协商的标准协议。
- 流媒体服务器之rtp协议,rtcp协议,rtsp协议,sdp协议,sip协议简析
- 协议——RTP/RTCP/RTSP/SIP/SDP
- SDP、RTSP、RTP、RTCP协议介绍
- RTP/RTCP/RTSP协议
- RTP/RTCP/RTSP协议
- RTP/RTCP/RTSP协议
- 流媒体协议(RTP,RTCP,RTSP)笔记
- RTP/RTCP/RTSP/RTVP等流媒体协议
- 流媒体协议rtp、rtsp和rtcp
- 网络视频传输协议--RTP/RTCP/RTSP/SIP/SDP 之间关系
- RTP/RTCP/RTSP协议初探
- RTP/RTCP/RTSP协议初探
- RTP/RTSP/RTCP 协议详解
- RTP/RTSP/RTCP 协议详解
- RTSP/RTP/RTCP协议总结
- RTP, RTCP, RTSP 协议介绍
- RTP/RTSP/RTCP 协议详解
- RTP学习(一):流媒体协议(RTP/RTCP/RTSP)
- 正则表达式-实践-初稿
- 理解javascript中的回调函数(callback)
- css 图片设置为圆
- traceroute命令用法
- vue中出现 There are multiple modules with names that only differ in casing的问题
- 流媒体服务器之rtp协议,rtcp协议,rtsp协议,sdp协议,sip协议简析
- scp拷贝文件夹
- 名额将满丨顶级大咖零距离授课,百余位高级产品经理共同学习产品总监必备能力
- css基础
- 2017年各大电商平台双11回顾:值得借鉴和改进的运营手段
- 链表问题---合并两个有序的单链表
- 如何拥有「把握本质」的强大能力?
- 深入浅出K-Means算法
- C# 使用System.IO.File.Create