1. RTSP(Real-Time Streaming Protocol):实时流协议,它的出现是由于流媒体服务器的引入而出现的。
如上图所示,上图反映出的是常用地观看视频的过程。在浏览器中输入视频的url,那么会有一个http请求,网络web服务器会返回一个文件相应,这个文件相应包含了媒体服务器的信息。浏览器再把这个信息交给媒体播放器,媒体播放器根据媒体服务器的信息发送RTSP协议的媒体请求,进而双方明白了请求的内容,媒体服务器就发送视频给播放器,就可以看到视频了。
RTSP协议:媒体播放器和媒体流服务器用来交换playback控制信息的协议。它并不具备音频/视频的压缩模式,以及音频/视频的封装(这是由RTP负责),它是通过544端口发送视频的控制信息,让媒体服务器知道什么时候该做什么事情。
RTSP命令为用户提供类似于本地播放的控制功能:
命令 | 流媒体服务器的动作 |
---|---|
SETUP | 在播放器和服务器之间建立一个逻辑通道 |
DESCRIBE | 列出流媒体参数 |
PLAY | 开始给客户机发送数据 |
PAUSE | 服务器暂停发送数据 |
RECORD | 客户机开始接收数据 |
2.实时传输协议RTP
RTP协议用来传输流媒体数据的协议,可支持PCM、GSM、MP3等公共语音标准,可支持MPEG、H.263等公共视频标准。
它是真正用来规定不同种类的视频语音的标准数据包格式,建立在UDP上,广泛应用于流媒体相关的通讯和娱乐,包括电话、视频会议、电视和基于网络的一键通业务(类似对讲机的通话)。
但是RTP协议不提供确保数据传输时间的任何机制,也不提供任何QoS保障。也就是这个协议不能提供有效的安全保障,需要用户自己有足够的纠错能力。
3. RTCP协议(实时传输控制协议)
它是RTP的姊妹协议,不携带任何音频/视频数据,用来向同一个RTP会话的所有成员报告发送/接收的统计信息。也就是说同一个RTP会话的用户和发送端用RTCP向所有成员报告接收情况的协议,服务器端通过RTCP来进行掌握用户的接收情况。协议没有规定应用程序如何使用这些反馈信息,而是由应用程序开发者的使用。接收端在一个RTCP包中报告每个流的状况:RTP流的丢失比例,RTP流的最后序号以及RTP流中前后两个包的到达间隔;发送端针对发送的每个流报告最近产生的RTP包的时间戳,流出的报文数等一些列信息。如下所示: