直播開發為什麼要用兩種流媒體傳輸協議?HLS和RTMP的優缺點

在進行直播開發時,我們可能會遇到一些小疑惑,比如,音訊編碼格式用AAC好還是MP3好?流媒體傳輸用RTMP好還是用HLS好?當然,也有人問過我這樣一個問題,為什麼要同時使用HLS和RTMP,本篇文章就來談談這是為什麼。

直播開發為什麼要用兩種流媒體傳輸協議?HLS和RTMP的優缺點

一、 直播開發為什麼要用到流媒體傳輸協議

常用的流媒體協議主要有HTTP漸進下載和基於RTSP/RTP的實時流媒體協議兩類,原則上,RTSP,RTMP,HTTP都可以做直播和點播,通常做直播開發會用RTMP協議。

直播時,主播端將直播流推向伺服器,使用者端發起請求從伺服器拉影片流過來解碼播放,這樣就實現了直播。

在直播中,想要進行推拉流,就要用到流媒體傳輸協議,沒有傳輸協議,影片流無法進行傳輸。

直播開發為什麼要用兩種流媒體傳輸協議?HLS和RTMP的優缺點

二、 APP直播開發中用到的RTMP協議有什麼優勢

RTMP協議(Real Time Messaging Protocol)是一種流媒體傳輸協議,是直播APP中最常用的流媒體傳輸協議,它最主要的優勢就是低延時。

RTMP 協議進行資料傳輸時,它是一整條資料流被封裝成FLV透過HTTP提供出去,因此在伺服器不會有落地檔案,基於 TCP 長連線,不需要多次建連,所以延時通常為 1-3s,遠超HLS。

三、 微信端直播開發中用到的HLS 協議有什麼優勢

HTTP Live Streaming協議被縮寫為HLS,是蘋果公司釋出的基於HTTP的流媒體傳輸協議(因此蘋果的所有系統都支援HLS)。

其工作原理是切片式傳輸,把直播流切成無數片,使用者在觀看影片時,每次客戶端可以只下載一部分,然後在這部分播放時從許多不同的備用源中下載其他資源,因此HLS協議可以任由使用者的意願選擇不同的位元速率。HLS基於 HTTP/80 傳輸,很少會被防火牆攔下。

此外,RTMP很難對影片伺服器進行平滑擴充套件而HLS基於無狀態協議(HTTP),支援平滑擴充套件。

直播開發為什麼要用兩種流媒體傳輸協議?HLS和RTMP的優缺點

四、 為什麼APP直播開發用RTMP而微信端要用HLS

看了兩者的優勢,有沒有感覺HLS傳輸協議比RTMP厲害太多了?其實不是哦,從流媒體傳輸協議的角度來看,HLS也不錯,但立足於直播開發的角度來看,HLS就差點事兒了,直播要求的低延時,HLS絕對做不到,正因此,我們在做APP直播開發時,會選擇用RTMP而不是HLS。

微信端用HLS是沒辦法的事,因為微信端不支援RTMP,而HLS表現良好,以較高的延遲換入門檻。

直播開發為什麼要用兩種流媒體傳輸協議?HLS和RTMP的優缺點

說了這麼多,大家明白為什麼直播開發要用兩種流媒體傳輸協議了嗎?更多與抖音原始碼、短影片原始碼開發相關的資訊和分析會在以後逐漸放出,敬請期待,需要的朋友請關注我。

宣告:文章為原創內容,轉載請註明出處及作者