CDN技术之--流媒体CDN系统的组成
流媒体业务是一种对实时性、连续性、时序性要求非常高的业务,无论从带宽消耗上还是质量保障上来说,
对best-effort的IP网络都是一个不小的冲击
–高带宽要求
–高QoS要求
–组播、广播要求(目前IP网络无法实现端到端的组播业务)
播放一个视频分为以下四个步骤
–Access
–Demux(音视频分离)
–Decode(解码解压缩)
–Output
RTP、RTCP、RTSP、RTMP的关系:
RTSP协议用来实现远程播放控制,RTP用来提供时间信息和实现流同步,
RTCP协助RTP完成传输质量控制<=(播放控制),
=>(传输控制)RTMP和HTTP streaming则是将流同步、播放控制、质量控制集成起来的企业自有流媒体传送协议
RTMP是adobe的传输协议。
RTMP的基本通信单元:消息块(chunk)和消息(message)
RTMP协议架构在TCP层之上,但RTMP消息并不是直接封装在TCP中,而是通过一个被称为消息块的封装单元进行传输。
消息在网络上发送之前往往需要分割成多个较小的部分,这样较小的部分就是消息块,属于不同消息流的消息块可以在网络上交叉发送。
RTSP/RTP和HTTP streaming是目前应用最广泛的流化协议,
目前电信运营商在IPTV(特殊通道的基于IP的流媒体播放)的流化上主要以RTSP/RTP技术为主,
而互联网视频网站(点播/直播)则多倾向于使用HTTP streaming的流化技术。
HTTP streaming前身是progressive download(渐进式下载:边下载边播放,直到下载完)。
HTTP streaming首先会将视频数据(包括直播的视频流和点播的视频文件)在服务器上进行编码,
然后将编码后的数据进行更细粒度的分片,再把每个分片通过 HTTP协议传输到客户端。
HTTP streaming的客户端需要对视频文件的每个分片都发出一个HTTP请求,
这样,在视频播放速度低于下载速度的情况下,
客户端可以灵活控制HTTP请求的发出速度,从而保证用户在中途退出时不会出现下载浪费。
另外,因为采用分片的特点,HTTP streaming还可以实现媒体播放过程中的码率切换(码率自适应),
结合网络带宽资源,为用户提供更好的体验。
HTTP streaming
支持点播、直播
可对分片文件加密,保证数字版权
因为分片传输,故支持码率自适应
Progressive download
仅支持点播
直接把媒体文件分割成多个小文件分片,无法保障版权所有
只支持固定码率
HTTP streaming
基于TCP,更高可靠性,也可以直接利用TCP的流控机制来适应带宽的变化
可将播放过的内容保存在客户端
使用80端口,能穿越防火墙
采用标准的HTTP协议来传输,只需要标准的HTTP服务器支撑
RTSP/RTP
基于UDP
不能保存在客户端
使用特殊端口
需要特殊的流媒体服务器
HTTP streaming的几个主流阵营:
–3GPP adaptive HTTP Streaming
–Microsoft IIS Smooth Streaming
-Adobe HTTP Dynamic Streaming (HDS)
–Apple HTTP Live Streaming (HLS)
HLS流化技术主要分三个部分:
服务器组件、分发组件和客户端软件
–服务器组件主要负责从原始的音视频设备捕捉相应的音视频流,并对这些输入的媒体流进行编码,
然后进行封装和分片,最后交付给分发组件来进行传送;
–分发组件主要负责接收客户端发送的请求,然后将封装的流媒体分片文件连同相关的索引文件一起发送给客户端。
对于没有采用CDN服务的源服务器,标准的 Web服务器就是一个分发组件,
而对于大型的视频网站或者类似的大规模应用平台,分发组件还应包括支持RTMP协议的CDN;
–客户端软件负责确定应该请求的具体媒体流,下载相关资源,并在下载后通过拼接分片将流媒体重新展现给用户
HLS音视频流或流媒体文件在经过编码、封装和分片后,变成多个以.ts结尾的分片文件。
流分割器产生的索引文件是以.M3U8为后缀的,用户可以直接通过Web访问来获取
分发组件负责将分片文件和索引文件通过HTTP的方式发送给客户端,
无须对现有的Web服务器和Cache设备进行额外的扩展、配置和升级
客户端组件根据URL来获取这个视频的索引文件。
今天就讲到这里。怎么选择还是看大家自己。现在国内拥有高防cdn的厂家有很多。比如百度云http://www.baidunyun.com。京东云http://www.jingdongyun.com。剑盾云http://www.jiandun.cn各位结合自己性价比进行选择。大家有什么不懂的或者不明白的可以私我或者评论区留言。我看见后会第一时间联系大家