WebRTC - 优化多个视频流

时间:2018-05-14 11:11:37

标签: html webrtc

美好的一天。我正在尝试建立一个基于Web的实时流媒体聊天室,它需要支持多达51个并发用户。我目前面临一个问题,即客户端浏览器在解码多个视频流时会受到性能影响。无论如何,我可以在支持尽可能多的用户的同时提高客户端的浏览器性能吗?

我唯一的要求是在房间内支持多达51位用户,我愿意接受任何想法和建议。

感谢。

2 个答案:

答案 0 :(得分:0)

可能您可以使用画布元素在传输视频流之前对其进行过滤。

答案 1 :(得分:0)

我会建议一些练习。但是,也许仅在客户端环境中很难达到51个用户。因此,在尝试之前,请像您的要求一样考虑用于视频会议的媒体服务器。

用于视频会议的MCU / SFU媒体服务器

优化

您可以优化性能。但是我不确定在同一文档中最多可以服务51个同行。

低分辨率

类似于320x240的分辨率。每个p2p客户端使用较少的资源。您可以设置媒体限制。

https://webrtc.github.io/samples/src/content/peerconnection/constraints/

{
    "audio": true,
    "video": {
        "width": "320",
        "height": "240"
    }  
}

H264

WebRTC可以使用H264,这是Cisco的openh264软件编解码器。一些报告说,它比WebRTC的默认编解码器VP8使用的CPU功耗要少。

您可以更改编解码器以操纵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