流媒体传输协议

主流的三种流媒体协议

传统流媒体传输协议:RTSP
RTSP协议既可以基于UDP传输也可以基于TCP传输,是纯粹的传输控制协议,它本身与它负载的媒体数据不相关,RTSP协议需要自定义客户端向服务器发送RTSP命令。其视频数据由RTP传输,视频质量由RTCP控制,视频控制(如播放、暂停等)由RTSP提供。具体RTSP协议格式可以参照下篇文章。
优点:1.延迟低,一般都能够做到500ms
          2.带宽好,时效率高
          3.倍速播放,主要是回放的时候提供的功能
          4.控制精准,任意选择播放点
缺点:1.服务端实现复杂
          2.代理服务器弱:数量少,优化少
          3.无路由器防火墙穿透
          4.管流分离:需要1-3个通道
那么,为什么rtsp延迟会比rtmp低呢?因为,它是精确控制的,可以跳出这个以gop组为单位的控制。

基于HTTP的流媒体自适应传输协议
RTMP:1、必须采用Flash服务器FMS或RED5     2、FMS文件点播,服务器将flv或f4v文件转化为RTMP流或HTTP流,客户获取HTTP流从而提取相应的FLV或F4V文件片段进行播放。3、FMS实况直播:设备端将文件转换为F4V格式,通过RTMP流上传到服务器,服务器转发RTMP流到客户端,客户端获取RTMP流,提取片段进行播放。
RTMP协议是一个互联网TCP/IP五层体系结构中应用层的协议。RTMP协议中基本的数据单元称为消息(Message)。当RTMP协议在互联网中传输数据的时候,消息会被拆分成更小的单元,称为消息块(Chunk)。

1 消息
       消息是RTMP协议中基本的数据单元。不同种类的消息包含不同的Message Type ID,代表不同的功能。RTMP协议中一共规定了十多种消息类型,分别发挥着不同的作用。例如,Message Type ID在1-7的消息用于协议控制,这些消息一般是RTMP协议自身管理要使用的消息,用户一般情况下无需操作其中的数据。Message Type ID为8,9的消息分别用于传输音频和视频数据。Message Type ID为15-20的消息用于发送AMF编码的命令,负责用户与服务器之间的交互,比如播放,暂停等等。消息首部(Message Header)有四部分组成:标志消息类型的Message Type ID,标志消息长度的Payload Length,标识时间戳的Timestamp,标识消息所属媒体流的Stream ID。消息的报文结构如图3所示。

2 消息块
       在网络上传输数据时,消息需要被拆分成较小的数据块,才适合在相应的网络环境上传输。RTMP协议中规定,消息在网络上传输时被拆分成消息块(Chunk)。消息块首部(Chunk Header)有三部分组成:用于标识本块的Chunk Basic Header,用于标识本块负载所属消息的Chunk Message Header,以及当时间戳溢出时才出现的Extended Timestamp。消息块的报文结构如图4所示。

3 消息分块
       在消息被分割成几个消息块的过程中,消息负载部分(Message Body)被分割成大小固定的数据块(默认是128字节,最后一个数据块可以小于该固定长度),并在其首部加上消息块首部(Chunk Header),就组成了相应的消息块。消息分块过程如图5所示,一个大小为307字节的消息被分割成128字节的消息块(除了最后一个)。

RTMP传输媒体数据的过程中,发送端首先把媒体数据封装成消息,然后把消息分割成消息块,最后将分割后的消息块通过TCP协议发送出去。接收端在通过TCP协议收到数据后,首先把消息块重新组合成消息,然后通过对消息进行解封装处理就可以恢复出媒体数据。
优点:1.实时性高:一般能做到3秒内 
           2.支持加密:rtmpe和rtmps为加密协议 
           3.稳定性高:在PC平台上flash播放的最稳定方式是rtmp,如果做CDN或者大中型集群分发,选择稳定性高的协议一定是必要的 
           4.一般主流编码器都支持该协议
缺点:1.协议复杂:开发者写起来累,效率也不行
          2.Cache麻烦:流协议做缓存不方便


HLS:1、HLS主要基于TS视频流或文件进行封装传输,类似一个容器封装MPEG,TS传输格式(TS是广播电视行业中采用的节目传输格式)2、当前HLS视频编解码采用MPEG-4或者264,音频采用AAC。
          分发原理:数据经过编码器,流分段器,文件分段器处理后为ts(媒体数据)以及m3u8文件(媒体数据索引)存在于服务器之上。客户端按照m3u8进行索引下载相应的ts文件进行播放。如有个m3u8文件中内容为:

则会依次播放上述的.ts文件。 
HLS的技术特点:

优点:1.性能好:和http一样  
          2.穿墙:和http一样   
          3.原生支持很好:iOS上支持完美,Android上支持差些。PC/flash上现在也有各种as插件支持HLS。
缺点:1.实时性差:与ts切片长度有关,大约3个切片长度时间的延迟,基本上HLS的延迟在10秒以上。
          2. 文件碎片:若分发HLS,码流低,切片较小时,会导致太多的文件碎片

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值