大流量直播應對方案

隨着國內網民數量指數級增長,網絡帶寬環境的不斷好轉,直播網站如雨後春筍般大量泉涌,中國網絡視頻市場規模不斷壯大。

網絡視頻的主要應用有視頻點播、視頻直播、視頻通話會議等。

在表現形式上,視頻直播包括現場演唱會的直播、新聞發佈會的直播、奧運會的直播、電視劇的直播、個人表演show,學術論壇交流會、各類技術培訓等;在技術上,視頻直播不用像視頻點播那樣需要進行分段、轉碼、 發佈等步驟,它可以做到節目播放的實時性;在播放形式上,用戶只要具有一個可以上網的設備,可以是電腦、手機等,無論在何處只要網絡環境允許,都可以及時地欣賞到正在直播的節目。

由此可見,視頻直播以其具有的豐富性、時效性和 自由性等特點吸引着大批網絡用戶,它具有着傳統媒體和視頻點播所沒有的優秀品質。因此,業內網站紛紛加大視頻在清晰度、網絡延時、流暢度等方面的研究,並投入資源大力發展。可以說,視頻直播技術的架構直接決定着平臺的整體的可用性、穩定性,也可以說架構是平臺的基石。

視頻直播流媒體技術

以前視頻網站大多采用Microsoft的Media Server產品進行直播,並通過在網站頁面裏嵌入 Media Player進行播放。編碼格式則多采用 wmv 文件。但是在實際應用中,人們發現採用該技術處理的流媒體視頻畫面模糊,視頻延時大,用戶體驗不令人滿意。隨着 FMS 軟件的技術的成熟,視頻網站開始向FMS流媒體技術轉移。 FMS 的全稱是 Flash Media Server,它是 Adobe 公司的產品。隨着人們對在線視頻的需求激增,Adobe 公司的 Flash Media Server 系列產品已成爲流視頻和實時通信領域業界領先的解決方案。尤其當 FMS Server版本升級到3.5後,其性能和穩定性得到大幅提升。採用FMS流媒體技術的視頻直播畫質較之以前更清晰,畫面更流暢,從而得到了大多數用戶的認可和好評。視頻在進行網絡直播時需要經過信號採集、轉碼和 Flash Media Server 等過程,最後呈現在用戶面前。

(1)採集:視頻直播的數據源一般來網絡和攝像頭的視頻流。 通過採集系統將視頻採集下來,然後通 TS OVER IP 方式推送所採集的信息到轉碼系統
(2)轉碼:轉碼系統將接受的信號轉碼爲 FLV 格式, 然後通過 RTMP 協議推流到 FMS。

轉碼系統目前常用的有兩種方式:

a.軟件方式:如Ffmpeg,FMLE,
Ffmpeg 是一個開源免費跨平臺的視頻和音頻流方案,屬於自由軟件,採用 LGPL 或 GPL 許可證(依據你選擇的組件)。它提供了錄製、轉換以及流化音視頻的完整的解決方案。它包含了非常先進的音頻、視頻編解碼庫 libavcodec。由於其提供了非常清晰的畫質,但是由於其安裝在 Linux 服務器上,不方便移動,所以適合直播固定的節目,例如網絡視頻、有線電視的直播等。
FMLE 爲 Adobe 公司提供的一個免費的實時視頻和音頻捕捉軟件。它是一個媒體編碼器,它可以將音頻和視頻實時流式傳送到 Adobe Flash Media Server 軟件中。軟件安裝使用非常簡單,只需要一個筆記本電腦和一個 USB 攝像頭,通過此軟件就可以進行非常清晰的直播,非常適合不同形式的音樂會、發佈會等實時活動。

