HLS與RTMP在直播場景下的優劣分析以及架構分析
HLS
HTTP Live Streaming(縮寫是HLS)是一個由蘋果公司提出的基於HTTP的流媒體網路傳輸協議。是蘋果公司QuickTime X和iPhone軟體系統的一部分。它的工作原理是把整個流分成一個個小的基於HTTP的檔案來下載,每次只下載一些。當媒體流正在播放時,客戶端可以選擇從許多不同的備用源中以不同的速率下載同樣的資源,允許流媒體會話適應不同的資料速率。在開始一個流媒體會話時,客戶端會下載一個包含後設資料的extended M3U (m3u8)playlist檔案,用於尋找可用的媒體流。
HLS協議規定
l 視訊的封裝格式是TS。
l 視訊的編碼格式為H264,音訊編碼格式為MP3、AAC或者AC-3。
l 除了TS視訊檔案本身,還定義了用來控制播放的m3u8檔案(文字檔案)。
#圖片Stub
RTMP
RMP協議是Real Time Message Protocol(實時資訊傳輸協議)的縮寫,它是由Adobe公司提出的一種應用層的協議,用來解決多媒體資料傳輸流的多路複用(Multiplexing)和分包(packetizing)的問題。RTMP協議是應用層協議,是要靠底層可靠的傳輸層協議(通常是TCP)來保證資訊傳輸的可靠性的。在基於傳輸層協議的連結建立完成後,RTMP協議也要客戶端和伺服器通過“握手”來建立基於傳輸層連結之上的RTMP Connection連結,在Connection連結上會傳輸一些控制資訊,如SetChunkSize,SetACKWindowSize。
HLS協議的優勢(相比RTMP協議)
這個協議的產生是為了解決RTMP協議存在的一些問題。 比如RTMP協議不使用標準的HTTP介面傳輸資料,所以在一些特殊的網路環境下可能被防火牆遮蔽掉。但是HLS由於使用的HTTP協議傳輸資料,不會遇到被防火牆遮蔽的情況(該不會有防火牆連80介面都不放過吧)。
另外於負載,RTMP是一種有狀態協議,很難對視訊伺服器進行平滑擴充套件,因為需要為每一個播放視訊流的客戶端維護狀態。而HLS基於無狀態協議(HTTP),客戶端只是按照順序使用下載儲存在伺服器的普通TS檔案,做負責均衡如同普通的HTTP檔案伺服器的負載均衡一樣簡單。
另外HLS協議本身實現了位元速率自適應,不同頻寬的裝置可以自動切換到最適合自己位元速率的視訊播放。其實HLS最大的優勢就是蘋果。蘋果在自家的IOS裝置上只提供對HLS的原生支援,並且放棄了flash。Android也原生支援了HLS。這樣一來flv,rtmp這些Adobe的視訊方案要想在移動裝置上播放需要額外下點功夫。當然flash對移動裝置造成很大的效能壓力確實也是自身的問題。
HLS協議的劣勢(相比RTMP協議)
HLS也有一些無法跨越的坑,比如採用HLS協議直播的視訊延遲時間無法下到10秒以下,而RTMP協議的延遲最低可以到3、4秒左右。所以說對直播延遲比較敏感的服務請慎用HLS。
800LI VMS 直播架構
800Li直播推拉流協議
800Li視訊編解碼協議
相關文章
- 直播影片美顏SDK在不同場景下的表現效果分析
- 全方位分析購物直播系統的優劣
- Flutter 在流式場景下的架構設計與應用Flutter架構
- 微服務架構學習與思考(05):微服務架構適用場景分析微服務架構
- 配置Nginx以支援RTMP直播及HLS流播放Nginx
- Apache Pulsar 與 Apache Kafka 在金融場景下的效能對比分析ApacheKafka
- [SRS流媒體]RTMP/HLS 直播伺服器simple-rtmp-server安裝伺服器Server
- Python語言的優劣分析Python
- 利用nginx搭建RTMP視訊點播、直播、HLS伺服器Nginx伺服器
- 直播協議詳解 RTMP、HLS、HTTP-FLV、WebRTC、RTSP協議HTTPWeb
- LNMP架構下的程式模型分析LNMP架構模型
- 安卓之同步機制優劣分析安卓
- 酒店線上營銷模式優劣分析模式
- Redis叢集案例與場景分析Redis
- 關於Redis資料型別以及應用場景的分析與總結Redis資料型別
- 架構設計之源:設計模式的場景分析(1)Publish-Subscribe架構設計模式
- RocketMQ 在多 IDC 場景以及多隔離區場景下的實踐MQ
- JavaScript建立閉包的兩種方式的優劣與區別分析JavaScript
- 【實操】小程式的應用場景分析——線下場景應用
- 【架構分析】MESA (EGL/GLES)架構分析架構
- JVM之調優及常見場景分析JVM
- 深度分析Redis分散式鎖在電商超賣業務場景下的使用Redis分散式
- 不走索引場景的一次分析優化索引優化
- MongoDB、Hbase、Redis等NoSQL優劣勢、應用場景MongoDBRedisSQL
- Oracle多租戶架構優勢分析Oracle架構
- ThreadLocal的使用場景分析thread
- 淺談線下場景中的資料分析思路
- hbase 的架構分析架構
- HLS直播協議在B站的實踐協議
- RunnerGo相較於Jmeter優劣勢分析GoJMeter
- elastic-job-lite 入門以及架構原理分析AST架構
- SaaS架構:流程架構分析架構
- ClickHouse在自助行為分析場景的實踐應用
- NUMA架構介紹及優缺點分析架構
- QQ架構分析架構
- 商品API的應用場景分析API
- SelectDB肖康:Apache Doris在日誌儲存與分析場景的實踐Apache
- RTMP、HTTP-FLV、HLS,你瞭解常見的三大直播協議嗎HTTP協議