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


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之外的其它視頻編碼,哪只能
   采用原生開發了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM