本文來自Twitch Principal Research Engineer 沈悅時在LiveVideoStackCon 2018熱身分享,並由LiveVideoStack整理而成。在分享中,沈悅時介紹了Twitch的運營內容與產業規模,並從成本與架構方面介紹了國內外直播生態的差異。
文 / 沈悅時
整理 / LiveVideoStack
直播回放:
介紹Twicth平臺
今天的大綱主要是和大家分享一下中國和美國互動直播的區別。首先,我簡單介紹一下Twicth平臺。
Twitch是一個互動直播平臺,於2011年開始創立,大概是從2013年開始火起來的。
1,直播內容
Twitch平臺的內容和國內的虎牙鬥魚平臺非常相似,但其主要是以遊戲為主。
2,觀看數據量
下面這張圖是我們去年統計的真實的觀看量,每天的活動量大概在一千五百萬左右。
另外,就在今年,在E3上統計得出Twitch的單個頻道訪問量超過了一千七百萬,在Alexa上,通過統計單個用戶每天的訪問量和每個用戶的訪問頁面次數,我們的受歡迎程度目前排在全球第32位。這個排名自從2011年創立公司以來節節攀升。
3,產業規模
與國內的相比,Twitch是一個全球性的網站,從去年的數據來看,日用戶活躍量是1500萬,每年觀看時間三千五百億分鐘,平均每個人逗留的時間大概是一百分鐘左右。
與國內相比的差別
1,成本
技術會怎樣發展,基本上都是用成本來決定的。下面就給大家展示一個Twitch的成本結構圖:
從上面的圖中可以看出,我們的成本分為三大塊,就是內容、運營和人力。人力就是每個人的工資,這個內容和人力先不說,我們工程師就討論技術上的。技術成本分為是固定成本和流水成本;在美國的直播網站和中國的直播網站有一個很大不同的地方就是,所有美國直播網站的機房全都是自己的,CDN也是自己的。我們的固定成本就在轉碼器和Edge這兩塊上,我們的很多架構設計就是為了節省在這兩塊上的固定成本。流水成本就包括伺服器開銷,骨幹網開銷,ISP Peering等,據我的了解,在中國是不允許私人企業設骨幹網的,但這在美國是允許的,Twitch的機器和骨幹網均是自己架設的。
2,架構
剛剛簡單講解了一下成本的問題,下面會為大家分析一下我們的架構,首先介紹Twitch技術的一個賣點,就是我們是一個全球的網絡,誰要是想到我們這來開啟直播都可以。 我們在全世界20多個國家都布有機房,比如說一個人在澳大利亞做直播,他就可以接入到澳大利亞的機房,然後把它送到我們幾個大的中心,之後再做轉碼,最終在全世界進行分發。說到轉碼,是我們比較自豪的地方,比起CDN,我們可能是世界前五名,不能說是最大的,但是,能夠支持的同時上線的主播人數是很多的,這是我們比較自豪的。去年同時上線的主播數量大概有三萬多人左右,今年又一下又突破到六萬多人左右了。我們有幾萬臺機器分布在全世界各地,所以每一個機器的單機密度是非常重要的,為了既保證觀看質量,又能降低成本,我們引入了低延時HLS技術。另外一個方面,因為對碼率要求非常的高,但是由於不同地區的帶寬情況不一樣,所以我們重新定義了ABR的階梯,目前最高碼率的是1080p。
總結來說:
1) 我們有全球性的網絡,頻道數比較多,全球性分發,給每個主播同等待遇;
2) 我們的碼率很高,碼率是1080p;
3) 低延時HLS:相對於以前用的RTMP,HLS極大的節省了成本,但延時會有一定增加,目前在三四秒之內;
4) 我們做的ABR技術,可以自動偵測出你的碼率,根據帶寬等情況進行上下切換。
這裡面還有很多技術細節,由於時間有限,不能和大家聊太多東西,期待下次在北京能和大家見面,下次在北京我會詳細分享兩個內容,一個是低時延HLS,一個是QoE。
Q&A
Q1:Twitch在印度的用戶量怎麼樣,由於印度網絡質量差,抖動大,有什麼好的方法應對嗎?
A:印度就是網絡質量非常糟糕,導致的問題是看點播還行,看直播效果很差,我們在印度的量不是太大的,我們也在非常那個緊密的在關注印度的網絡狀況。
Q2:分級Replication設計是為了什麼呢?
A:我們有很多的頻道,同時上線六萬路,大主播觀看的人比較多,我們對大主播要把它分級,讓他在世界每個角落都能被看到;小的主播沒有辦法,沒有那麼多帶寬,我們就分級到比較近的地方。
Q3:Twitch在所有的平臺都是軟解嗎?
A:根據每個平臺會有所不同,但是能硬解儘量選擇硬解。
Q4 : 沈老師,您在用FFmpeg轉碼時,會如何設置線程數呢?
A:我們不使用FFmpeg,為什麼不用FFmpeg呢?我們分析了一下,用FFmpeg做直播轉碼,實時轉碼效率支持不高。我們有寫自己的轉碼,轉碼效率比FFmpeg要高70%,差不多1倍數左右。
Q5:VP9怎麼解決移動端解碼器耗電的問題?
A:耗電問題,這個是很好的問題。這個我們會爭取是硬解,但是也在測軟解,我們知道很多的低端的是軟解的,我們有可能是在做一個白清單,我們覺得這個我要給你硬解,需要讓你用VP9來解你就用VP9,要不然你還是回歸到H264。
Q6:你們對OBS有優化嗎?對源端推流質量管理有什麼優化方案?
A:我們對OBS沒有優化,主播如果很在乎推流質量,他會再去買個電腦專門用來推流,我覺得未來可能就是全部都是UDP來推流。
Q7:沈老師,你們對直播ABR算法有好的推薦嗎,有類似用深度學習來做帶寬預測嗎?
A:我看過這個MIT文章,它是針對點播來做得,而不是針對直播來做得,點播每次傳輸過去的數據是有很多的,這個用深度學習可能是有用的,但對於直播的話,用處不是太大,因為你都不知道你未來的碼率是多少。