WebRTC原生開發和混合開發優缺點分析對比

來源:互聯網
上載者:User

標籤:通用   模組   二次開發   開發   windows   目標   音視頻   重複   模組開發   

WebRTC的出現,讓企業快速開發出一個支援全平台的音視頻程式成為可能。在WebRTC之前,企業想要開發出一個全平台的音視頻程式,難度,工作量非常大。使用WebRTC後,音視頻程式中一些通用的模組比如音視頻採集,播放模組,rtp,rtcp協議模組,都可以直接複用WebRTC現成的,不用自己再重複造輪子。這些模組開發難度不是很大,但是工作量非常大。使用WebRTC後,企業可以專註於最佳化流程,解決bug,實現業務需求。

目前,開發WebRTC程式有兩種途徑

  • 原生開發,自己下載WebRTC代碼,每個平台自己編譯。在WebRTC API基礎上自己再做封裝和二次開發。
  • 調用WebRTC javascript介面,WebRTC程式必須運行在支援WebRTC的瀏覽器中,用到的技術有javascript,html,css。windows,android,ios,linux可以共用一套代碼。


在下面的文章中,我們將詳細闡述WebRTC原生開發和混合開發之間的主要區別。


WebRTC 原生開發
WebRTC代碼是用C++開發的,如果採用原生開發,團隊中必須要有人對C++精通。而且如果要想能看懂和修改WebRTC代碼,只是會C++是遠遠不夠的,還要對流媒體技術很熟悉。WebRTC涉及的rfc文檔有20多個,如果沒有理論知識做支撐,WebRTC代碼真的不是哪麼容易可以看懂的。開發windows端,android端,ios端WebRTC程式,需要用到的技術和人員配置大概如下:

  • windows端,介面採用Qt或者DirectUI,直接使用C++介面調用WebRTC的功能,人員至少需要一個Windows用戶端開發人員和WebRTC SDK開發人員。
  • android端,介面採用android原生介面,使用jni技術調用WebRTC功能,人員配置方面至少需要一個安卓開發人員和WebRTC 安卓SDK開發人員。
  • Ios端,介面採用ios原生技術,使用oc調用WebRTC功能,人員配置方面至少需要一個ios開發人員和一個WebRTC SDK開發人員


綜上所述,可以發現如果採用原生技術開發,需要的開發人員還是比較多的,涉及的技術點也多,相應的測試人員的工作量也大,想要把三個端的用戶端全部做好,難度還是挺大的。

目前,WebRTC案頭版本穩定性和相容性做的還比較好。移動版本由於移動版本的chrome使用的人比較少,Google在這方面投入還不夠多,相容性和穩定性還有很多要提高的地方。如果你的應用程式手機型號比較複雜,哪只能使用原生開發了,你可以在WebRTC官方版本之上把相容性和穩定性做的更好。

安卓版本只有在安卓4.4以後的WebView才支援WebRTC功能,Ios版本的的chrome根本不支援WebRTC功能,據說Ios11版本的safari會支援WebRTC,但是在相容性方面和chrome的WebRTC會有些相容性問題。所有你的使用者還有比較老的手機的話,哪你也只能採用原生開發了。

        原生開發時,編譯出來的WebRTC開發包大小在3M左右,而採用混合開發的話,App最後打包出來的大小都是在30M以上,所以如果你的應用程度如果對程式安裝包大小有要求的話,也只能採用原生開發。
       最後,如果你的應該程式還要加上H265之類的視頻編碼,或者對視頻,音頻輸入源有特殊要求的話,都只能採用原生開發。
WebRTC混合應用開發

採用混合應用工發WebRTC程式,就是用javascript調用WebRTC介面,使用html,css來做顯示介面。目前使用Html5來開發App和傳統型程式也慢慢流行起來,比如React native技術。混合應用開發的好處就是一套代碼可以相容
windows,mac,ipad,ios,android,瀏覽器,一個全棧前端開發人員就可以全部搞定,開發工期比較短,難度也相對低一點。使用混合應用開發的缺點就是不能定製WebRTC底層,你只能使用WebRTC標準功能,如果WebRTC底層有bug,你也沒有辦法修改,還有一個缺點就是安裝包比較大。
    採用html5來開發WebRTC還有一個優勢就是你可以在手機QQ,安卓版本中直接跳轉,這意味使用者不用安裝任何程式,直接可以從或者手機QQ轉你你的程式,這對於推廣還是比較有利的。

結論
採用原生開發還是混合開發,沒有決對的好壞之分。這要根據你團隊研發人員的情況和勘探情況靈活對待。
1.如果團隊前端實力比較強,哪你就使用混合開發模式。
2.如果App面向的是的使用者量非常大,手機型號還不好固定,哪只能採用原生開發。
3.如果勘探是企業客戶,對安裝包大小不在意,手機型號也好固定。哪可以採用混合開發。
4.如果要對接監控網路攝影機之類的非標準音視頻裝置,或者要採用VP8,VP9之外的其它視頻編碼,哪只能
   採用原生開發了。

WebRTC原生開發和混合開發優缺點分析對比

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.