網易視頻云:淺談視頻云直播:場景、技術及優化_第1頁
網易視頻云:淺談視頻云直播:場景、技術及優化_第2頁
網易視頻云:淺談視頻云直播:場景、技術及優化_第3頁
網易視頻云:淺談視頻云直播:場景、技術及優化_第4頁
網易視頻云:淺談視頻云直播:場景、技術及優化_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、網易視頻云:淺談視頻云直播:場景、技術及優化1. 簡介隨著互聯網視頻化的發展,各類網絡直播產品層出不窮,涌現出了秀場直播、游戲直播、教育直播、演唱會直播和監控直播等多個直播生態圈。這些生態圈形成的背后,是視頻直播相關技術的不斷發展,例如互聯網帶寬的日益增加,視頻壓縮標準的日漸完善,視頻云技術的出現等。特別是視頻云技術的出現,它降低了開發者的準入門檻,解決了視頻企業的“三高”之痛,即技術門檻高、成本高、卡頓延時率高,為未來幾年視頻直播的大爆發奠定了堅實的技術基礎。所謂視頻云直播技術,就是用云端模式,提供視頻直播解決方案的技術,它涉及視頻直播的各個環節,例如直播視頻采樣、編碼、推流、轉碼、分發、拉

2、流、解碼和播放等。使用Iaas、Paas和Saas三種形式,視頻云直播能為各種場景的直播應用提供接口級服務、平臺級服務和產品級服務。依托視頻云,直播開發者不在關心視頻和網絡的細節,他們只要把精力集中于產品應用層面即可。未來,網絡直播產品將會表現為如下一種形態:上層多樣化的直播模式 + 下層組件化的視頻云模式。深入視頻云直播內部,會發現其具有復雜化、多樣化和組件化的特點。所謂復雜化,是指音視頻技術復雜和互聯網環境復雜;所謂多樣化,是指直播應用場景具有多樣性;所謂組件化,是指直播技術各個環節的模塊化和獨立性。在視頻云直播中,技術主線永遠是音視頻流的輸入、傳輸和輸出。但針對每一類直播場景,使用的具體

3、技術和實現手段都不一樣。隨著直播量級的變化,必須對視頻云各個環節進行優化,以化解流量暴增帶來的壓力。因此,視頻云直播的構建是一項艱巨的任務。接下來,本文將從場景、技術和優化三個角度,詳細闡述視頻云直播。2. 一對多直播場景考慮如下一種場景:一個主播者坐在電腦前,通過前置攝像頭和麥克風,把自己的音視頻信息輸出到網絡上,多人在各地通過互聯網實時觀看主播者的表演。這就是經典的秀場直播。這里存在幾個關鍵點:一. 音視頻傳輸;二. 實時;三. 一對多。首先講音視頻傳輸,它又細分為三點:源端的音視頻輸出、網絡端的流傳輸和播放端的音視頻獲取。第一點音視頻輸出,首先必須收集主播的聲音和圖像,就是所謂的音視頻采

4、集;采集后的聲音和圖像,需要轉換成字節碼、混合并壓縮,最后封裝成某種音視頻格式,就是所謂的音視頻編碼;編碼后的音視頻格式,還不能在網絡傳輸,需要轉換成某種碼流,如RTMP,然后推送到網上,即上傳碼流到服務器,就是所謂的推流。上述“采樣-編碼-推流”,構成了視頻云直播端的核心功能。第二點音視頻碼流的網絡傳輸,把主播者的音視頻流分發傳輸給所有觀看者;對于無法適配源端碼流的觀看者,在網絡端轉換碼流,使其也能正常觀看。上述“分發-轉碼”,構成了視頻云服務端VDN(Video Delivery Network視頻分發網絡)的核心功能。第三點播放端的音視頻獲取,首先從網絡獲取合適的音視頻碼流,就是所謂的拉

