HTTP Adaptive Streaming简介
HTTP Adaptive Streaming是指基于HTTP协议的自适应传输流技术。流媒体技术是为了解决音视频多媒体文件在普通非流式传输方案中文件必须下载完成之后才能播放的问题。为了实现边下载边播放的问题,即直播技术。
流式传输方式首先将音视频多媒体文件切分成若干个小块,然后服务器以小块为单位进行分发,客户端播放器只需要去请求下载资源,即能实现边下载边播放的流媒体传输方式。
目前主流的HTTP Adaptive Streaming有HLS,Smooth Streaming,DASH。下面主要介绍Smooth Streaming传输协议,其他的协议会在其他博客中讲解。
一个HAS流媒体链接中都是由多个码率的流组成,客户端通过不同的网络状况选择适合的码率进行播放,可使用户得到做好的视频感受。
现如今的大部分多媒体网页上使用的传输方式有3种:传统流媒体、渐进式下载和自适应流媒体。传统传输方式中,只要服务器端与客户端相连,数据便会从服务器端源源不断的传给客户端。渐进式下载在很多播放器中都支持,是从网页服务器下载数据文件,网页服务器会保持数据流直到下载完成。自适应流媒体则是基于渐进式下载,只不过是小的渐进下载,这样可以节约资源。
Smooth Streaming相关概述可以在官网上找到:https://msdn.microsoft.com/en-us/library/ee673436(v=VS.90).aspx
Smooth Streaming的基本原理是一个长时间的完整影片切割成一个个小片段chunk,每一个chunk持续2-4s,且每个chunk首帧为I frame。每一个chunk,服务器端会存储一个*.ismc文件,该文件中包含对这段chunk的所有描述,包括码流个数,分辨率,时长等。其传输协议如下图:
chunk文件格式
客户端首先会向服务器端发送manifest request,这个请求中包含的内容有整个文件的link和所有的fragment信息。然后客户端会按照播放需求,向服务器端请求fragment数据。这样整个播放模式都是由客户端驱动。而对于直播流,播放过程会多加一个步骤,由于服务器端在不断的更新manifest信息,所以客户端需要每隔一段时间向服务器端请求manifest,以保持最新的播放列表。
Smooth Streaming的优点:
1)Smooth Streaming是一种自适应流式处理技术,通过动态监测本地宽带状态,实时的切换视频质量来优化播放效果,这样可以节约宽带资源。
2)可流畅清晰的播放
3)可同时支持on-demand和live两种模式
4)服务器端以mp4格式来存放chunk片段
5)由于是微软提供的播放协议,具有全方面技术支持
缺点:
有微软的限制,且不免费。