標籤:
本文主要介紹VP9(我們翻譯和整理的,譯者:weizhenwei,校正:blacker),最早發表在【編風網】
支援原創,轉載必須註明出處,歡迎關注我的公眾號blacker(ID:blackerteam 或 webrtcorgcn)。
VP8和VP9是由Google開發和推動的視頻轉碼器。直到最近,這促使我和周圍客戶產生一系列有趣的對話:是否採用VP9?何時採用VP9?是否應該用H.264代替VP9?
這個VP8對VP9的話題往往導致誤解,因此先讓我把事情排序。
首要的事情放前邊:
1.VP8目前是WebRTC的預設視頻轉碼器。超過90%的WebRTC視頻會話使用VP8。
2.VP9大約從Chrome 49官方宣布可用,但它還不是WebRTC的預設視頻轉碼器。
3.VP8和H.264並駕齊驅。
4.從視頻壓縮品質來看,VP9要優於VP8。
5.VP8視頻壓縮消耗較少CPU資源。
考慮到以上事實,可以推出如下結論:
你可以因為以下兩件事之一(或全部)而選擇遷移到VP9:
1.提升視頻體驗品質。
2.減少視頻所需碼率。
那麼,讓我們來看看這兩個選擇。
1.提升視頻體驗品質
如果你對你的服務所需頻寬感到滿意,那麼在同樣頻寬量的情況下,使用VP9代替VP8進行視頻編解碼,所得到的視頻品質會變得更好。
這在何時有用?
·當使用者可用頻寬受限時。設想500 kbps或者更少的頻寬--比如蜂窩網路或擁塞網路。
·當你計劃支援更高解析度或更好網路攝影機時。
2.減少視頻所需碼率
另一種選擇是使用VP9進行視頻編解碼,但同時把視頻品質維持在原有VP8的水平。由於VP9更有效率,它能夠在維持相同視頻品質的情況下減少碼率。
這在何時有用?
·當你想開發低級市場,把業務擴充到頻寬受限地區時。設想這種情況,一項來自發達國家的服務要向發展中國家擴充。
·當你想服務企業客戶,而該客戶需要從同一台裝置發起多個平行視頻會議時。在這種情況下,互連網頻寬變得相當稀缺。
WebRTC預設如何處理碼率/品質關係?
有些事情經常被忽略。我數十年前就知道這些事,但是後來就忘記了,直到最近才又想起來。那時我正在網上對WebRTC的VP8和VP9進行比較。
企業視頻會議的標準做法是永遠不要使用比所需更多的資源。如果你試圖發送VGA解析度的視頻,那麼任何信譽良好的會議系統都不會產生超過1Mbps的碼率——實際上要比這更少。其原因來自於目標市場和時間選擇。
企業視頻會議已經存在二十多年。它誕生初期,1 Mbps頻寬的會議串連是大多數企業夢寐以求的。採購視頻會議裝置的公司需要在裝置之間並行支援多個視頻會議會話,並同時為每個公司員工維持合理的互連網串連服務。例如一個常見做法是:當每季度的分析師會議召開時,公司會減少普通員工的互連網串連數,以確保為視頻會議合理分配網路頻寬。
直到今天,大多數具有遺留視頻會議系統的企業都會限制瀏覽器中WebRTC的碼率,就是由於上述原因。
然而,WebRTC是基於互連網思維發展起來的。在互連網世界,你得到你所給予的。這就是為什麼WebRTC較少處理最大頻寬節流設定,而更多關注可用頻寬。你會發現Chrome使用VP8編碼VGA視頻時,消耗多達1.77 Mbps的頻寬。
這其中的差異意味著當你轉向VP9後,WebRTC將會提升視頻體驗品質,而不會影響到你原有部分。
這裡有件事需要注意:後端視頻處理對頻寬變化更敏感,這時候仍然需要基於單個視頻會話限制頻寬。
所有魔法都需要代價
我們甚至還沒有討論SVC,它看起來更像魔法。你從VP8轉向VP9,於是生活更加美好。
然而,就像所有魔法一樣,VP9的美好需要付出代價。首先,VP9還不如VP8穩定。儘管這在未來會得到改善,但是你現在應該考慮如下挑戰:
·如果你認為VP8非常耗費資源,那麼VP9也更加消耗資源(CPU)。
·VP9還沒有實現硬體加速,這將是一個挑戰。(VP8通常也不支援硬體加速,但是我們正在應對它)
·我猜測移動領域可能不大歡迎VP9,不過不太確定。
·微軟的Edge瀏覽器近期內將不會支援VP9。(如果你在乎這個的話)
有時我願意付出這種代價——這完全取決於問題的應用情境。
譯者:weizhenwei,具體詳見:【編風網】
Android IOS WebRTC 音視頻開發總結(八十二)-- VP8對VP9,品質還是碼率?