5、流;然后對流進行解析,其中的音視頻格式進行解封,就是所謂的解碼;最后提取出單獨的音頻和視頻,進行播放。上述“拉流-解碼-播放”,構成了視頻云播放端的核心功能。因此,如圖1所示,僅秀場直播場景的音視頻傳輸,就涵蓋了視頻云三個核心點: 直播端、播放端和視頻分發網絡,實現技術門檻很高。圖1. 視頻直播流程接著講實時這一點,在直播場景中,延時性要求很高,基本不超過10秒。因此,傳統的文件上傳/下載模式,對于直播不可行。傳統的內容分發網絡(CDN)也不適用直播。視頻云必須開發獨特的流分發網絡,應對直播場景實時性。同時,經典秀場直播無實時交互需求,延時性不要求1秒之內。因此流媒體傳輸,一般選用基于TCP的

6、RTMP協議,無需選擇實現難度更大但延時更低的RTP類協議。最后講一對多模式,就是一人講,多人聽。這是一種視頻云直播最擅長解決的模式。在互聯網現實應用中,還有很多種其他模式,例如多對多模式,就是多人互動直播,即視頻會議;二對多模式,就是兩人互動,然后多人聽,即連麥;一對一模式,就是兩人視頻互動,即實時視頻聊天。各種模式,由于實時性要求不同,參與人數不同,實現難度各不相同。本文圍繞的場景是一對多模式,該模式最常用。3. 直播關鍵技術如圖2所示,視頻云直播的總體框架分為三層:最上層是直播SDK、中間為API接口層、最下面為云端服務層。各層都有一些關鍵技術點,例如直播SDK層主要包含直播端推流和播放

7、端拉流兩個關鍵技術;API接口層主要涉及安全控制這一關鍵技術;云端服務層主要涉及VDN流分發這一關鍵技術。接下來,我們詳細描述這些技術點。圖2. 視頻云直播總框架3.1直播端/播放端直播端和播放端是視頻云直播SDK的核心。直播端是直播應用的起點,負責采樣、編碼和推流。播放端是直播應用的終點,負責拉流、解碼和同步播放。如圖3所示,播放端的處理基本上是直播端的一個逆過程。接下來,簡單描述其中每個流程。圖3. 視頻云直播客戶端流程采樣直播SDK從設備驅動獲取音頻采樣數據和視頻采樣數據。其中,音頻采樣數據一般采用PCM格式、視頻采樣數據一般采用RGB或YUV格式。音視頻采樣數據體積非常大,因此需要經過

8、壓縮處理,來降低數據量。編碼編碼包含音頻編碼和視頻編碼。其中,音頻編碼負責壓縮音頻采樣;視頻編碼負責壓縮視頻采樣。常用的音頻壓縮編碼算法有AAC、MP3、WMA等,其中AAC最常用。常用的視頻壓縮編碼算法有H.264,H.265和VP8,其中H.264最常用。封裝獨立的音頻壓縮數據和視頻壓縮數據,需要經過封裝處理,放到一個統一格式的文件中。常用的分裝格式有:MP4、TS、FLV、RMVB、AVI等,視頻云中,常用的有MP4、TS和FLV。推流分裝后的音視頻數據,還需要再次進行傳輸協議封裝,變成流數據,用于網絡傳輸。常用的流傳輸協議有RTSP、RTMP、HLS等。生成的音視頻流數據,也稱碼流,首

9、先放到流緩沖隊列中,然后按照一定的Qos算法發送到網絡端。關于Qos,我們將在下文中描述。自此,整個直播端的流程已描述完畢。接下來,講述播放端。拉流拉流是推流的逆過程。首先,從網絡端獲取碼流,并把數據放到緩存隊列。然后,按照一定的速率,從緩存獲取碼流,解傳輸協議,獲取其中分裝數據。解封解封裝過程,從封裝格式中提取音頻壓縮數據和視頻壓縮數據。為封裝過程的逆過程。解碼解碼過程,各種從音頻壓縮數據和視頻壓縮數據中,提取原始數據。由于編碼算法一般為有損壓縮算法,提取后的原始數據,并非原始采樣數據,存在一定的信息丟失。同步播放各種獲取的音視頻數據,必須經過同步處理,才能播放。上述,就是直播音視頻在客戶端

