快手直播平臺演進之路

 

快手做爲目前世界上領先的直播平臺,在業務形態不斷拓展的過程當中,也經歷了直播架構的不斷演變,從徹底採用第三方解決方案,到目前自建源站、自研連麥解決方案、自建超高密度轉碼集羣,搭建起了一套高穩定性的直播架構系統,全程把控了端到端的體驗,不斷根據用戶體驗在各個技術維度上進行打磨。本文來自郭亮在LiveVideoStackCon2019北京站上的精彩分享。算法

 

文 / 郭亮緩存

整理 / LiveVideoStack網絡

 

你們好我是郭亮,目前負責快手的直播架構和算法團隊。很高興今天有機會給你們分享「快手直播平臺架構的演進歷程」。首先,我會簡單說明一下快手直播平臺的現狀;接着,我會詳細介紹快手直播平臺在近一兩年的成果以及架構的演進,以及對用戶體驗、QoS、QoE、成本等的影響;最後,針對5G+AI下的音視頻技術發展趨勢,拋磚引玉,和你們一塊兒探討。架構

 

1、 快手直播平臺的現狀併發

 

快手的DAU超過2億,直播日活超過1億,天天短視頻上傳量超過1500w。做爲世界上領先的直播平臺,擁有最大的活躍用戶數、每日直播房間數,以及同時在線觀衆數。面對如此大的用戶規模,如何打造一流的直播平臺,實現一流的直播體驗,是咱們團隊一直在深挖的課題。框架

 

在快手,併發在線的直播間數量和觀衆數量都是很是高的。這是因爲快手一直堅持的普惠原則,在分發策略上對中小主播的側重,再加上用戶間長期積累的信任關係,使得平臺活躍主播數量遠遠超過其它平臺;其次,快手的業務場景是多樣性的。多樣化的業務,包括連麥、PK、聊天室、KTV、遊戲直播等,覆蓋了目前音視頻技術的各個主流細分場景。此外,快手覆蓋的用戶羣很是廣,用戶遍及城鎮和鄉村,有着多種多樣的複雜網絡環境,這對於直播清晰度和流暢度提出了很是大的挑戰。爲了應對多樣化的業務場景和複雜的網絡環境,保證用戶直播的體驗,快手對直播系統作了大規模的投入和優化,在架構、自研協議、算法等幾個方面持續迭代。ide

 

目前業內通用的直播架構都是相似這樣的:各家CDN廠商均基於標準的RTMP協議,提供推流、錄製、分發等服務。同時一些第三方RTC服務提供商,也會提供連麥和PK的解決方案。站在集成的角度,快手理論上只要把業務集成到第三方標準服務上,同時完成UI、業務層的開發,就能夠搭建一套完整的系統,咱們一開始也是採用相似的方式知足了業務的基本需求。然而,隨着系統規模的擴大,咱們對用戶體驗的要求愈來愈高,這種方案會存在典型的木桶效應,主要痛點有:高併發

 

故障沒法自主調度採用CDN分發,主播推到某家CDN已經提早設定好。當CDN在局部發生可用性或質量降低時,沒法作到經過自主調度,無縫切換到其餘CDN,致使該區域用戶均沒法觀看這個主播的直播,會很是影響業務的可用性。工具

 

轉碼質量沒法統1、擴展難、成本高:業界轉碼方案多樣,質量與成本良莠不齊。爲了保證用戶體驗,一種可能的作法是要求各家針對快手統一架構與質量,這無疑存在工程量大、響應需求週期長的問題。不少CDN廠商提供的轉碼用軟件實現,成本很是高,也沒法彈性擴展。通過詳細調研與慎重考慮,在快手的業務與體量下,自建源站+轉碼集羣是最優的方案。性能

 

●推流質量不佳,難以優化:現有RTMP的推流框架,是基於TCP的,在弱網傳輸方面有數日生的弱點。而主播一旦卡頓,全部觀衆都會卡,所以咱們必須首先保證主播推流的穩定性。此外,在網絡層面直播推流與連麥也須要統一的傳輸策略,不然二者相互競爭,會直接影響直播與連麥的質量,本身跟本身打架。所以採用統一的上行推流協議勢在必行。而跟上面轉碼同理,要依賴於第三方來作統一的上行優化,是基本不可行的。快手擁有比較強的音視頻傳輸算法團隊,但願經過自研算法,提高直播推流的可靠性和穩定性,提高用戶體驗。

 

●可擴展性差:採用第三方方案,面臨着沒法快速遷移和擴展的問題。快手處於高速發展期,業務需求迭代頻繁,業務種類增加迅速,高擴展性是知足業務快速迭代的基礎。

 

 

基於以上這些考慮,快手迫切的須要自研更適合快手業務和技術形態的直播源站架構與私有傳輸協議,結合自研算法的落地,爲用戶提供高品質的直播體驗。

 

