HLS(HTTP Live Streaming) 是Apple在2009年發布的,可以通過普通的web服務器進行分發的新型流媒體協議。
蘋果官方對於視頻直播服務提出了 HLS 解決方案,該方案主要適用范圍在於:
- 使用 iPhone 、iPod touch、 iPad 以及 Apple TV 進行流媒體直播功能。(MAC 也能用)
- 不使用特殊的服務軟件進行流媒體直播。
- 需要通過加密和鑒定(authentication)的視頻點播服務。
HLS 的目的在於,讓用戶可以在蘋果設備(包括MAC OS X)上通過普通的網絡服務完成流媒體的播放。 HLS 同時支持流媒體的直播和點播服務,也支持不同 bit 速率的多個備用流(平時根據當前網速去自適應視頻的清晰度),這樣客戶端也好根據當前網絡的帶寬去只能調整當前使用的視頻流。安全方面,HLS 提供了通過 HTTPS 加密對媒體文件進行加密 並 對用戶進行驗證,允許視頻發布者去保護自己的網絡。
相對於常見的流媒體直播協議,例如RTMP協議、RTSP協議、MMS協議等,HLS直播最大的不同在於,直播客戶端獲取到的,並不是一個完整的數據流。HLS協議在服務器端將直播數據流存儲為連續的、很短時長的媒體文件(MPEG-TS格式),而客戶端則不斷的下載並播放這些小文件,因為服務器端總是會將最新的直播數據生成新的小文件,這樣客戶端只要不停的按順序播放從服務器獲取到的文件,就實現了直播。由此基本上可以認為,HLS是以點播的技術方式來實現直播,
HLS的這種技術特點,決定了它的延遲一般總是會高於普通的流媒體直播協議
。
HLS只請求基本的HTTP報文,與實時傳輸協議(RTP)不同,HLS可以穿過任何允許HTTP數據通過的防火牆或者代理服務器。它也很容易使用內容分發網絡來傳輸媒體流。
由於數據通過HTTP協議傳輸,所以完全不用考慮防火牆或者代理的問題,而且分段文件的時長很短,客戶端可以很快的選擇和切換碼率,以適應不同帶寬條件下的播放。
蘋果對於自家的 HLS 推廣也是采取了強硬措施,當你的直播內容持續十分鍾 或者每五分鍾內超過 5 MB 大小時,你的 APP 直播服務必須采用 HLS 架構,否則不允許上架。
服務支持
Adobe Flash Media Server:從4.5開始支持HLS、Protected HLS(PHLS)。5.0改名為Adobe Media Server
RealNetworks的 Helix Universal Server :2010年4月,版本15.0開始支持iPhone, iPad和iPod的HTTP直播、點播H.264/AAC內容,最新更新在2012年11月。
微軟的IIS Media Services:從4.0開始支持HLS。
Nginx RTMP Module:支持直播模式的HLS。
VLC Media Player:從2.0開始支持直播和點播HLS。
Wowza Media Server:2009年12月9日發布2.0,開始全面支持HLS。
VODOBOX Live Server:始支持HLS。
客戶端支持環境
Native支持
Android 3.0+iOS 3.0+
flash支持:
Adobe Flash Player從11.0開始支持HLS。
MediaElement.js(MIT)
Flowplayer(GPL ×)GrindPlayer(MIT)video-js-swf(Apache License 2.0)clappr(BSD IE10+ ×)
Windows 10 的 EDGE 瀏覽器開始支持HLS。