10、的整個流程,其技術基本分為兩塊:一塊為傳統音視頻處理技術;第二塊是碼流處理技術。傳統音視頻處理已經很成熟,作為視頻云直播一般會選用通用框架實現這部分功能,例如ffmpeg、vlc、gstreamer等。音視頻處理中,唯一重點需要考慮的是視頻編碼選擇。在音視頻流中,視頻大小占據90%以上空間,視頻編解碼算法的好壞,直接決定直播碼流大小,因此是視頻云直播的一個性能瓶頸點。當前,業界一般會選擇H.264作為視頻編解碼算法。接著講碼流處理。碼流處理就是音視頻碼流在客戶端的處理和控制技術,主要包括碼流算法實現和Qos服務。常用的碼流算法有RTSP和RTMP,其中RTSP基于UDP或TCP,在視頻會議領域

11、廣泛采用;RTMP基于TCP,在直播中廣泛采用。這些碼流算法協議公開,存在各種版本的lib庫,因此在客戶端實現難度較小。Qos服務是用來解決網絡延遲和擁塞等問題的技術,通俗的講就是用來解決網絡不穩定的一項安全機制。在直播場景中,Qos需要保證網絡不穩定情況下,觀看者仍能觀看直播內容,基本無卡頓。這需要客戶端提供一系列的功能保證Qos,其中最主要的功能如下:一. 直播/播放兩端設置緩存,使碼流處理勻速,以避免播放抖動;二. 在播放端根據場景或網絡情況,動態選擇碼率、幀率等參數;三. 選擇一定的丟棄或重傳算法,以應對網絡極差情況;四. 按照一定的延時性/流暢性要求,選擇緩存大小等。Qos服務無固定

12、算法,視頻云根據特定的場景提供特定的Qos保證,需完全自主開發設計。3.2流分發圖4. 視頻流分發網絡視頻云直播服務端的核心是流分發,由流分發網絡VDN負責實現。整個VDN的框架如圖4所示,包含:流媒體服務集群、邊緣服務器集群、轉碼服務器集群和智能負載均衡系統。與靜態文件分發網絡CDN類似,VDN系統分為中心和邊緣兩層,邊緣層直接跟用戶連接,中心層負責服務器間的內容轉發。邊緣層的核心是邊緣服務器,它部署于全國各地及橫跨各大運營商,例如北上廣、移動聯通電信等。負載均衡系統,根據用戶的地理位置信息,就近選擇邊緣服務器,為用戶提供推/拉流服務。中心層的核心是流媒體服務集群,該集群接收來自邊緣服務器的

13、碼流數據,并轉發給需要該碼流的其他邊緣服務器。同時,中心層也負責轉碼服務,例如把RTMP協議的碼流轉換為HLS/TS碼率等。負載均衡系統負責中心層和邊緣層的路由。整個VDN的設計非常復雜,本文不具體展開,接下來只是簡單介紹一下上/下行加速、低延時設置等機制。有興趣的朋友可以查閱SRS(Simple Rtmp Server)開源文檔,了解VDN詳情。上行加速上行推流加速,又稱上行邊緣加速。客戶端根據VDN智能路由系統,選擇最近的邊緣服務器。然后,客戶端推流到該服務器,邊緣服務器把流轉發給中心服務器。由于上行推流和下行拉流可能在同一臺服務器,因此上行邊緣服務器只會做簡單的代理轉發,把流轉發給中心服

14、務器或上層。下行加速下行拉流加速,又稱下行邊緣加速??蛻舳耸紫认蜻吘壏掌魅×?,邊緣服務器存在流,則直接給用戶;如果不存在流,就執行回源模式,向相應的中心服務器取流。對于非原始格式流,則進行轉碼操作。轉碼可在中心層,或邊緣層執行。低延時機制對于直播場景,特別是交互直播場景,需要低延時,一般為1-3秒。對于RTMP流分發,可以通過如下幾個機制來降低延時:一. 降低讀/寫合并時間;二. 降低GOP;三. 減少累計延時隊列。跟磁盤flush策略一樣,VDN也通過一次性讀/寫幾毫秒流數據,來提高吞吐量,但增加了延時性。通過關閉讀/寫合并,或者降低讀寫合/并時間,可以降低延時性。GOP是音視頻術語,指兩

