亚洲网站免费_国产一区二区三区在线看麻豆 _国产精品毛片一区二区三区 _麻豆精品网站

阿里云CDN直播架構與雙11晚會直播實戰

分享人:阿里云CDN直播 高級技術專家 闕寒分享內容:雙11直播活動是眾多直播活動中非常典型的場景,離不開直播本身這個話題。所以今天的分享會從直播概述、直播架構、業務功能、直播監控、雙11這幾個方面來進行。
 
分享人:阿里云CDN直播 高級技術專家 闕寒
 
分享內容:雙11直播活動是眾多直播活動中非常典型的場景,離不開直播本身這個話題。所以今天的分享會從直播概述、直播架構、業務功能、直播監控、雙11這幾個方面來進行。
 
每年雙11購物節,有兩塊壓力是最大的,第一塊是支付寶交易,第二塊就是CDN。那么CDN技術到底是什么呢?
 
舉個簡單例子,不管你的在電腦淘寶上還是手機APP上買東西,進入商品詳情頁,你會看到很多圖片,有的商家為了更好的宣傳,會上傳視頻,讓你看得更形象。當商家把圖片和視頻上傳到服務器時,一般是阿里巴巴的主站機房,存儲在杭州。但是看這個商品詳情的人,可能來自遙遠的東北或海南,如果他們直接訪問杭州機房,那這個鏈路會非常長,還存在跨運營商的問題,體驗會很差,表現出來就是圖片刷不出來等問題。通過CDN技術,可以把這些在杭州機房的圖片、視頻等靜態文件分發到全國各地的幾百個機房內,這樣,北京用戶在看產品詳情的時候,直接訪問北京的機房,而且是網內覆蓋(電信用戶訪問電信機房),這樣就能就近、快速獲取數據。而且,對于一個商品詳情頁的構成,數據量最大的就是圖片和視頻,其他文本幾乎可以忽略不計,對于圖片和視頻的內容分發極速可以保障用戶的體驗更加順暢。
 
視頻直播概述
 
直播大約是從2014年左右興起,以映客、斗魚、熊貓TV、戰旗TV這些直播平臺為代表。其實主要有兩種場景,一種是手機直播,一種是游戲直播。手機直播推流端和播放端都是各平臺自己開發的手機APP,而游戲直播是使用開源的OBS去推流完成上傳,播放大多是通過網頁播放器完成播放。
 
視頻直播和點播的相同點與不同點
 
其實對于播放器來說,不管是視頻直播還是點播,行為都是一致的:和服務器建立連接以后,不停的讀取音視頻文件,然后完成渲染。從這里來看,視頻點播和直播的區別不大。而它們的主要區別就是點播可以快進、后退進行觀看,也可以在任意時間播放,而直播不能快進,也只能在固定的時間點播放。
 
阿里云直播全景解決方案
 
推流端經過一次邊緣節點的加速,將視頻直播流推到直播中心,在直播中心完成一系列轉碼、截圖、錄制、水印等處理,然后視頻流再經過CDN分發,分發到不同的播放端,播放端有不同的SDK進行秒開、弱網等優化動作。
 
直播服務的特點——直播系統中的推流與播放
 
對于視頻直播來講,最重要的兩個環節,一個是推流,一個是播放。推流一般采用RTMP協議,常用的推流端包括OBS、手機APP、FFmpeg等。播放除了采用RTMP協議,還可以采用HTTP FLV和HLS協議,RTMP和HTTP FLV是流式傳輸,HLS是文件加速傳輸,常見的播放端包括:Flash / VLC / HTML5 / 手機App等等。對于阿里云直播系統來講,大部分直播分發都是通過流式傳輸完成的,只有一少部分量是使用文件加速分發完成的。
 
直播服務的特點——詳解流式分發與CDN直播系統
 
我們再詳細看下流式分發。其實在直播場景中,不管是推流還是播放,流式分發都是長連接的,一場直播可能2個小時,推流在這2小時內不會中斷。對于播放器來講,服務器端獲取到的是一幀一幀的音視頻數據,不管是什么傳輸協議,都是采用FLV tag來封裝。每一幀音頻或者視頻,都會有一個時間戳的屬性。
 
下面這張圖列了一下推流和播放端、服務器之間的關系。我們可以定義推流和播放關系為發布與訂閱關系。
 
對于左側的服務器A來講,有兩路流。第一路流中,主播直接推流到A服務器上(發布),然后這路流有兩個播放端,也就是兩個訂閱者。而第二路流,這路流有三個訂閱者,發布端并不是主流推流,是從服務器B拉流過來進而完成發布的,而這個回源鏈接對于服務器B來是個訂閱者,服務器B的發布者是主播推流。這種服務器與服務器之間的級聯關系,就構成CDN直播網絡。
 