如下經過快手直播技術平臺發展的三個階段,詳細介紹快手直播平臺的演進之路。

2、 快手直播平臺的技術演進

 

1. 快手直播平臺1.0

 

快手直播平臺的1.0着重解決兩個短板。一個短板是快手沒法使用自研的推流協議,在這方面快手自建了源站,用本身的私有協議KTP進行推流。基於自建的源站,快手擁有了CDN調度的能力,這樣對容災和風險的把控就會很是強,解決了第二個短板。

 

A. 源站的穩定性設計

 

快手對穩定性要求很是高,自建源站必須有高可靠、高併發和易遷移的特性。高可靠主要體如今必須有必定冗餘,並且能夠自動且無痛降級到CDN,確保線上服務在各類異常狀況下的穩定性,如專線故障、流量突增、單家CDN質量降低等;高併發主要體如今支持單源站擴容,一個源站能夠快速穩定擴到一倍以上的規模,還支持水平擴展,可以支持快速的新建一個源站,這樣對房間的支撐能力和分發能力都有高併發的擴展,能夠很好的支持各類突發流量;易遷移則體如今快手是第一家基於兼容多家公有云基礎平臺設施的自建源站,能夠很好的規避各類風險,包括穩定性和質量風險、商務風險等,能夠同時兼容多家公有云平臺的基礎設施。

 

 

B. 基於KTP的推流

 

KTP協議是快手自研的傳輸協議,支持直播推流、RTC實時音視頻通訊、短視頻上傳等多種業務。去年快手的周超博士在ArchSummit上有一個詳細的分享【快手多媒體傳輸算法優化實踐】。KTP是快手基於UDP的自研傳輸協議,用於優化快手直播推流、PK/連麥等業務的體驗。該協議主要包括網絡控制部分和信源信號聯合優化部分,包括擁塞控制,視頻清晰度、流暢度相關的聯合優化,對該協議有興趣的同窗能夠參考上述連接的介紹。經過跟各類公開協議的對比PK,不管是RTMP,仍是如今比較熱的QUIC協議,快手KTP都有諸多明顯的優點。

 

 

C. CDN智能調度

 

自建源站賦予了快手CDN調度的能力,即各家CDN都須要來快手自建源站進行回源拉流。快手源站經過控制各CDN的流量比例,在質量和成本間取得最好的折衷。然而,快手體量龐大,須要同時使用多家CDN,而各家 CDN 的質量、價格良莠不齊,以及常常有一些不可預知的突發情況,所以,經過人工調度的方式,顯然是沒法接受的。快手經過自研智能CDN調度系統,精確捕捉 CDN 與用戶的動態變化,從而更合理地利用CDN 資源,且大大下降觀看故障時長,節約大量人力監控和維護成本。

 

二、 快手直播平臺2.0

 

快手直播架構1.0,一方面,使用自研協議KTP來提高質量;另外一方面,經過CDN的智能調度算法,必定程度保證了穩定性。快手的直播平臺2.0則主要解決連麥問題。因爲業務不斷在提出各類需求,對體驗要求高,若是使用第三方的方案,在產品迭代速度上會受比較大的影響。在快手直播平臺2.0階段,快手重點投入到了自研的RTC方案中。在RTC場景中,快手但願達到400毫秒如下的端到端延遲,有很好的丟包無感知特性,同時直播/連麥能無縫切換,支持PK和K歌等高級功能。

 

 

A. 音頻優化

 

在音頻處理上快手除了有本身的3A算法外,還作了針對高音質的回聲抵消和去噪。另外一方面,快手也具有KTV的功能,全民K歌、唱吧相似的混響效果都徹底知足,同時部分效果針對不一樣K歌人羣作了專業級調校的音效。

 

音頻算法方面,快手設計了自適應碼率算法,對主包和冗餘包在不一樣網絡下的配比、切換的時機等作了精細的調整,在jitter控制層面,支持音樂場景和通話場景下兩種jitter模式無縫切換的雙jitter模式。

 

 

B. 基於KTP的連麥

 

快手的連麥也是基於KTP協議的。與直播同樣,KTP同時作了網絡控制以及信源信道的聯合優化。然而,與直播相比,連麥對延遲的要求更加苛刻,KTP針對連麥這類RTC場景作了深刻的優化,包括對網絡狀態感知的流量控制算法(NATC)和對編碼質量感知的碼率自適應算法(QARC),支持動態碼率、幀率、FEC/ARQ等,同時還支持多人多鏈路聯合優化、ICE、LTRP等技術。與國內一線RTC的競品對比,不管是連麥綜合質量(清晰度、延遲、流暢度),仍是網絡響應速度上,基於KTP的方案,均有比較明顯的優點。

 

 