15、個I幀之間的時間距離。I幀就是關鍵幀。GOP的大小,決定了延時性。GOP設置越小,延時性越低,但壓縮率也越低。VDN提供累計延時隊列,避免流數據丟失。如果減少隊列長度,會增加數據丟失概率,但降低了延時性。3.3安全機制視頻云直播在API層提供了一整套的安全機制,避免非法訪問,盜鏈等安全問題。如圖5所示,視頻云安全機制的原理比較簡單,利用一對公私鑰,對訪問請求進行簽名加密,生成簽名令牌TOKEN。在云端通過相同的算法,驗證TOKEN的有效性,從而達到安全保護的目的。圖5. 視頻云安全機制在視頻云場景中,請求認證來自于兩端:用戶服務器端和用戶客戶端。這兩端的安全認證邏輯略有不同。對于用戶服務器端,

16、本身保存有公私鑰對,根據簽名算法,能自動產生TOKEN。對于用戶客戶端,因為無法獲取公私鑰對,TOKEN必須由用戶服務器產生,并下發給客戶端。因而,每次客戶端訪問視頻云,必須首先向服務器獲取TOKEN。這是最為安全的做法。該安全策略,客戶端一次訪問云服務,需要兩次交互,較為繁瑣。有些視頻云實現,降低安全性,為每個客戶端下發一個帶時效性的TOKEN,甚至是一個永久有效的TOKEN。這樣交互流程更加便捷,但極大的降低了安全性。直播推拉流也采用了TOKEN簽名算法機制,以實現防盜鏈。根據應用的需要,我們可以設置推拉流加防盜鏈??紤]如下一種場景,演唱會直播,觀看者必須買電子門票,這種應用拉流必須加防盜

17、鏈。再考慮一種情況,秀場,希望觀看者越多越好,這樣應用拉流無須加防盜鏈。視頻云直播中,安全認證算法一般采用SHA1或者MD5這樣的數字簽名算法,第一這些數字簽名算法很難被逆向破解攻擊;第二相比非對稱加密算法,數字簽名算法執行效率更高。對于一些安全性要求特別高的應用場景,視頻云還可提供頻道粒度的流加密,用對稱加密算法,例如RC4之類的,把整個流進行加密,從而達到了絕對的安全。4. 技術優化前一節描述的視頻云直播技術,能滿足基本的一對多直播場景需求。但隨著人們對音視頻需求的不斷提升,以及直播場景的不斷豐富,單純基于RTMP的直播方案已不能滿足所有需求。因此需要在技術上提出一些變革性的優化,以適應場

18、景變更。本節提出了五個優化點:一. 視頻壓縮技術優化;二. WEBRTC技術普及化;三. 基于UDP的VDN構建;四. 多碼流合并優化;五. 終端多樣化;??梢哉f,這五點也是視頻云技術未來的發展方向。視頻壓縮技術優化視頻壓縮技術一直是音視頻領域的核心,視頻直播也不例外。一個好的視頻壓縮算法,能極大的降低視頻內容大小,從而減少音視頻流碼率。當前,視頻云廠商基本使用H.264(AVC) 視頻壓縮算法。但該算法對高清晰度和高幀率場景,以越來越力不從心。一些行業聯盟提出了一些替代方案,例如H.265(HEVC)和谷歌正在研發的VP10。特別是H.265,以得到了眾多廠商的支持,其壓縮率比H.264高4

19、0%左右。使用x265編解碼庫替換現有的x264庫,以支持H.265,成為了視頻云發展的一個重要方向。WEBRTC技術普及化WEBRTC是谷歌公司提出的純WEB端實時交互框架。視頻云直播集成WEBRTC,能解決實時交互問題,例如網絡視頻會議交互和二對多連麥交互等。同時,WEBRTC和HTML5天然集成,是純WEB視頻場景的最佳候選項。但視頻云集成WEBRTC必須解決一系列難題:一. WEBRTC流媒體服務器搭建;二.多路碼流合并;三. RTMP流傳輸協議和基于RTP的WEBRTC流傳輸協議互轉等。解決難題一,能夠構建出多人網絡視頻會議;解決難題二,能夠降低帶寬流量消耗,對于交互場景節省成本;解決難題三,能夠實現視頻會議直播化,或者互動場景直播化。基于UDP的VDN構建現有的VDN基本采用RTMP流傳輸協議,延時基本超過1秒,無法應對低延時交互場景,例如視頻會議。而基于UDP的RTP流傳輸協議,能夠解決低延時問題。要構建

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論