Advertisement

流媒体传输协议(rtp/rtcp/rtsp/rtmp/mms/hls)

阅读量:

主要的流媒体传输方案包括基于HTTP渐进式下载以及基于RTSP/RTP的实时多媒体传输两类。在流式传输方案中,通常通过HTTP/TCP传输控制数据,并采用RTP/UDP进行实时多媒体数据的传送。

1 实时传输协议RTP与RTCP

RTP(Real-time Transport Protocol)是一种专为Internet上的多媒体数据流传输设计的高级通信协议。该协议由两部分核心机制构成:第一部分负责传递具有实时特性的数据信息;第二部分即RTCP(RTP Control Protocol),负责评估服务质量并提供当前会话的相关信息。

基于UDP协议构建了RTP协议的基础。该协议规定了互联网上传输音频与视频的标准数据包格式。第一,在流媒体系统中,该协议通常与RTCP协同工作;第二,在视频会议及视频电话领域,则主要采用H.263或SIP作为补充。

RTP本身不具备按时发送机制或其他服务质量(QoS)的支持;这些特性是通过底层服务来实现的。它既不保证数据包的可靠传输也不阻止无序传输;这使得我们无法完全信任底层网络的安全性。然而,在这种情况下;接收端依然能够按顺序重组来自发送方的数据包;并且通过序列号字段还可以确定适当的位置以确保解码过程的有效性;例如:在视频解码中;由于采用了有序传送的方式;接收端无需逐个顺序解码即可正确重建视频流。

实时传输控制协议(Real-time Transport Control Protocol, RTCP)作为实时传输协议(RTP)的重要补充协议,在数据通信领域发挥着关键作用。该协议通过外部渠道对RTP的数据流进行管理,并定期向参与会话的各方发送控制信息以确保数据传输质量。具体而言,RTCP收集并分析媒体连接的相关统计信息包括:传输数据量、分组传输数量、分组丢失数量、时延抖动情况以及单向和双向网络延迟等关键指标。基于这些收集到的信息,网络应用程序能够动态优化服务质量设置例如限制流量或采用更高效的编码解码方案以降低占用带宽。值得注意的是尽管RTCP本身不具备数据加密功能但其设计架构并未妨碍相关安全机制的实现为此类安全需求提供了基础支持

2 实时流协议RTSP

该协议规范了一对多应用程序通过IP网络实现多媒体数据的有效传输。在体系结构上, RTSP处于RTP和RTCP之上位置,并采用TCP或RTP作为传输介质。相较而言,在传输内容方面HTTP负责HTML信息而RTP则传输多媒体内容;相较于此, HTTP由客户端发起请求后服务器作出回应;而在功能特性上, RTSP具有双向性特点,即双方均可发起请求以建立通信连接。

在功能设计上最为显著的区别在于:RTSP作为一种专门针对实时媒体传输需求而开发的网络通信协议,在允许多方进行实时数据交换的同时实现了高效的数据流动机制。该协议允许多向性实时数据进行高效传输,并且客户端能够向服务器发送多种类型的请求包括但不限于回放、快进以及倒退等多种操作。此外,在实现过程中,默认会选择基于RTP的技术架构以确保最佳的数据传送效果;其通信通道的选择范围则较为广泛不仅可以使用传统的TCP/UDP方案还可以通过组播UDP等方式提升网络资源利用率进而展现出良好的扩展性和灵活性特性。这种网络应用协议在功能设计上与传统的HTTP协议存在诸多相似之处

3 资源预定协议RSVP

RSVP可被视为一种叫做资源预订协议的技术。通过使用RSVP技术,在网络中预留一部分资源以便于后续使用的带宽。该技术能够在一定程度上保障流媒体传输过程中的QoS性能。这些协议分别运作于不同的层级:如图所示。

后台扣1,免费分享

4 实时消息传输协议RTMP

RTMP(Real Time Messaging Protocol)是由Adobe Systems公司旨在为Flash播放器和服务器之间的音频、视频和数据传输而开发的一种开放协议。它是一种专门用于音频、视频和数据传输的开放协议,并且有三种变种。

(1)工作在TCP之上的明文协议,使用端口1935;

(2)RTMPT封装在HTTP请求之中,可穿越防火墙;

(3)RTMPS类似RTMPT,但使用的是HTTPS连接。

RTMP视频播放的特点:

RTMP协议基于实时传输数据的技术实现,并未将文件缓存至客户端端;这种技术特性反映出下载RTMP协议视频对客户端的要求较高。

(2)视频流具有任意拖拽功能,在这种情况下,在任何时间节点都可以向服务器发起播放请求,并无需依赖视频的关键帧位置。相比之下,在基于HTTP的系统中进行视频操作时,则必须依赖于视频的关键帧信息以支持灵活的操作行为。

该RTMP协议支持发布与回放流媒体(简单来说就是将flv,f4v,mp4等文件上传至RTMP服务器后用户可以在客户端直接观看),并且还具备直播功能(即在录制视频的同时进行实时同步上传并即时观看)。

RTMP环境的架设:

由于该协议由adobe公司开发,最初的服务器端架构基于fms平台,而免费版本价格昂贵.随着开源red5项目的兴起,部署rtmp的成本得到了大幅降低,然而在稳定性上fms依然保持优势.值得注意的是, wowza同样提供付费版本,但其价格相对较为亲民.

5 微软媒体服务器协议MMS

Microsoft媒体服务器协议(Microsoft Media Server Protocol, MMS)是一种用于从WindowMedia服务器上获取流媒体数据(.asf文件)的协议。该协议可连接发布于WindowsMedia平台的单播流。通常作为标准连接方式被用来连接到WindowMedia单播服务。当观众在WindowMediaPlayer中输入网络地址直接连接内容而非通过快捷方式时 必须依赖于MMS协议来传递数据。根据测试结果 MMS默认端口设置为1755。

6 HLS

HTTP Live Streaming(HLS)是由苹果公司开发的一种基于HTTP的技术方案,在流媒体传输领域具有重要地位。该协议不仅支持实时直播与按需播放功能,并且在移动设备应用中得到了广泛的应用场景。其中,HLS分段是一种细粒度的数据块传输方式,相较于传统的方式具有更短的数据块长度,从而提升了传输效率和用户体验。其核心技术在于精确划分媒体文件的小数据块,这一过程对于保障视频质量至关重要,目前已有多个开源库实现了这一功能的支持

相较于传统流媒体直播协议而言,HLS直播的核心特征体现在客户端所接收的数据并非完整的实时流。在服务器端,HLS协议采用 MPEG-TS 格式将原始数据分割为时长较短且连续的小块文件进行存储。而客户端则持续下载并依次播放这些分段文件,并因服务器会定期生成新的分段文件以更新内容而得以实现持续的实时播放过程。通过这种方式完成直播。值得注意的是这一技术特点导致其在延迟性能上往往高于传统流媒体方案

全部评论 (0)

还没有任何评论哟~