直播服務的特點——音視頻幀與延遲的產生
 
視頻直播流會傳輸音頻幀和視頻幀,對于音頻幀來講,它每一幀都可以獨立解碼,播放器從服務器獲取到任何一幀音頻幀之后,都可以獨立渲染,聽到聲音。
 
而視頻幀分為視頻關鍵幀和視頻非關鍵幀兩類,視頻關鍵幀可以獨立解碼渲染,可以直接看到畫面,其他非關鍵幀則做不到,它的解碼依賴于前面的視頻幀。視頻關鍵幀的優點在于獨立解碼,但是缺點是攜帶的信息很多、很大。反之,視頻非關鍵幀則很小,幾K或者1K就可以解決。對于視頻直播的任何一次播放,都是從視頻關鍵幀開始發送,否則會先出現花屏,體驗很差。
 
我們將兩個視頻關鍵幀之間的間隔為一個GOP,這是很重要的概念。下圖是一路流的音視頻序列,我們可以看到兩個key(視頻關鍵幀)中間大概有10秒間隔,下側的箭頭指示的是當前推流所在的位置,后續的虛線是即將要推上來的流。此時,前一個關鍵幀大概在3秒前出現,如果這時來了一個播放端,那么我們不能從箭頭開始發給播放端,因為會花屏。所以我們會選擇從前面的關鍵幀開始發送,也就是說,這時的播放端會從3秒之前開始播放,這也就產生了延遲。這個GOP越大,平均延遲也就越大。GOP越小,平均延遲也就越小。一般,手機直播的延遲在2-4秒,游戲直播延遲在8-10秒。
 
直播服務特點——服務器緩存數據
 
之前提到的CDN圖片、視頻加速,它們在每一個邊緣服務器、中間服務器、源站服務器都是以一個一個文件形式來存儲的,今天和明天訪問文件的數據是不變的。而對于視頻直播來講,存儲的數據都是實時在變化的。服務器會存儲最近的關鍵幀以來的數據,每當一個新關鍵幀出現之后,都會將之前的緩存數據清掉。這樣才能保證任何一個時間點來播放的播放端都能從最新進度開始觀看直播。
 
CDN直播架構和業務功能
 
CDN直播網絡架構圖,這個架構圖就是建立在發布與訂閱的關系之上。從左側的主播推流開始,主播推流到L1邊緣節點,再經過L2節點的上行加速,最終到中心機房。對于最右側的播放端來講,他們從就近的L1節點完成播放,L1節點一般就是本地覆蓋的邊緣節點,如果機房內有這路視頻流,就直接返回,如果機房內沒有這路視頻流,就從L2節點拉流,如果L2不命中,最終會去中心機房尋找這路流。這其中,任何的鏈路都會存在抖動狀況,CDN會通過自動切換調度來保證穩定性。
 
直播中心
 
直播中心在整個CDN直播系統中非常重要,這中間有一些比較重要的組件。包括流媒體服務器,用于用戶存儲成千上萬路直播流;視頻處理組件用來完成轉碼、截圖、錄制、切片業務;拉流組件用于解決不是主動推給直播中心的需求;調度組件用來完成每一路流在服務器上查找的問題;直播API一般供客戶來訪問在線流和歷史流的數據;監控組件是供客戶來監控每一路流、服務器和組件的穩定性的。
 
轉碼業務
 
還有一個和直播密切相關的就是轉碼業務。左側圖是一路流轉碼之前的原始畫面,當前碼率大約是3000K+,右側轉碼出來的視頻是300K+。一般轉碼應用在幫助直播平臺節省帶寬和處理一些播放端不是很順暢的場景之下。
 
截圖業務
 
對視頻流周期性的截取關鍵幀,保存成一張圖片。一般用在直播平臺對于每個直播間做縮略圖來用。用戶在直播平臺看到了直播間縮略圖,過一會兒刷新后是會變化的,這就是通過截圖來完成的。
 
除此之外,整個直播系統中還包括其他業務,比如錄制、回調、鑒權、黑白名單、轉推其他廠商、播放純視頻純音頻等。
 
直播監控相關
 
視頻直播有很多屬性,所以對其監控是十分必要的,我們一般來監控以下指標:
 
直播視頻碼率:一般來說,手機直播碼率在500Kbps ~ 1Mbps,游戲直播 碼率在1.5Mbps ~ 4Mbps左右。
 
直播視頻播放:監控直播的當前在線人數和總體下行流量大小。
 