另外一個須要考慮的問題是直播與連麥的平衡,這依賴於方案的選擇。一類PK連麥使用的是第三方的解決方案,傾向於服務端混流的方式,另外一類採用的是主播端混流的方案,快手採用的後者,也就是主播端混流方案。

 

在服務端混流,一個問題是成本比較高,可擴展性也差。另外一個是在快手的業務場景中,直播連麥發生切換時,體驗不佳。在主播端合流,客戶端需推一路延遲能夠較大的直播流,同時推一路低延遲的實時連麥流。此時,直播和連麥兩路流自然的造成了競爭,如何平衡兩者的關係,也直接影響着直播與連麥的質量。在KTP中,經過實時動態的交換直播流與連麥流的網絡狀態信息與流控狀態信息,從而聯合做出最佳的決策。

 

至此,快手基本上全部的方案都是自研的,包括快手源站、KTP、直播/連麥方案等,快手直播平臺2.0的使命也完成了。

三、 快手直播平臺3.0

 

接下來介紹的快手直播平臺3.0,這個版本的重點則是快手的直播伴侶、轉碼集羣和遊戲多碼率自適應。

 

給你們分享一下快手上游戲品類的數據,目前快手遊戲直播的日活是3500萬(2019年10月快手遊戲直播日活增加到4000萬),每個月開播的遊戲主播超過了200萬。用戶對遊戲直播的剛需,使得它日漸成爲一個很是重要的場景,須要咱們團隊對這個場景作深刻的優化。

 

 

A. 直播伴侶

 

首先介紹的是快手的直播伴侶。直播伴侶支持多終端(PC、iOS、Android),以及多種模式的投屏,支持超清、高清和標清多檔位的推流。這些和虎牙、鬥魚等專業的遊戲直播比較相似。

 

此外,快手還有豐富的主播工具,例如語音播報、主題掛件、競猜、榜單等,使得快手直播伴侶有一個很是豐富的產品形態。

 

 

B. 超高密度直播轉碼集羣

 

爲了保證清晰度,遊戲場景的原始推流碼率通常都比較高,分辨率要求達到1080p@60fps。但若是讓每一個觀衆都看藍光或超高清碼流,不少用戶會因爲網絡帶寬不足而播放卡頓,或者手機性能不足致使的解碼渲染卡頓。另外,帶寬成本將很是高。同時,隨着算法的演進,在轉碼過程當中應用窄帶高清算法能夠達到即下降碼率又提高質量的效果。而因爲雲廠商廣泛採用軟件轉碼的解決方案,成本很是高。在快手如此體量的前提下,自建基於硬件轉碼集羣就變得很是重要且迫切。

 

 

在轉碼方案的選型上,咱們作了大量的調研與實驗,並與業界的最佳實踐作了不少細緻對比(感謝Twitch沈悅時博士提供的經驗分享)。以下圖所示,能夠看出,各類方案均有本身的優缺點。

 

整體來講,軟件方案質量最好,成本很是高;基於ASIC或FPGA的方案,轉碼質量目前沒法達到咱們的要求;基於GPU的方案,雖然畫質比軟件略差,但有高密度、低成本、產品方案成熟的優勢。

 

通過多方權衡,快手最終選定了用GPU的方案。這時又面臨GPU方案的二選一:Nvidia VS. Intel。在當時,Nvidia的P4和Intel的Xeon E3是兩個可選的方案,通過數輪優化後,對比下來,兩者轉碼質量相差並不大。但因爲咱們的源站建設在雲端,雲廠商有不少的P4卡儲備用於AI計算。而因爲E3在雲端主要作媒體處理,AI方面用的並不普遍,雖然它成本比較低,但云廠商都是沒有儲備的。所以咱們的P4方案是採用雲廠商提供的設備,但E3的方案則須要在自建IDC部署,這樣就須要咱們的IDC到雲廠商有一個大容量的專線,專線的穩定性、容量這些都是須要考慮的因素。通過仔細的評估,快手決定採用E3+P4的混合方案,兼顧質量、成本和穩定性。

 

 

固然,這些方案並非拿過來就能夠直接用的,結合快手的業務特性,咱們和Intel以及NVIDIA一塊兒聯合作了很是多針對性的優化。下圖是咱們上線後的一個簡單狀況:轉碼的峯值是兩萬路以上;成本上只有軟件成本的四分之一;畫質和X264的Medium至關;穩定性方面,採用了混合的方案,有完善的降級(fallback)機制。例如,在硬件問題上,不管是單卡故障、機房故障、仍是專線故障,均可以幾乎無縫的降級,確保線上的用戶體驗不受影響。

 

目前快手也在調研下一代硬件轉碼解決方案,其中IntelE3的下一代產品還在開發中,NVIDIA T4的HEVC的轉碼質量較好,可是密度還不夠高,成本也達不到咱們目前的要求。FPGA、ASIC方案的編碼質量須要進一步優化。咱們也會在硬件轉碼解決方案領域作持續的關注,包括對結合AI和圖像處理能力,對下一代編碼標準的支持,爲下一代快手的直播轉碼系統作出最優的一個選型。

 

 

