各浏览器中的 WebRTC 表现对比

2017-07-11 14:59:17 +08:00
 Agora

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

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

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

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 的情况吧。

16138 次点击
所在节点    程序员
18 条回复
silencefent
2017-07-11 15:04:03 +08:00
居然 2017 年了还考虑 ie 的适配
liuxu
2017-07-11 15:04:50 +08:00
@silencefent

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

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

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/374518

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX