技术与 WebRTC
Krona.Chat 基于免费开源 Janus 媒体服务器上的 WebRTC 实时直播构建。媒体流在 Janus 服务器之间的负载均衡由我们自主研发:视频流自动分配到不同地区的数百台服务器上,同时延迟保持在 1 秒以内。
Janus:免费开源的 WebRTC 媒体服务器
视频流通过开源媒体服务器 Janus WebRTC Server 传输。它是免费的:无论是上线时,还是服务器、模特和观众数量增长时,都无需支付许可费。
Janus 以 SFU(Selective Forwarding Unit,选择性转发单元)方式工作:模特的一路输入流被转发给众多观众,无需为每位观众单独转码。因此,单台媒体服务器即可承载大量观众,视频以极低延迟送达观众。
Janus 服务器之间的媒体流负载均衡
Janus 本身无法在服务器之间分配视频流——我们在 Krona.Chat 平台中自建了媒体流负载均衡。借助它,媒体服务器作为一个集群协同工作:
数百台服务器
负载可分摊到数百台媒体服务器上——增加服务器即可承载更多直播和观众。
按地理位置自动分配
视频流自动分配到不同地区的服务器,更靠近模特和观众。
视频流自动恢复
任何服务器都可以重启:它所承载的所有视频流都会自动恢复。
服务器变更无需停机
新服务器可轻松加入集群,任何服务器也都可以移出集群进行维护。
市场上没有替代方案
市场上没有基于免费媒体服务器、支持多服务器 WebRTC 流负载均衡的现成直播平台:已知方案都运行在单台媒体服务器上,无法通过增加服务器来扩展。
Krona.Chat 的多服务器方案在技术和拥有成本上都更具优势:您无需支付媒体服务器许可费,低延迟视频通过您自己的服务器传输,而不是按 GB 计费的昂贵 CDN。
用 WebRTC 取代 HLS:零卡顿的实时视频
使用 HLS 或 DASH 推流时,视频到达观众要延迟数十秒。WebRTC 实时传输视频流,延迟低于 1 秒。这对视频直播站点至关重要:模特对聊天、打赏和 Lovense 玩具的反应,以及私密秀和群组秀,都只有在实时状态下才能实现。
在任意浏览器中直播和观看
- 观众可在电脑(Windows、macOS、Linux)或手机、平板(Android、iOS)的浏览器中观看——无需插件或应用;
- 模特直接在浏览器中开播——电脑或手机均可,详见模特后台;
- 视频画质根据每位观众的网速自适应调整,不会中断其他观众的观看。
平台技术栈
Krona.Chat 视频直播平台所采用的技术和编程语言:
ReactJS
平台各站点的前端:直播站点、模特后台和合作伙伴后台。
WebRTC
浏览器内的实时音视频,延迟低于 1 秒。
Janus
以 SFU 方式工作的免费开源 WebRTC 媒体服务器。
Krona.Chat 媒体负载均衡器
自主研发:按地区在 Janus 服务器之间分配媒体流。
Cloudflare
平台各站点的 Web 流量负载均衡器。
PHP 8.5
平台的服务器端语言。
C
处理媒体流并与 Janus 服务器交互。
MariaDB 11.x / 12.x
平台的关系型数据库。
Galera Cluster
至少由三台服务器组成的 MariaDB Galera 集群,保障数据库高可用。
视频直播站点需要多少台媒体服务器?
作为参考,一台配备 1 Gbit/s 保证带宽端口的独立媒体服务器,在持续负载下可提供约 700 Mbit/s 的可用带宽。服务器数量取决于同时在线的直播数、观众数和所选画质——从 480p 到 4K。
使用服务器计算器按您的负载估算所需配置。
WebRTC 与媒体服务器常见问题
Krona.Chat 使用哪种媒体服务器?
Janus WebRTC Server——一款以 SFU 方式工作的免费开源媒体服务器。无论集群中有多少台服务器,都无需支付媒体服务器许可费。
WebRTC 视频流如何在服务器之间负载均衡?
Krona.Chat 平台在 Janus 服务器之间对媒体流进行负载均衡。视频流自动分配到不同地区的媒体服务器上,一个集群可运行数百台服务器。
媒体服务器重启会怎样?
该服务器承载的所有视频流都会自动恢复。新服务器可以加入集群,任何服务器也都可以移出集群进行维护。
为什么选择 WebRTC 而不是 HLS?
WebRTC 实时传输视频,延迟低于 1 秒,而 HLS 会延迟数十秒。对视频直播站点而言,模特与观众之间的实时互动——聊天、打赏、私密秀——只有 WebRTC 才能实现。
视频直播站点需要多少台服务器?
作为参考,每台配备 1 Gbit/s 端口的媒体服务器约有 700 Mbit/s 可用带宽。具体数量取决于直播数、观众数和视频画质;服务器计算器可给出估算。
平台基于什么技术栈构建?
前端——ReactJS,视频——WebRTC,媒体服务器——Janus 配合 Krona.Chat 媒体负载均衡器,Web 流量负载均衡——Cloudflare,服务器端语言——PHP 8.5,媒体流与 Janus——C,数据库——Galera 集群中的 MariaDB 11.x / 12.x。
低延迟视频传输的成本如何?
Janus 媒体服务器是免费的,视频通过您自己的服务器以固定带宽成本传输,而不是通过按 GB 计费的 CDN。因此,即使观众规模增长,媒体服务器的拥有成本和低延迟视频传输成本也能保持在较低水平。