C. 多碼率自適應

 

有了多路轉碼流,咱們就能夠在端上採用多碼率自適應技術,基於用戶的終端設備、網絡狀態等,動態選擇最佳的碼率檔位,在觀看的流暢度和清晰度之間,取得最佳的tradeoff。

 

 

與點播場景不一樣,直播的多碼率面臨着不少新的挑戰,例如直播流是實時產生的,在帶寬估計方面會面臨數據不足引發網絡空閒致使估不許的問題;爲了保證直播的實時性,客戶端的緩存通常也比較小,從而對網絡的抗抖動能力不如點播場景;此外,快手的直播推流是基於KTP的,支持推流的動態碼率、幀率自適應,而這些信息在客戶端是不可見的,當客戶端發生卡頓時,難以斷定是由於推流卡頓仍是拉流帶寬不足致使。另外,傳統的直播多碼率自適應是基於HTTP切片分發的方案(如DASH/HLS),主要問題是延時大、國內CDN支持很差、可擴展性差。

 

爲了應對這些新問題,不一樣於DASH和HLS,快手提出了基於流協議的多碼率自適應架構,從而大大下降端到端延遲。此外,爲了作到網絡感知上的千人千面,咱們的傳輸算法團隊還設計了多狀態、多目標的碼率自適應策略,從而爲不一樣的用戶提供不一樣清晰度、延遲、流暢度的自適應策略。咱們將在LVS2019深圳站爲你們更詳細的介紹這個協議的研發和上線歷程,歡迎感興趣的同窗關注一下。

 

 

以上即是到目前爲止,快手直播平臺的演進之路。

 

咱們的團隊目前在傳輸算法、音頻算法、實時音視頻通訊、下一代轉碼平臺等方面持續深刻優化。例如在傳輸算法方向,咱們的團隊今年與清華大學合做發表了三篇CCF-A類高質量學術論文,包括與清華大學媒體所合做發表了兩篇ACM MM (ACMInternational Conference on Multimedia),利用深度學習,共同探索了基於質量感知的自適應問題和直播調度;以及與清華網絡所合做的期刊TON (IEEE/ACM Transactions on Networking),以控制論與排隊論爲理論基礎,研究了多碼率自適應問題,優化觀看流暢與清晰度。另外,對於快手孵化的新業務,如小遊戲、A站、海外產品等,咱們創建了直播中臺,對新業務輸出成熟先進的直播解決方案。

3、 快手直播平臺的將來發展

 

最後簡要聊下5G+AI下直播技術趨勢,拋磚引玉。在5G網絡下,帶寬愈來愈高,延遲愈來愈低;在硬件基礎設施上,機器的算力愈來愈強,基於AI的各類算法也愈來愈強大,能夠支撐更復雜的算法上線。所以,基礎體驗會有一個大幅度提高,在快手上將會看到更清晰,更流暢的直播。這一方面源於編解碼技術的不斷演進,譬如說H264到H265,再到如今正在標準制定階段的H266;另外一方面,AI技術和視頻處理以及編解碼的結合,讓視頻主觀質量上提高更多;最後是網絡條件的改善,包括基礎設施的改善以及5G時代的到來,同時更多先進的算法和協議的落地,都將提高直播的體驗。

 

 

除了現有傳統的直播方式外,5G+AI會給直播帶來更大的想象空間。例如快手最近線上的一個功能:虛擬形象3D直播。以前這類直播或是一些電影拍攝中,都是使用一些可穿戴設備,模擬一我的的動做,加上配音演員實現相似的效果。如今快手已經經過技術擺脫了對設備的依賴,經過一個普通iPhone的攝像頭或者PC電腦的攝像頭,就能夠實現對人臉、表情和肢體的識別,作出更多擬人的動做,對二次元以及不肯意露臉的主播有一個比較大的體驗提高。

 

同時,咱們也在自研經過聲音轉換技術擺脫對聲優的依賴,使得快手任何一我的的聲音均可以轉化到目標的聲音上。咱們也但願這些技術能早日成熟,提高整個虛擬直播的體驗。

 

 

5G的時代,泛在的無線網絡可讓人們隨時隨地看電視。快手也在不斷進行這方面的探索。今年的「十一」閱兵,快手進行了7路特殊視角的70小時直播,總觀看人次超過十億。咱們讓更多的用戶透太小屏幕感覺國家正在發生的事情,正如咱們最新的廣告語「在快手,看見真實的中國」。

 

 

以上即是我演講的所有內容,但願與你們在5G+AI的技術浪潮中共同探討直播架構的後續演進。

相關文章
相關標籤/搜索