zoukankan      html  css  js  c++  java
  • 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之外的其它视频编码,哪只能
       采用原生开发了。

  • 相关阅读:
    HDU 2433 Travel (最短路,BFS,变形)
    HDU 2544 最短路 (最短路,spfa)
    HDU 2063 过山车 (最大匹配,匈牙利算法)
    HDU 1150 Machine Schedule (最小覆盖,匈牙利算法)
    290 Word Pattern 单词模式
    289 Game of Life 生命的游戏
    287 Find the Duplicate Number 寻找重复数
    283 Move Zeroes 移动零
    282 Expression Add Operators 给表达式添加运算符
    279 Perfect Squares 完美平方数
  • 原文地址:https://www.cnblogs.com/onlycoder/p/7297372.html
Copyright © 2011-2022 走看看