V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Agora
V2EX  ›  程序员

各浏览器中的 WebRTC 表现对比

  •  1
     
  •   Agora · 2017-07-11 14:59:17 +08:00 · 16130 次点击
    这是一个创建于 2682 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本文译自: http://www.nojitter.com/post/240172714/webrtc-video-conferencing-in-what-browser-take-vi

    本文中我们将一起分析各浏览器对 WebRTC 支持的情况。下图是我 WebRTC 设备清单中的一部分,我们就以这张图作为切入点。

    Alt text

    下面我们来一个浏览器一个浏览器的分析。

    Google Chrome

    Chrome 还是整个队伍的领军人物。有些人抱怨 Google 不按照规范运行 WebRTC,可是话又说回来了,该遵循哪个规范呢?我们还是处在草案阶段,每个人都在为 WebRTC 规范做努力,但是现在还没有一个明确的规范。

    我想表达的一个观点是:如果你的浏览器有超过十亿的下载量,那么你所改动的每一行代码都会造成某些功能发生错误。这意味要是想改变整个 API 以及 WebRTC 的表现层要难上加难。要花费大量的时间。

    Mozilla Firefox

    Mozilla 通过自家的 Firefox 浏览器加入 WebRTC 阵营的时间可以说跟 Google Chrome 一样长。实际情况是,所有的功能也只是止步于可以工作这个层次。读者可以注意一下 Mozilla WebRTC 高级博客上面关于质量的内容。

    Microsoft Edge

    Microsoft Edge 浏览器支持 WebRTC 1.0,无论这里 1.0 指的是什么。它还支持 ORTC。但是主要是 ORTC,WebRTC 的优先程度排在它后面。

    我还是很费解微软这么做的理由是什么,我相信我不是唯一一个想不明白的人。

    对于大部分的性能,微软只是在努力达到并保持与 Chrome 相同的表现。Edge 浏览器的份额比较低,所以这是个聪明的做法—有公司开始在他们的产品中支持 Edge 浏览器,也有可能只是因为 Edge 版本的开发成本并不高。

    Apple Safari

    苹果刚刚加入 WebRTC 阵营中,宣布 iOS 11 和 Safari 11 中支持 WebRTC。

    但是苹果并不是全部支持,DataChannel 现在并不能使用,视频编解码是 H.264 ,而不是 VP8。而且这点可能不会发生改变。

    总的来说,WebRTC 现在已经覆盖所有的现代浏览器了。

    Microsoft Internet Explorer

    在这里,WebRTC 碰壁了。

    是的,我们可以用微软的 Edge 浏览器,但是这款浏览器只能在 Windows 10 上使用。不过人们好像还是很乐意换用 Chrome 浏览器的。

    当然如果能让 IE 也加入 WebRTC 大家庭是再好不过的事,但是可能永远不会发生。想要进行实时通信,我们可以使用插件或者独立的 PC 应用。

    封闭的应用

    当 WebRTC 不能用或者不能够满足需求时,你总是可以在封闭的应用中使用 WebRTC 技术。

    对于 iOS 和 Android 来说,你可以下载 WebRTC 源代码,然后在它的上面编写自己的应用,或者使用 WebView 这样的操作系统。

    对于电脑端来说,最通常的做法是使用 Electron,一个围绕 Chromium 搭建的开源应用容器。它可以让你的网页应用编程一个电脑应用,并且可以跨 Windows,Mac,和 Linux 系统使用。而且不管你用的是 IE 或者其他任何浏览器都可以,没有问题。

    说说你自己实际应用 WebRTC 的情况吧。

    18 条回复    2017-07-13 16:34:27 +08:00
    silencefent
        1
    silencefent  
       2017-07-11 15:04:03 +08:00
    居然 2017 年了还考虑 ie 的适配
    liuxu
        2
    liuxu  
       2017-07-11 15:04:50 +08:00
    @silencefent

    我司还在兼容 ie7
    Agora
        3
    Agora  
    OP
       2017-07-11 15:09:11 +08:00
    用浏览器做直播和视频通话的,有相当一部分是教育行业。教育行业的终端用户,甚至还有相当一部分比例在用 ie6...
    imn1
        4
    imn1  
       2017-07-11 15:15:05 +08:00
    没什么特殊需求的话,一般用户应该禁了 webrtc
    lzhr
        5
    lzhr  
       2017-07-11 15:23:43 +08:00
    @silencefent 看 IE 的市场份额,怎么能不考虑
    BoiledEgg
        6
    BoiledEgg  
       2017-07-11 15:31:37 +08:00
    @lzhr 告诉老板,别看 IE9-份额在国内还高达 20%,但是从用户画像上看,这部分人 99%不是我们的目标客户,而前端成本提升是 100%。
    liuxu
        7
    liuxu  
       2017-07-11 15:59:35 +08:00
    @Agora

    教育行业的痛,你懂
    t6attack
        8
    t6attack  
       2017-07-11 16:09:11 +08:00
    我也禁掉了。webrtc 会泄漏一些本机特征,包括本地 IP: http://net.ipcalf.com/
    binux
        9
    binux  
       2017-07-11 16:12:11 +08:00
    这个对比太泛泛而谈了,实际使用中有很多 API 不兼容,特性不一致的坑。
    至少两年前是这样的
    sgissb1
        10
    sgissb1  
       2017-07-11 16:12:49 +08:00
    不拿 webrtc 过来基于源代码级的二次开发,或深度改造都是逗逼行为。

    因为 webrtc 的代码,只有你去看了才知道多么的“强大”,简直要让人疯了。我都已经快改不动 bug 了!
    mathgl
        11
    mathgl  
       2017-07-11 16:30:14 +08:00
    @BoiledEgg 可能他公司的客户是企业系统,这种根本就不考虑浏览器升级的问题。
    initialdp
        12
    initialdp  
       2017-07-11 17:22:06 +08:00
    我们以前有个产品是基于 webRTC,后来还是放弃了。我们的基本结论是:TA 就是一坨屎!
    xing393939
        13
    xing393939  
       2017-07-11 17:28:42 +08:00
    webRTC 用来做多人视频会议还是挺不错的,浏览器兼容性参考这个更清楚: http://caniuse.com/#search=webrtc
    redsonic
        14
    redsonic  
       2017-07-11 17:30:25 +08:00
    每次同步完 chrome 的版本库编译前 第一件事就是把 webrtc 剔出去。
    lebowsk1s
        15
    lebowsk1s  
       2017-07-11 17:33:55 +08:00
    @initialdp 没那么夸张吧,我当时抽了 webrtc 的音频处理模块出来用,那音质真是杠杠的,感动得流泪
    ghostheaven
        16
    ghostheaven  
       2017-07-11 18:59:38 +08:00 via Android
    考虑到碎片化的安卓系统 WebView,iOS 和一堆国产浏览器的适配,这个技术现在还处于未普及的状态。
    给你的客户提供 Chrome 浏览器的安装包可能比技术上兼容古董级浏览器效率更高。
    initialdp
        17
    initialdp  
       2017-07-13 14:47:36 +08:00
    @lebowsk1s webRTC 的主要技术收购自 GIPS ( VoIP 领域响当当的企业,音视频处理一级棒),本来有很光明的前途。可恨被 G 家玩成了一坨屎。
    demobin
        18
    demobin  
       2017-07-13 16:34:27 +08:00
    @initialdp 能具体说说你们放弃 webRTC 软电话项目的原因吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5390 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 74ms · UTC 07:25 · PVG 15:25 · LAX 23:25 · JFK 02:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.