了解WebRTC

3

我目前正在测试WebRTC的功能,但是我有一些逻辑问题。

什么是WebRTC?

我只看到了“STUN”,“P2P”等内容...但从技术角度来看,WebRTC到底是什么(见下文)

我需要什么

我正在寻找一个特定的解决方案。例如,在这里,一个网络广播:

一个客户端将他们的麦克风数据发送到服务器,其他连接的客户端将听到它。服务器需要一些功能:只有一个客户端可以与其他客户端共享其麦克风数据。所有其他客户端都处于“静音”状态,但其他客户端可以在未来请求发送其数据。如果所选客户端完成,其他人就可以发送。

澄清,我需要什么

不,我不想创建网络广播;我想创建一个“唱歌服务器”。用户可以选择一首歌并用他们的麦克风唱歌。其他客户端可以听到它。如果用户完成了他们的“歌曲”,其他人可以请求“这里,我想唱这首歌...”。

使用WebRTC是否可能?目前我认为不可能,因为我认为WebRTC只是一种点对点解决方案。服务器无法处理直接的音频数据,但是对于我的选项,我需要它(在实现基本功能后,我希望将流数据修改为添加一些声音效果)。我已经找到了一些使用node.js的解决方案,但我只在代码中找到了对客户端进行广播的内容;音频数据永远不会到达服务器。

1个回答

3

WebRTC是一种P2P解决方案,但它也可以是从发布者到服务器的P2P连接以及许多听众到服务器的P2P连接。这恰好符合您的需求。

有三种主要的WebRTC网络拓扑结构:

  • MESH - 每个参与者将其媒体发送和接收到所有其他参与者。不易扩展,仅可扩展到最多4-6个参与者的视频会话或10个参与者的音频会话。
  • SFU - 可以在您的情况下使用,支持约10-15个参与者的视频和约20个参与者的音频。这是目前最流行、最易于维护的解决方案。
  • MCU - 可以支持很多参与者,但需要更多的硬件并且难以维护。

因此,在您的情况下,您肯定需要一些WebRTC服务器网关,因为您将有许多听众。

在您的情况下,也许尝试一下流媒体功能也不错。

我建议尝试Janus WebRTC Gateway,特别是以下两点:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接