【本期推薦】為什麼一到大促,我們的錢包總是被掏空?是大家自制力不夠,還是電商平臺太會讀懂人心,從技術維度,抽絲剝繭一探究竟。
摘要:動輒幾十上百萬人同時線上的直播間,讓所有人能同時公平的去搶購,並且還要確保系統執行的穩定,這是一個非常大的考驗。背後到底是什麼樣的技術加持,過程中又遇到了哪些挑戰?讓我們來一探究竟。
本文分享自華為雲社群《618技術特輯(三)直播帶貨王,“OMG買它”的背後,為什麼是一連串技術挑戰?》,原文作者:技術火炬手 。
“OMG,買它買它!”某人氣主播的直播間內,熱鬧非凡。上百萬人同時線上,右手拇指如同上了弦的箭,就等主播發出口令“3,2,1,上鍊接!”,火速下單。
沒錯,今年的618,直播帶貨已經成了“剁手黨”們喜聞樂見的一種購物形式。截止2020年,在我國9.04億網民中,就有2.65億電商直播使用者。
動輒幾十上百萬人同時線上的直播間,寶貝連結一旦上架,需要秒級到達消費者。讓所有人能同時看到連結,公平的去搶購,並且還要確保系統執行的穩定,這是一個非常大的考驗。背後到底是什麼樣的技術加持,過程中又遇到了哪些挑戰?讓我們來一探究竟。
傳統直播:卡頓延遲,拼手速總是慢人一步
直播的及時性和互動性讓它成為資訊觸達、互動溝通的新媒介,最大化真實還原人與人的線下互動場景。但直播的實時互動效果夠好了嗎?
網際網路直播全鏈路可以分為7個步驟:分別是採集、編碼、傳送、分發、接收、解碼和渲染。而在傳送和分發的階段,由於網路抖動等多種不可控因素,導致了直播延時的不可控。
- 線上授課,學生提出問題,由於直播延時,老師都講到下一個知識點了問題才彈出來,只能返回重新回覆;
- 電商直播中,粉絲詢問寶貝資訊,由於直播延時,明明剛剛聽到主播開賣,卻就是搶不到;
- 賽事直播中,在別人的吶喊聲中才發現進球了…
很多直播開始跨平臺跨地域直播,如何實現異地直播,跨平臺直播,就需要一些推流和拉流的技術。推流是把採集階段封包好的內容傳輸到伺服器的過程;拉流是指伺服器已有直播內容,用指定地址進行拉取的過程。
目前業界直播採用的協議,一般把RTMP作為推流協議,把RTMP/HTTP-FLV作為拉流協議,延遲在3-5秒左右。而在H5上更多采用的是時延超過10秒的HLS系統。也就是說,當主播在直播間舉行一個搶購活動,你每次聽到主播喊出“三二一,上鍊接!”的時候,其實在直播現場中已經過了好幾秒了。
除了直播協議本身會帶來時延,傳統直播由於架構原因也會產生延時。傳統直播的技術架構分為3層,分別是單線的CDN邊緣節點、多線的CDN中心節點和承載一些增值服務的源站。整個直播從推流到拉流,一般排程系統會將主播切入到最合適的邊緣節點,邊緣節點進行收流,通過CDN中心節點轉推到直播的源站;此時,觀眾通過排程接入到拉流的邊緣節點上,靜態化的通過CDN中心節點回源到直播的源站。
但是,綜合體驗來看,以下三點並不適用於低時延的場景。首先最大的消耗是在觀眾側到CDN拉流邊緣的最後一公里上,這裡TCP協議並不適用於低時延。第二是基於靜態樹狀分發架構,處於對成本考慮也並不是特別好。第三是在整個直播源站上的轉碼,目前也有相對較大的時延,一般在500ms左右,這個也是低時延直播解決不了的。
“3、2、1上鍊接”背後的硬核技術:大規模超低時延
傳統直播技術遭遇高併發與低延時之間的瓶頸,阻礙了直播在一些場景的落地,已經不能滿足某些對互動要求更高的直播場景。直播產業的下一個升級:低時延直播技術正在興起,且有望成為直播技術的新焦點。
八仙過海,各顯神通,不同玩家以不同方式實現低時延直播,華為雲音視訊研發部門通過CDN傳輸的協議優化以及內部鏈路的動態優選、超低時延轉碼等技術的組合,把傳統直播3-5s的時延顯著的降低到800ms以內,轉碼時延控制在150ms以內。同時,超低時延直播對傳統直播能做到完全相容,減少對原有技術架構的衝擊,降低架構優化的成本。
架構解析
除了直播協議的選擇能夠減少延遲外,我們還可以通過一些架構的細節優化,進一步減少直播延遲,讓使用者有更好的觀看體驗。
以上架構設計,比較好的做到了對原有傳統直播架構的前向相容性,能夠維持原有的主播RTMP協議的推流。在直播的源站上面,對於媒體的轉碼以及一些功能的訊息回撥的通知可以無縫相容。與此同時,在原有直播協議的基礎上,對H5端擴充套件了對標準的RTC協議播放的支援,在iOS和安卓端支援私有的RTC協議的播放。
華為雲超低時延直播技術優化的核心有三點:
第一,最後一公里基於TCP對UDP計劃的改造,引入華為雲演算法,把傳統直播的時延降低到毫秒的數量級之內,同時能夠保證很好的抗損,做到流暢的體驗;
第二,把傳統的樹狀的靜態規劃排程架構改成智慧動態的網狀架構,這就帶來CDN內部分發回源的路徑是動態規劃的,而不是之前靜態規劃的鏈路;
第三,引入超低時延轉碼技術,最終將整個轉碼的時延由原來的500ms左右降低到穩定控制在150ms以內。
智慧動態網狀架構
為什麼叫做智慧動態的網狀架構?舉個例子,我們以三個觀眾訪問的路徑來做分析,比如一個主播是深圳電信的使用者,以原有的架構,會接入到深圳電信就近的邊緣覆蓋節點上,再推到中心節點,再到源站,而訪問觀眾會通過一個固有的靜態的中心獲取這個資訊。無論使用者和觀眾的距離有多遠,都會走到邊緣中心源站,然後再下行,需要經過5層節點的分發。
而以現在的架構,如果有一個觀眾是深圳電信的使用者1,通過動態的架構會把他實時排程到和主播推流節點相同的節點上來,他的訪問路徑是主播到B節點,然後再到觀眾,其實就經過了一條,整個鏈路的質量和成本都能得到很好的提升。對於廣西電信的一個使用者2,如果把他直接排程到推流點,整個網路將不可控,那麼動態智慧網狀架構會把他接入到就近的節點上。因為B到C之間的網路相對是可靠性更高一些,排程系統判斷這一塊的訪問質量是可行的,所以使用者2的訪問路徑是2-C-B,經過兩點。而如果是北京連通的使用者3,主播跟觀眾是天南海北的,這種情況下做就近的訪問可能對質量的損害會比較大,則還是會按照原有的方式去拉流,保證高質量的訪問。
智慧排程流媒體大腦
上面的例子是觀眾對於主播整體鏈路最終結果的呈現,但這背後還要依賴於一套基於流資訊的智慧排程系統。這個排程系統的架構基於在源站上搭建的智慧排程流媒體大腦,其主要由四大核心模組構成:
- 內容管理中心,可以理解為就是流媒體的眼睛,能夠通過邊緣實時流資訊的彙報,比如某個時刻有主播上線、什麼時候下線等訊息通知,準確地知道每一個主播的上線、每一個觀眾的接入,能夠清晰的知道這個流被推到哪裡,在全網的哪個節點之上。
- 質量地圖,用於構建整個CDN網路的節點間,包括使用者到節點間網路實時的狀態。通過下發一些排程任務到位於邊緣探測Agent的節點上,探測Agent發起週期性的探測任務,然後把探測結果上報給大資料中臺,最終實時分析出全網的覆蓋質量。
- 排程控制器,它掌握的是排程所依賴平臺的基礎資料,比如節點流量、節定規劃、以及使用者側的一些資料。
- 排程決策中心。前面三塊的輸出會作為排程決策中心的輸入。排程決策中心作為最終排程的大腦,會實時生成一個全網的排程策略,包括使用者接入的排程策略和節點間內部回源的策略,並下發到排程執行器上。最初華為把排程的執行器部署在雲上,後來為了打造端到端的低時延,把這部分下沉到了CDN的邊緣節點上,盡最大的能力去降低使用者之間排程的時延。
超低時延轉碼技術
說到視訊低時延,就不得不提視訊轉碼。目前,視訊轉碼已經成為各大直播平臺功能的標配。但由於終端使用者的網路情況不一,為了達到端到端的低時延,轉碼的時延也需要進一步降低。華為轉碼技術能將時延穩定控制在150ms以內,同時低時延的轉碼也支援高清低碼的技術,在同等畫質下,把播放端的位元速率降低30%以上,節省整個平臺的頻寬成本。基於高質量的畫面訴求,低時延的轉碼也支援畫質增強和ROI增強的功能,還能夠對畫面的細節和紋理做精確的定向優化。
伴隨5G技術的應用推廣,“直播+”模式向各垂直領域加速延伸,線上直播應用井噴式增長。傳統的直播在今年將轉換為超低時延直播,並率先在線上教育、電商直播、賽事直播及秀場類直播四個行業場景進行落地推廣。
2021年將會是傳統直播邁向超低時延直播轉折的年份,在今年底預計20%的網際網路直播將全面的升級成為超低時延直播。未來的2-3年,超低時延直播將全面替換傳統直播,最終引領一輪新的商業模式,引領直播行業新一輪的發展。
商業創新推動了電商直播行業的蓬勃生長,而支撐這些沸點場景和交易奇蹟的,必然是技術的巨大能量。相信在新技術的洗禮下,消費者的個人需求、消費環境、消費理念都能得到進一步升級。
618技術特輯(一)不知不覺超預算3倍,你為何買買買停不下來?如果你想了解為什麼每當大促的時候,我們的錢包總是被掏空?這背後到底是大家自制力不夠,還是電商平臺太會讀懂人心,我們不妨從技術維度,抽絲剝繭一探究竟。
618技術特輯(二)幾百萬人同時下單的秒殺,為什麼越來越容易搶到了?當消費者被電商的推薦系統虜獲後,他們又是如何保證大促期間,你能隨時隨地買到自己心儀的商品,以及上億的交易資料是如何有序地流通,保證你既能搶到,也能及時收到貨呢?這篇文章為你一一解密。