1.1 研究背景
近年来,随着流媒体技术的快速发展,网络视频流媒体业务得到越来越广泛的应用。网络视频点播和直播服务正在逐渐取代卫星电视,成为人们日常娱乐生活的一部分。目前,遍布世界各个角落的人们都在利用互联网观看电影和电视节目。许多互联网点播服务提供商,如,北美的Netflix、Hulu以及大陆的优酷和爱奇艺等,早已家喻户晓。同时,人们也在一些网站上,如Youtube,上传并发布自己制作的视频内容,成为网络视频的制作者。随着高速无线网络的进一步广泛部署,如4G、5G和WiFi等,视频流媒体服务将得到进一步发展。
目前,流媒体技术主要分为三类:UDP流媒体(UDP Streaming)、HTTP流媒体(HTTP Streaming)以及动态HTTP流媒体(adaptive HTTP streaming)[1]。虽然三类流媒体技术在实际应用中都得到了应用,但现在的主流系统多采用HTTP流媒体和动态HTTP流媒体。三类流媒体的共同特征在于,均采用客户端缓存(buffer)方式弥补服务器与客户端间可用带宽(available bandwidth)和端到端延迟(end-to-end delay)的变化。
在UDP流媒体中,服务器端以某一恒定速率(steady rate),将数毫米或数十毫米的视频片段(video chunk)封装到RTP或类RTP协议数据包中,并投递到UDP网络,服务器端视频发送速率与客户端视频消耗速率相吻合。在UDP流媒体中,传输速率由发送速率决定,通常只需要很小的客户端缓存就可以实现视频的连续播放,视频缓存时长通常小于1秒。除视频传输连接,客户端与服务器还会建立一个控制连接,如RTSP连接。当会话状态发生变化时,如暂停、恢复等等,客户端会通过控制连接发送相应的命令。
虽然UDP流媒体在一些开源系统以及一些商业流媒体解决方案中得到了应用,但UDP流媒体技术的三大缺陷阻碍了其进一步的发展与广泛应用。其一,由于服务器与客户端间可用带宽的不可预测性和时变性,当网络环境突然恶化时,其恒定速率传输方式可能会导致视频播放停顿,不能保证视频的连续播放。其二,UDP流媒体系统需要一个专用媒体控制服务器,如RTSP服务器,以处理客户端与服务器端的交互请求,追踪每一个正在进行的客户端会话状态,如客户端当前视频播放点(playout point)、视频正在播放还是停顿等等。显然,这会增加一个大型视频点播系统的整体部署成本,同时使得系统变得更加复杂。其三,多数防火墙被配置为阻塞UDP通信,导致UDP流媒体系统无法为此类用户提高视频服务。由于以上缺陷,流媒体技术逐渐转向采用HTTP的传输方式。
在HTTP流媒体系统中,视频内容像普通文件一样存储于HTTP服务器中,每个视频文件对应一个URL(Uniform Resource Locator)。用户想要观看某一视频时,客户端与服务器端建立一个TCP连接,并向服务器端发送包含相应URL的HTTP Get请求。随后,服务器端通过一个HTTP响应消息,向客户端传送该视频文件。通常,服务器端以尽可能快的速率发送视频,即TCP拥塞控制(congestion control)和流量控制(flow control)下所允许的最快速率。客服端接收视频,并存储在视频缓存中。当视频缓存大小超越预设的阈值,即初始化延迟,客户端应用程序开始播放视频,即每隔一定时间,从缓存中取出一帧,解码后,在屏幕显示该帧。通过缓存机制和预取机制(prefetching),HTTP流媒体技术成功解决TCP的拥塞控制和可靠传输机制对连续播放的阻碍。
一方面,HTTP/TCP的应用,使其可以轻松穿越防火墙和NAT(两者通常被配置为阻塞UDP通信,而允许多数HTTP通信)。另一方面,HTTP流媒体系统无需专用媒体控制服务器,大大减少了大型网络媒体分发系统的部署成本。由于以上诸多优势,许多视频流媒体应用系统都采用HTTP流媒体技术,如Youtube,优酷,爱奇艺等等。 基于多服务器的动态HTTP流媒体调度策略研究(2):http://www.youerw.com/jisuanji/lunwen_13660.html