CDN服务器由于实现的业务能力相近,我们再把HTTP Streaming与RTSP/RTP做一比较:HTTP Streaming基于TCP协议来传输,除了可靠性更高,也可以直接利用TCP的流控机制来适应带宽的变化;HTTP Streaming可以将播放过的内容保存在客户端,除非版权控制或策略要求不能在客户端保存;HTTP Streaming可以直接利用80端口来传输流媒体,CDN服务器在穿越只允许Web访问(80端口)的防火墙时具有明显优势;HTTP Streaming流化技术采用标准的HTTP协议来传输流媒体信息,只需要标准的HTTP服务器即可支撑,便于广泛推广,如果开展CDN业务,需要了解CDN协议。
目前,HTTP Streaming 几大主流阵营包括:3GPP Adaptive HTTP Streaming、Microsoft IIS Smooth Streaming、Adobe HTTP Dynamic Streaming以及Apple HTTP Live Streaming。下面将分别介绍这些流化技术的基本原理。
从概念上讲,HTTP Live Streaming流化技术主要涉及三个部分:服务器组件、分发组件和客户端软件。
CDN服务器组件主要负责从原始的音视频设备捕捉相应的音视频流,并对这些输入的媒体流进行编码,然后进行封装和分片,最后交付给分发组件来进行传送;分发组件主要负责接收客户端发送的请求,然后将封装好的流媒体分片文件连同相关的索引文件一起发送给客户端。对于没有采用CDN服务的源服务器,标准的Web服务器就是一个分发组件,而对于大型的视频网站或者类似的大规模应用平台,分发组件还应包括支持RTMP协议的CDN;客户端软件负责确定应该请求的具体媒体流,下载相关资源,并在下载后通过拼接分片将流媒体重新展现给用户。
在服务器组件中,硬件编码器捕获音视频数据后,将其编码成H.264的格式,然后通过流分割器软件进行封装和分片,以MPEG-2传送流(TS流)的格式输出。分发组件的Web服务器或CDN中的Cache设备就是使用这些分片直接为客户端软件提供服务。除了为客户端提供分片文件,流分割器在分片后会产生一个索引文件来索引这些分片。索引文件的URL是Web服务器直接对外发布的,用户可以在登录网页时通过点击来直接获取。客户端软件在读取索引信息后,根据文件中的分片列表按顺序向服务器请求相关的分片文件,并在本地拼接后实现流畅播放。