標籤:
本文主要介紹WebRTC選擇H.264的理由(我們翻譯和整理的,譯者:weizhenwei,校正:blacker),最早發表在【編風網】
支援原創,轉載必須註明出處,歡迎關注我的公眾號blacker(ID:blackerteam 或 webrtcorgcn)。
微軟近日宣布: Edge的ORTC開始支援H.264/AVC。
這是目前唯一能夠在Firefox、Chrome和Edge之間跨瀏覽器進行視訊通話的方法。VP8和VP9至多能讓你在Chrome和Firefox之間建立視訊通話。
對我們來說,當開發一個基於WebRTC的產品時,我們應該選擇什麼樣的視頻轉碼器?
去年的時候,答案可能是“VP8”。
幾個月前,答案可能是“看情況”。
現在答案是“除非必須用VP8,否則就用H.264”。
下面是做出如上決定的四個原因:
1.瀏覽器互操作
如果你希望你的服務能夠覆蓋儘可能多的瀏覽器,並且需要視頻功能,那麼H.264是你正確的選擇。再過幾個月, H.264將獲得所有瀏覽器廠商的官方支援,並就此一錘定音。
此外,你可以期待蘋果首先使用H.264,並在後面再考慮使用VP8,就像微軟現在在Edge上所做的那樣。
2.移動領域
相比於VP8,行動裝置更喜歡H.264。視頻轉碼器消耗相當多資源;為克服這個問題,行動裝置使用硬體編解碼。他們都支援H.264硬體加速,儘管開發人員並不總是能夠對此進行編程。許多行動裝置商對VP8知之甚少,這歸結為行動裝置上的WebRTC需要用軟體方式實現VP8。
基於這個原因,一些開發人員在行動裝置上用H.264替換VP8,特別是針對那些只在行動裝置上啟動並執行產品。
雖然我相信在新的晶片上VP8的效能正在提升,但是在已經存在的數百萬個行動裝置上支援VP8仍然是個麻煩的問題。既然現在所有瀏覽器都以各種方式支援H.264,那麼開發人員為什麼還要去支援那些必須使用VP8的行動裝置 App呢?
3.遺留視頻系統
遺留視頻系統主要是視頻會議系統,他們使用H.264轉碼器,絕大多數不支援VP8。直到今天,他們仍然通過一種特別的網關(MCU)支援WebRTC,或者根本就不支援。
視頻轉碼是WebRTC連通遺留視頻系統的主要障礙之一,這非常消耗資源。直接讓H.264在運行在各系統上是最容易的辦法,也是當前就可以實現的辦法。
這也是思科用Spark連通Firefox的原因。思科決定在WebRTC中使用H.264,而不是對VP8進行轉碼。
4.
流量
互連網上超過60%的流量都是視頻。這其中大部分不是即時視頻,而是像YouTube或者Netflix這樣的非即時視頻。
如今視頻流基本上都是H.264,某些情況下是VP9(YouTube使用VP9編碼)。
在iPhone上擷取視頻內容需要HLS協議,這再次意味著必須使用H.264轉碼器。
因此我們面臨兩種選擇:當我們想輸出視頻流時,是把WebRTC產生的視頻內容轉碼成H.264,還是直接在開始就使用H.264產生視頻內容。
你是否需要關注?
如果你的視頻服務是一對一的會話服務,沒有伺服器端做視頻處理,那麼你大可不必關注。在這種情境下,瀏覽器的最終協商結果對你來說已經足夠好了,並且很有可能是該特殊情境下的最佳選擇。
如果廠商在服務端視頻處理針對VP8進行大量投入,包括視頻錄製、混合、路由等,那麼把這些服務端裝置進行改造使其支援H.264可能很重要。對他們來說,轉向H.264可能是一個困難的決定,但卻是不得不做的決定。
WebRTC視頻轉碼器的未來?
一旦我們放眼未來,我們可能需要關注VP9。
然後就是開放媒體聯盟,他們致力於開發一款廣泛使用的下一代免專利視頻轉碼器。
從個人角度,我相當討厭H.264和它代表的一切。但是現在必須承認, 它留了下來,和WebRTC一起發展。
譯者:weizhenwei,具體詳見:【編風網】
Android IOS WebRTC 音視頻開發總結(七九)-- WebRTC選擇H.264的四大理由