視頻幀率(卡頓):因為視頻/音頻有個特性,它的幀率是固定的,音頻30 ~ 60幀/秒,視頻15 ~ 40 幀/秒。如果一路流很正常,幀率是一條平滑的直線,如果出現突刺,那么就說明有網絡抖動。有了全鏈路秒級幀率監控圖之后, 排查問題變得非常的方便, 針對一路流卡頓以及用戶的各種問題可以很快的就明確原因。
 
全鏈路監控:對于整個分發鏈路監控,根據客戶的反饋通過全鏈路監控準確找到問題所在,把有問題節點下掉,或者將鏈路切換。
 
雙11晚會直播相關預案
 
最后,我們來看看雙11晚會直播中,我們做了哪些預案。其實,從15年開始,雙11就有了晚會直播。這個晚會是為了雙11進行造勢和導流,穩定性非常重要,保障級別會很高。下圖是整體拓撲圖,基本上和雙11直播晚會相關的預案都在這里。
 
最左側是現場導播車,分出的信號會將視頻流推到直播中心。常規的主播會通過公網推到直播中心,抖動的可能性也會很大,雙11晚會會選擇專線來推流到直播中心。而且,預案不會只選擇一根專線,因為一根專線也可能會成為單點,存在一定風險,所以我們一般選擇不同運營商的兩根專線,確保鏈路傳輸。
 
從現場采集出來的畫面,我們可以看到會有四路,narrow這路流其實是我們采用了窄帶高清技術的畫面。sh01和sh02是不同專線的互備,sh01_narrow和sh02_narrow也是不同專線的互備,而且sh01的畫面使用了主推和冷備兩條鏈路,來防止現場推流設備出現的問題。假設真的某路流出現問題了,會通過播放端對ur來進行更換。
 
雙11直播晚會轉碼——窄帶高清
 
雙11直播晚會采用了窄帶高清技術,窄帶高清是阿里視頻云獨有的一套以人眼主觀感受最優為基準的視頻編解碼算法,從這里參數來看,窄帶高清和非窄帶高清使用的碼率峰值和平均碼率值是基本一樣的,但是窄帶高清的畫質效果會更好。它具有以下特點:
 
能和編碼標準的進步垂直發展,效果能夠疊加
 
能把業界普遍浪費的帶寬節省下來,節省20%左右
 
能把業界普遍處理不好的復雜場景優化
 
能讓普通觀眾一眼就能看出畫質的效果不同
 
程序盯屏預案
 
對于雙11來講,我們也會有一個盯屏的策略,通過程序對所有流進行播放,輸出一個幀率。轉碼流每秒鐘是25幀左右,中間高亮出來的,就是網絡或轉碼存在問題。一旦發現問題,就采取相應的預案。
 
人肉查看視頻預案及其他
 
排除了網絡問題之外,也可能存在音畫不同步、現場采集畫面出現花屏等情況,所以針對不同播放端類型,也會有人肉查看每路流的實際效果。此外,運營同學也會檢測總體流量和CDN節點水位的情況,如果說流量帶寬很高,我們也會采取降低碼率等措施來節省帶寬。
相關文章
中國廣電召開會議 關注區域固網用戶精益化運營提升
中國廣電召開會議 關注區域固網用戶精益…
貴州廣電網絡傳媒集團與中國農業發展銀行貴州省分行簽署戰略合作協議
貴州廣電網絡傳媒集團與中國農業發展銀…
禁止強制捆綁 廣電總局對互聯網電視自動續費專項治理
禁止強制捆綁 廣電總局對互聯網電視自動…
中國廣電集團黨委副書記、總經理張文晨赴黑龍江公司檢查督導客戶服務工作
中國廣電集團黨委副書記、總經理張文晨…
中國廣電集團紀委書記陳薇調研中國廣電青海公司,提出五點要求
中國廣電集團紀委書記陳薇調研中國廣電…
中國廣電啟動高校補招,涉及5個部門7個崗位
中國廣電啟動高校補招,涉及5個部門7個…
我還沒有學會寫個人說明!
主站蜘蛛池模板: 湘潭市| 连南| 西安市| 乌兰浩特市| 宣恩县| 陆良县| 奇台县| 嘉兴市| 霸州市| 旌德县| 疏勒县| 壶关县| 万全县| 林西县| 桑植县| 米泉市| 天峻县| 淳安县| 宿松县| 德钦县| 扬州市| 宜春市| 惠东县| 钦州市| 澎湖县| 无极县| 延长县| 临洮县| 东宁县| 南投县| 蒙城县| 松阳县| 凤翔县| 平乐县| 老河口市| 湖南省| 邵东县| 德格县| 奇台县| 富锦市| 武汉市|