Android IOS WebRTC 音视频开发总结(七九)-- WebRTC选择H.264的四大理由
本文主要介紹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的移動應用呢?
?
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的四大理由的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [ROBOT] python libra
- 下一篇: 【Bitmap Index】B-Tree