聽程序員GG講直播那些事

0 評論 6060 瀏覽 28 收藏 6 分鐘

2016年,直播大火。涌現(xiàn)出了一個個直播產(chǎn)品,映客、花椒、斗魚……嗅到了風(fēng)口的氣息,一些視頻網(wǎng)站在線教育平臺也開始引入直播。作為一名敬業(yè)的產(chǎn)品汪,雖然不負責(zé)直播業(yè)務(wù),但也對直播頗有興趣,幸得wuli程序員男票也從事直播相關(guān)的工作,便有幸一探直播的真相。

1、直播流示意圖

直播流示意圖

  • 直播間:視頻采集端,包含一些直播設(shè)備。以在線教育直播為例,直播間是老師錄制課程的地方。
  • 源站:接受直播間傳送的視頻流,并進行存儲和轉(zhuǎn)發(fā),由多臺服務(wù)器組成。源站相對于CDN來講,是源頭,故而稱之為源站。
  • CDN:主動向源站獲取視頻流,并進行存儲和轉(zhuǎn)發(fā)。CDN在這個直播的整個環(huán)節(jié)中扮演的角色類似于計算機存儲系統(tǒng)中的緩存。
  • 用戶:接收CDN傳送的視頻流,觀看直播。

2、直播間-源站的關(guān)系

(1)直播間主動向源站傳輸視頻流,這個動作叫推流。

那么問題來了——直播間是如何確定把視頻流推送到哪臺服務(wù)器上?

直播間可以配置服務(wù)器對應(yīng)的ip地址。比如:直播間1配置了服務(wù)器A和服務(wù)器B的IP地址,那么當(dāng)直播間1產(chǎn)生視頻流的時候,會把視頻流同時傳輸?shù)椒?wù)器A和服務(wù)器B上。

(2)直播間與源站之間常用的傳輸協(xié)議:rtmp協(xié)議,hls協(xié)議。

傳輸協(xié)議是什么鬼?舉個不恰當(dāng)?shù)睦?,傳輸協(xié)議相當(dāng)于是翻譯媒介。一個日本人,和一個俄國人,如果日本人講日語,俄國人講俄語,那么他們是無法溝通的。但如果他們有一門共通的語言,比如英語,在遵從英語的語言規(guī)范的前提下,他們是能夠進行溝通的。傳輸協(xié)議就是直播間與源站之間的共通語言。

RTMP是Adobe公司的流媒體傳輸協(xié)議,普通網(wǎng)絡(luò)用戶均可使用,包括非IOS平臺用戶。

HLS是IOS平臺下的流媒體傳輸協(xié)議。

3、用戶與CDN

用戶在終端進行觀看直播的操作,相當(dāng)于向CDN發(fā)送獲取視頻流的請求。

那么問題來了,用戶終端發(fā)起獲取視頻流請求的時候,是如何確定向哪個CDN獲?。?/p>

在用戶發(fā)起獲取視頻流請求的時候,出于傳輸效率的考慮,用戶與CDN之間有一套路由算法(這個算法一般是由CDN設(shè)定的)。比如這樣一個場景,XX公司/XX產(chǎn)品的直播間在北京,用戶在西安。當(dāng)這個西安用戶發(fā)起獲取直播流的請求時,XX公司/XX產(chǎn)品在西安、上海、南京、廣州、太遠都有CDN,那么路由算法會告訴用戶終端,該獲取哪個CDN,比如獲取西安CDN能夠獲得較高的傳輸速率,那么該用戶的終端就會向西安CDN獲取視頻流。

4、CDN與源站

當(dāng)用戶向CDN發(fā)送獲取視頻流的請求之后,CDN會向?qū)?yīng)的源站服務(wù)器獲取視頻流,這個動作叫做“回流”。

那么問題又來了,CDN如何知道向哪個服務(wù)器獲取視頻流?

用戶終端向CDN請求獲取視頻流的時候,在傳送請求的時候,會告訴CDN向哪臺源站服務(wù)器獲取視頻流,會在傳送的數(shù)據(jù)中含有所獲取源站服務(wù)器的IP信息。我們通常所說的切換線路,指的就是用戶在向CDN發(fā)送獲取視頻的請求時,更換了獲取源站服務(wù)器的IP信息。

5、補充——為什么需要CDN?

解決帶寬問題。用戶對直播的播放流暢度、互動實時性有較高的要求。對于這樣的性能要求,需要通過提高帶寬來解決。如果直播服務(wù)提供者的帶寬非常高,那么源站服務(wù)器的數(shù)據(jù)傳送效率就大大提高,流暢度和實時性是完全能夠滿足的。但考慮到成本的問題,服務(wù)提供者一般會選擇使用CDN,將源站服務(wù)器的數(shù)據(jù)傳送到CDN,通過CDN進行存儲轉(zhuǎn)發(fā)。我們可以想象,如果用戶直接向源站服務(wù)器請求獲取視頻流,會導(dǎo)致源站服務(wù)器壓力過大,畢竟在大多場景下,直播的觀看人數(shù)是比較多的,而通過CDN的存儲轉(zhuǎn)發(fā)可以降低源站服務(wù)器的壓力。

 

本文系人人都是產(chǎn)品經(jīng)理團隊@張婷?原創(chuàng)發(fā)布,未經(jīng)許可,不得轉(zhuǎn)載。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!