b.硬件方式: 由視頻轉碼公司設計的硬件轉碼。
解碼市場:H.264解碼產品,主要有:支持H.264標準的解碼集成電路,含專用解碼芯片和系統芯片SoC,支持H.264標準的解碼軟件,用於各類電子產品。
編碼市場:由於H.264出色的編碼效率,使其很快就被以視頻監控設備爲主體的編碼設備市場所接受。中國是世界上最早採用H.264進入視頻監控市場的國家之一。隨着視頻監控設備向高清網絡攝像機的轉移,H.264技術將在未來多年裏在該市場佔據統治地位。
H.265編解碼:目前由於2K甚至4K/8K的視頻清晰度的演變,類似清晰度的視頻也應用到了直播領域,但是由於2K以上清晰度體積較大,直播又是需要大帶寬才能支撐,所以纔有了H.265的編碼格式,相當於在保證清晰度的情況下提高壓縮效率、提高魯棒性和錯誤恢復能力、減少實時的時延、減少信道獲取時間和隨機接入時延、降低複雜度。但就目前來說,大部分編解碼產品大部分還是基於264進行工作的,普及265需要一點時間,不過隨着5G的發展以及265編碼帶來的好處,應該不需要多長時間就會全面應用。

大型視頻直播架構

FMSS 不能作爲大型直播的原因是因爲它不能將一個直播流分發到多個 FMS 服務器上。即只能一臺 FMS 服務器服務直播,同事併發的用戶就是有限的,只能抗住上千左右的用戶量。 Rtmpdump 是一個匈牙利人編寫的基於 rtmp 協議的客戶端程序。通過它,可以將rtmp 的直播流下載成爲一個 flv 格式的文件。架構本直播的思路是: 使用 rtmpdump 中的 rtmp 協議部分,並將程序改造爲多線程的模式。 一個線程從 fms 源拉下來直播流,n-1 個線程將這個直播流分發到其他 fms server 。即實現直播流的代理轉發功能。這樣就可來自www.vhall.com 以通過多個 fmss server 來分擔用戶的請求壓力,完成大型直播。上面的方法雖然解決了大量用戶的請求壓力,但是還不能滿足用戶的視頻體驗。因爲用戶是屬於不同地區和運營商的。比如廣東電信的用戶訪問北京聯通的 FMS Server 來觀看視頻,視頻效果會非常差。因爲運營商互聯的帶寬非常少,經常在堵塞狀態。因此如果要滿足用戶的視頻體驗,不僅要解決服務器壓力問題,還要解決跨省、跨運營商的網絡質量問題。解決跨省、跨運營商的的方式就是採用CDN。

CDN:CDN的全稱是 Content Delivery Network,即(內容分發網絡)。其基本思路是儘可能避開互聯網上有可能影響數據傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快、更穩定。其目的是使用戶可就近取得所需內容,解決 Internet 網絡擁擠的狀況,提高用戶訪問網站的響應速度。方法就是就是在不同省、不同運行商的 IDC 中放置服務器,讓用戶就近訪問。CDN 的一個關鍵技術就是調度系統。

調度系統:根據用戶的 IP 以及節點的帶寬和服務器負載情況,將用戶的請求調度到最合適的節點,既滿足了用戶體驗,又節省了 CDN 成本。調度系統可以基於 nginx 模塊的方式開發。調度系統保存一份精確的全國的 IP 庫,並配置好一個調度策略文件。內容就是不同地區,不同運營商的用戶訪問最好節點的對應表。另外有一個各個節點的帶寬和服務器負載的上報接口,可以讓調度實時瞭解各個節點的情況。 當用戶來請求調度,調度根據用戶的 IP,查找 IP 庫,瞭解到它屬於哪個地區哪個運營商,並查找調度策略,瞭解到可以服務它的幾個節點,通過節點查詢接口,瞭解到相關幾個節點的網絡情況,服務器負載情況,然後將這些用戶調度到滿足條件的節點。

上述方案實現了一個不僅可以使直播視頻畫質更加清晰、畫面更加流暢,同時使用CDN網絡增強了用戶的良好體驗,不同地區的用戶會被轉到就近到本地的服務器上,實現了智能調度。從而爲大用戶量、高併發的實時視頻直播提供了技術上的保障。

山東雲管家,阿里雲北方大區一級經銷商,雙11怎麼玩兒最暢快?關注公衆號:ygjdata

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章