1. 程式人生 > >基於HTTP的直播點播HLS

基於HTTP的直播點播HLS

文件 layer 當前 版本 傳輸協議 自己的 火墻 完全 蘋果官方

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。

基於HTTP的直播點播HLS