WebRTC - P2P - 服务器端视频录制

4
我打算开发一个视频会议应用程序(使用NodeJS + React Native)。
需求:
  1. 一对一视频会议(2个演讲者)
  2. 记录两位参与者的视频/音频。
  3. 将记录的流存储在S3存储桶中,并直接从中观看视频。
  4. 实时流传输(未来目标,但暂时不需要)。
到目前为止,尝试的策略:
  1. 尝试了Twilio和Agora,但由于定价不可行。
  2. Mediasoup(SFU-受dogehouse启发)是另一个选择,但它相对较新,开发时间要长得多。
因此,我得出结论,首先从使用WebRTC进行点对点通信开始,并通过连接到虚拟服务器作为幽灵参与者来记录视频。(2个演讲者+1个幽灵参与者)
需要一些策略来在服务器上实现WebRTC录制。(录制非常重要,因此我不想依赖客户端。)
  1. 我应该在服务器上使用Puppeteer,加入作为幽灵参与者,在创建房间时进行录制,如果是这样-是否可以运行多个Puppeteer实例?因为有时可能会同时进行多个房间录制,所以需要并发记录。需要确认可伸缩性。

  2. 研究Kurento / Jitsi其他选项吗?

如果你能帮助我,太棒了!干杯!!
3个回答

0
作为Agora的开发者大使,我想感谢您考虑使用Agora。关于定价,虽然Agora提供了慷慨的免费套餐(每月10k分钟),但这仅适用于开发使用,一旦您的项目部署到生产环境中,成本将类似于托管基础设施(如AWS/GCP)。
与任何项目一样,为了覆盖成本,您需要有一些货币化策略或一些免费积分来发展业务。与其他平台类似,Agora为符合条件的初创企业提供创业计划
所有这些都是为了回答您关于方法的问题,我可以告诉您,幽灵客户端方法应该可行,Agora的云录制使用类似的逻辑。关于可扩展性,您可以运行多个木偶实例

0
你可以参考在GitHub上的html5 videocall web application 来获得灵感。
这个应用使用Wowza SE作为中继服务器,以实现扩展性和可靠性。通过FFmpeg,可以在服务器端录制流。FFmpeg可以输入一个或多个流,混合/转码并输出到本地或外部目标。 更高级的设置,例如PaidVideochat - Turnkey Videochat Site on WordPress,支持将会议/通话中的多个流混合成同一个视频文件。
使用中继流媒体服务器也非常适合面向多名观众进行扩展。

0

Galene SFU 具有原生的服务器端录制支持(声明,我是主要作者)。然而,它是一个相当年轻的项目,这可能会对您造成问题。


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