搭了一个 WebRTC 语音聊天室,效果惊人

2022-01-17 09:15:10 +08:00
 bmpidev2019

搭建了一个基于 WebRTC 技术的语音聊天室。测试了下和一个沙特阿拉伯人聊了一个小时,出奇的稳定,语音质量也很好,和国内的人聊也都很稳定,不比 zoom 与微信差。

比 App 的优势好在无需注册,分享房间链接,用浏览器打开即可聊天,用完一切就消失了,隐私性好。

测试地址: https://free4.chat/

开源仓库地址: https://github.com/madawei2699/free4chat

此网站是后端基于 kraken,它本身又基于 Go 语言中 pion 这个 WebRTC 的库,前端基于 Mornin,我把搭建的操作流程都放入了项目中的 infra 目录中,如果你要自己搭建的话,可以参考。

不过目前的功能只是我想要的一部分,所以后续可能会添加一些功能,目前想到的有这些:

如果你对 webRTC, peer-to-peer(P2P), real-time collaboration(CRDT), distributed system 或 robot design 感兴趣,欢迎关注或参与进来。

说效果惊人是,测试了一天,语音通话质量出奇的好,因为一个房间大多不到十个人,语音通话质量不仅稳定而且不比 zoom 、腾讯会议、微信等差(个人及测试的人感觉)。

另外一个有意思的是服务器,后端服务包括 coturn 都部署到一台 1 核、1G 内存的 AWS 服务器上。目前测试的效果是服务器毫无压力,甚至可以降级到 512M 内存的机器。

最终昨天大概有近一千人访问,创建了上千个房间,服务器始终负载没怎么变化,可能这就是 P2P 的优势吧。

18875 次点击
所在节点    分享创造
82 条回复
bmpidev2019
2022-01-17 18:05:33 +08:00
@qq316107934 ipv6 应该不支持吧,不知道底层的 pion 是否支持
@HXM 服务器在新加坡,降噪得靠耳机和麦了,浏览器做降噪的方案不知道有没有
@Chism 一对一聊天可以用这种模式,类似于游戏里组队 pk😂
ugpass
2022-01-17 18:33:29 +08:00
关注下~
04huang
2022-01-17 20:32:50 +08:00
能否出一个更加具体的搭建教程。。TLS/SSL 那部分不是太明白 [不太想用 CDN] ,后面倒是没啥问题。。
silerLee
2022-01-17 20:43:10 +08:00
简洁又好看. 很有意思的东西
over140
2022-01-17 21:26:36 +08:00
不错,这个 Mornin 也是我们团队和 Fox 团队一起弄的,欢迎大佬来 Mixin 搞开发~~~
bmpidev2019
2022-01-17 21:33:29 +08:00
@over140 大佬现身了,我只是用你们开源的搭建了这个网站,感谢你们的开源精神👍期望之后能给你们贡献代码😄
hanguofu
2022-01-17 23:51:22 +08:00
谢谢分享!期待加上 Room 的功能。
Bastionbee
2022-01-18 00:13:42 +08:00
刚刚试了一下,在 se2 上用 Safari 中打开,可以进行后台语言,发热量很小,延迟比微信低
mayli
2022-01-18 04:28:12 +08:00
我记得 webtrc 有个 demo 就是这个?
https://webrtc.github.io/samples/src/content/peerconnection/audio/
N032138
2022-01-18 09:00:40 +08:00
期待一个能使用的 docker 镜像
XTTX
2022-01-18 10:35:56 +08:00
terraform+ ansible + docker 可以做成商用版,付费自动帮忙部署。 只要语音成本低,应该有市场的。我以前了解过一些语音 sdk 商, 价格 1000 分钟, 4 到 7 块。 双向收费,3 人通讯要收两份钱。
bmpidev2019
2022-01-18 11:53:48 +08:00
@XTTX 没想到这都可以商业化,实际上这个技术挺成熟的,费用也没那么高,不知道为啥收费这么贵,我这服务器全部费用也才 5 美刀一个月,能支持 100 多个人实时通话应该没问题
bmpidev2019
2022-01-18 11:55:16 +08:00
@XTTX 一开始我就准备用 IaC 部署的,后来因为觉得没必要,就一台服务器手工部署半天搞定(熟练估计半小时搞定),所以只是记录了操作指南
XTTX
2022-01-18 12:33:41 +08:00
@bmpidev2019 #52 国内能用上实时语音的不是游戏就是社交类 app 或者 saas, 估计 sdk 厂商都觉得这类客户钱多,可以挤。

声网去年因为提供 Clubhouse 语音 sdk, 股价一度到了 100+美金。
他们需要到处部署节点,让节点离终端消费者更近。收费高,但是这样还是连续亏损。 他们收购环信,IM sdk 商。
我以前完全不懂技术的时候,觉得即时通讯+实时语音是多么高深的技术。 可能外行人也这么觉得,所以愿意高额支付 sdk.

我几年前想搞一个 IM 产品,所以对这些 sdk 商有一点了解。 他们的 IM 消息是按条计算的, 因为法律要求, 需要在服务器上存留一定时间。

除了按使用量收费,我觉得一次性付费部署还是有市场的,因为很多初创项目根本支付不了那么高昂的费用,也不需要极致的延迟。

========================================

“从财报来看,该公司收入成本在增加。2021 年第三季度,声网收入成本为 1570 万美元,比去年同期的 1160 万美元增长了 35.5 %,主要原因是随着公司扩大业务规模,带宽和协同部署成本增加,以及服务器和网络设备的折旧。此外,2021 年第三季度,声网在 2021 年第三季度的运营费用为 5040 万美元,较上年同期的 2320 万美元增长 116.9%。”
bmpidev2019
2022-01-18 12:51:34 +08:00
@XTTX 语音要存储的确会导致成本飙升,还有审核的问题,我这个站很简单不需要考虑这些,也没有存储,如果做 sdk 肯定有很多别的要求,但只是做实时语音通讯技术倒不复杂(底层还是挺复杂的,但技术已经发展了十多年来,现在比较成熟)
XTTX
2022-01-18 13:49:43 +08:00
@bmpidev2019 #55 语音不需要需要存储,文本的消息需要存一个星期吧。 隔行如隔山,我几年前还花了几千块“咨询”一个所谓的专家,问这块技术门槛高不高。他说高得很,建议用付费 sdk. 就没了。。。。

真是谢谢你。 等我把前端搞完,好好研究一下。
bmpidev2019
2022-01-18 14:08:53 +08:00
@XTTX 有没有研究过相关法律法规?服务器在国外的话需要遵循哪些条款?
lqzhgood
2022-01-18 14:18:52 +08:00
问问群聊的 p2p 怎么实现的? 单人的数据全部发给其他人么?
bmpidev2019
2022-01-18 14:28:09 +08:00
@lqzhgood 你查查 sfu
XTTX
2022-01-18 15:34:37 +08:00
@bmpidev2019 #57 国内公司需要 ICP 证,国外管不了。 香港也不用。 以前研究过, 有专门办理这种证的中介,几千到万元不等。 办公司才需要这些证。

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

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

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

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

© 2021 V2EX