分享分三個部分,首先討論一下為什麼要關注位元速率控制、其次是巨集觀上怎麼做位元速率控制,最後是介紹下微觀上怎麼做位元速率控制。
我們先看一下個直播的乙個簡單的過程。
第一,位元速率控制對清晰度有影響。我們通常的概念是清晰度越高位元速率越高,要求使用者的下行的頻寬更高。
所以總結一下我們需要控制位元速率。位元速率控制的目的就是在一定的頻寬條件下,需要使每乙個位元都能夠發揮它的作用,把它分配到最需要他的地方,從而提公升使用者的**體驗。
首先看一下在巨集觀的位元速率選擇上,如何去根據位元速率選擇乙個最佳的解析度。
如果關注過阿里雲的直播,會看到轉碼的建議上會給出很多不常見的解析度,比如說432p、648p這樣的解析度,這些解析度通常能在相應檔位的位元速率上得到很好的清晰度。
說到微觀上的位元速率控制的時候,第一件事情就是如何將位元速率在很多幀間進行分配。
vbr在大規模直播中也會帶來一些問題,這張圖是在世界盃的開幕式的時候一張cdn的頻寬的分布圖,橫座標是時間,縱座標是cdn的頻寬。
這個圖就可以看到兩個非常明顯的波動,第乙個發生在中場休息,第二個發上在23:00,開幕式結束,比賽正式開始前。第乙個波動很好解釋,因為中場休息時很多觀眾離開,中途的精彩進球會回來一部分觀眾,下半場開始又有很多觀眾繼續**。在前面的波谷就不太好解釋了,通過觀察了位元速率的分布圖,我們發現當時位元速率非常低,實際上,在這段時間正好是普京講話,這是乙個相對靜止的畫面,由於採用了vbr,位元速率發生了劇烈的波動,從而引起頻寬劇烈波動。
這種波動對通常的直播是沒有問題的,不同的使用者在看不同的直播,所以位元速率的峰值疊加起來會趨向於位元速率的平均值。但是世界盃的場景下,有70%的流量都**相同的直播內容, cdn的頻寬非常高,這使得cdn的頻寬隨著位元速率的波動而波動。通常的cdn通常會使用當前的水位來評估乙個新進使用者應該放在什麼cdn節點,或者說根據一些歷史的狀況估計cdn放在什麼節點。在世界盃中,這個問題通過cdn引入新型的排程策略來解決。
SkyWalking為超大規模而生
譯者 董旭 本人 熱心的朝陽群眾 skywalking做為apache的頂級專案,是乙個開源的apm和可觀測性分析平台,它解決了21世紀日益龐大 分布式和異構的系統的問題。它是為應對當前系統管理所面臨的困難而構建的 就像大海撈針,skywalking可以在服務依賴複雜且多語言環境下,獲取服務對應的指...
訪談 阿里超大規模Docker化之路
林昊 畢玄 阿里巴巴研究員,平台架構部負責人,服務框架 hsf 作者,異地多活專案負責人,目前致力於資源統一管理排程系統建設。眾所周知docker技術這幾年大熱,但是過去相當長的一段時間內,阿里內部技術人員只能自己私下玩玩,沒法在阿里內部生產環境使用docker,因為docker要求的os版本和核心...
Azure超大規模資料庫入門
雲的優勢之一是規模。我們不會將三大雲平台稱為超大規模。他們在全球擁有龐大的資料中心,擁有數百萬台伺服器,這些伺服器可以視為計算和儲存池。現代的分布式應用程式可以執行在許多計算核心上,每個核心都有自己的記憶體,所有定址核心都達到了tb級。我們從構成雲的所有物理基礎架構中抽象出來,將我們使用的所有內容都...