WebRTC Conference
Version 9 (Dan Pascu, 07/07/2017 12:57 pm) → Version 10/59 (Dan Pascu, 07/07/2017 01:03 pm)
h1. SylkServer WebRTC Managed Conference
h2. Design
h2. Features
* Ad-hoc conference: all participants are rendered in a matrix where each participants has the same size. The conference room has a fixed total bandwidth set by the server, which is divided between the participants, which means the more participants are in the room, the less bandwidth each participant will use keeping the bandwidth usage per conference room constant.
h2. Configuration
Sylkserver allows the maximum bitrate and video codec to be configured, globally or per room with the following settings in webrtcgateway.ini file:
<pre>
; Maximum video bitrate allowed per sender in a room in bits/s. This value is
; applied to any room that doesn't define its own. The value is any integer
; number between 64000 and 4194304. Default value is 2016000 (~2Mb/s).
; max_bitrate = 2016000
; The video codec to be used by all participants in a room. This value is
; applied to any room that doesn't define its own.
; Possible values are: h264, vp8 and vp9. Default is vp9.
; video_codec = vp9
</pre>
h2. Client support
h2. Measurements
This measurement was done on a Macbook Pro 15" with a 2.3GHz Intel Core I7 CPU, while having 7 participants in the room with each using 336Kb/s. The measurement shows the CPU usage in Firefox with the aforementioned conditions, for the specified video codecs and resolutions which are used by all participants:
<pre>
resolutions:
* H264/VGA - 150% CPU
* H264/HD - 250% CPU
* VP9/VGA - 220% CPU
* VP9/HD - 350% CPU
</pre>
h2. Remaining tasks
* sylkserver: control interface for moderator
* janus: patch to request full frames when a paused video is resumed
h2. Design
h2. Features
* Ad-hoc conference: all participants are rendered in a matrix where each participants has the same size. The conference room has a fixed total bandwidth set by the server, which is divided between the participants, which means the more participants are in the room, the less bandwidth each participant will use keeping the bandwidth usage per conference room constant.
h2. Configuration
Sylkserver allows the maximum bitrate and video codec to be configured, globally or per room with the following settings in webrtcgateway.ini file:
<pre>
; Maximum video bitrate allowed per sender in a room in bits/s. This value is
; applied to any room that doesn't define its own. The value is any integer
; number between 64000 and 4194304. Default value is 2016000 (~2Mb/s).
; max_bitrate = 2016000
; The video codec to be used by all participants in a room. This value is
; applied to any room that doesn't define its own.
; Possible values are: h264, vp8 and vp9. Default is vp9.
; video_codec = vp9
</pre>
h2. Client support
h2. Measurements
This measurement was done on a Macbook Pro 15" with a 2.3GHz Intel Core I7 CPU, while having 7 participants in the room with each using 336Kb/s. The measurement shows the CPU usage in Firefox with the aforementioned conditions, for the specified video codecs and resolutions which are used by all participants:
<pre>
resolutions:
* H264/VGA - 150% CPU
* H264/HD - 250% CPU
* VP9/VGA - 220% CPU
* VP9/HD - 350% CPU
</pre>
h2. Remaining tasks
* sylkserver: control interface for moderator
* janus: patch to request full frames when a paused video is resumed