0

    流媒体服务器之rtp协议,rtcp协议,rtsp协议,sdp协议,sip协议简析

    2023.07.02 | admin | 234次围观

    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协议的。

    流媒体服务器之rtp协议,rtcp协议,rtsp协议,sdp协议,sip协议简析

    RTCP的全称是实时传输控制协议(Real-time Control Protocol),rtp虽然可以传输音视频数据,但是却不能携带其他的信息,比如当前网络的丢包,延迟,抖动,这些都是保证音视频数据传输质量的重要信息。简单的说来就是rtp协议负责传输音视频数据,rtcp协议配套传输当前传输的控制信息。

    rtcp主要说的就是两个东西,sr报告和rr报告,sr报告叫发送报告,随着发出的rtp包发出,主要告诉接收端,当前的发送情况;rr报告叫做接收报告,在接收到一个数据包后发出,回传到发送端,主要告诉发送端当前的接收情况;当然还有其他的媒体描述信息,应用程序消息等。

    rtp另一个支持的特性就是端口复用,简单的说就是多路音视频传输使用一个端口接收,多路不同的媒体流使用一个叫做复用id的字段来区分,每一路的muxid不一样。

    3.rtsp协议

    我们还知道有个叫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模型rtsp协议服务器怎么知道往哪里法流,国内的gb28181标准就引用了sip协议作为其回话协商的标准协议。

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论