【发布时间】:2018-05-14 11:11:36
【问题描述】:
美好的一天。我正在尝试建立一个基于 Web 的实时流式聊天室,它需要支持多达 51 个并发用户。我目前面临一个问题,客户端的浏览器在解码多个视频流时会受到性能影响。无论如何,我可以在支持尽可能多的用户的同时提高客户端的浏览器性能吗?
我唯一的要求是在房间里最多支持 51 个用户,我愿意接受任何想法和建议。
谢谢。
【问题讨论】:
美好的一天。我正在尝试建立一个基于 Web 的实时流式聊天室,它需要支持多达 51 个并发用户。我目前面临一个问题,客户端的浏览器在解码多个视频流时会受到性能影响。无论如何,我可以在支持尽可能多的用户的同时提高客户端的浏览器性能吗?
我唯一的要求是在房间里最多支持 51 个用户,我愿意接受任何想法和建议。
谢谢。
【问题讨论】:
我会建议一些练习。但是,仅在客户端环境中可能很难达到 51 个用户。所以在尝试之前,也可以根据您的要求考虑用于视频会议的媒体服务器。
您可以针对性能进行优化。但我不确定是否可以在同一个文档中为多达 51 个同行提供服务。
例如 320x240 分辨率。每个 p2p 客户端使用更少的资源。您可以设置媒体约束。
https://webrtc.github.io/samples/src/content/peerconnection/constraints/
{
"audio": true,
"video": {
"width": "320",
"height": "240"
}
}
WebRTC 可以使用 H264,它是 cisco 的 openh264 软件编解码器。一些报告说它使用的 cpu 功率比 WebRTC 的默认编解码器 VP8 少。
您可以更改编解码器来操作 SDP。
pc.createOffer(function(offer) {
offer.sdp = removeCodec(offer.sdp, "H264");
offer.sdp = removeCodec(offer.sdp, "VP9");
peer_connection.setLocalDescription(offer);
}, function(e) {}, media_constraints);
// removeCodec function code
// https://gist.github.com/tnoho/948be984f9981b59df43
【讨论】:
您可能可以使用 canvas-element 在传输视频流之前对其进行过滤。
【讨论】: