HLS-Demo - IOS 視屏直播樣例

jopen 8年前發布 | 93K 次閱讀 HLS-Demo iOS開發 移動開發

HLS-Demo

IOS 視屏直播樣例

主要展示 HLS 詳細流程,用于iOS視屏直播。

HTTP Live Streaming (HLS)

蘋果官方對于視頻直播服務提出了 HLS 解決方案,該方案主要適用范圍在于:

  • 使用 iPhone 、iPod touch、 iPad 以及 Apple TV 進行流媒體直播功能。(MAC 也能用)
  • 不使用特殊的服務軟件進行流媒體直播。
  • 需要通過加密和鑒定(authentication)的視頻點播服務。

首先,需要大家先對 HLS 的概念進行預覽。

HLS 的目的在于,讓用戶可以在蘋果設備(包括MAC OS X)上通過普通的網絡服務完成流媒體的播放。 HLS 同時支持流媒體的實時廣播點播服務。同時也支持不同 bit 速率的多個備用流(平時根據當前網速去自適應視頻的清晰度),這樣客戶端也好根據當前網絡的帶寬去只能調整當前使用的視頻流。安全方面,HLS 提供了通過 HTTPS 加密對媒體文件進行加密 并 對用戶進行驗證,允許視頻發布者去保護自己的網絡。

HLS架構

HLS 是蘋果公司QuickTime X和iPhone軟件系統的一部分。它的工作原理是把整個流分成一個個小的基于HTTP的文件來下載,每次只下載一些。當媒體流正在播放時,客戶端可以選擇從許多不同的備用源中以不同的速率下載同樣的資源,允許流媒體會話適應不同的數據速率。在開始一個流媒體會話時,客戶端會下載一個包含元數據的extended M3U (m3u8) playlist文件,用于尋找可用的媒體流。

HLS只請求基本的HTTP報文,與實時傳輸協議(RTP)不同,HLS可以穿過任何允許HTTP數據通過的防火墻或者代理服務器。它也很容易使用內容分發網絡來傳輸媒體流。

蘋果對于自家的 HLS 推廣也是采取了強硬措施,當你的直播內容持續十分鐘 或者每五分鐘內超過 5 MB 大小時,你的 APP 直播服務必須采用 HLS 架構,否則不允許上架。(詳情

相關服務支持環境 (重要組成)

  • Adobe Flash Media Server:從4.5開始支持HLS、Protected HLS(PHLS)。5.0改名為Adobe Media Server
  • Flussonic Media Server:2009年1月21日,版本3.0開始支持VOD、HLS、時移等。
  • 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。
  • Nimber Streamer
  • Unified Streaming Platform
  • VLC Media Player:從2.0開始支持直播和點播HLS。
  • Wowza Media Server:2009年12月9日發布2.0,開始全面支持HLS。
  • VODOBOX Live Server:始支持HLS。
  • Gstreamill是一個支持hls輸出的,基于gstreamer的實時編碼器。

相關客戶端支持環境

  • iOS從3.0開始成為標準功能。
  • Adobe Flash Player從11.0開始支持HLS。
  • Google的Android自Honeycomb(3.0)開始支持HLS。
  • VODOBOX HLS Player (Android,iOS, Adobe Flash Player)
  • JW Player (Adobe Flash player)
  • Windows 10 的 EDGE 瀏覽器開始支持HLS。

參考文獻:

蘋果官方文檔

維基百科

http://my.oschina.net/CgShare/blog/302303

http://blog.csdn.net/woaifen3344/article/details/40837803

項目地址: https://github.com/yangchao0033/HLS-Demo

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!