WebRTC Conference

Version 11 (Adrian Georgescu, 07/07/2017 01:23 pm)

1 3 Adrian Georgescu
h1. SylkServer WebRTC Managed Conference
2 2 Adrian Georgescu
3 4 Adrian Georgescu
4 2 Adrian Georgescu
h2. Design
5 2 Adrian Georgescu
6 2 Adrian Georgescu
h2. Features
7 2 Adrian Georgescu
8 11 Adrian Georgescu
h3. Ad-hoc conference
9 1 Adrian Georgescu
10 11 Adrian Georgescu
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.
11 11 Adrian Georgescu
12 11 Adrian Georgescu
h3. Managed conference
13 11 Adrian Georgescu
14 11 Adrian Georgescu
The first participants becomes the manager. He can add/remove mute participants and also decide which one is the active speaker(s).
15 7 Adrian Georgescu
16 2 Adrian Georgescu
h2. Configuration
17 2 Adrian Georgescu
18 10 Dan Pascu
Sylkserver allows the maximum bitrate and video codec to be configured, globally or per room with the following settings in webrtcgateway.ini file:
19 10 Dan Pascu
20 10 Dan Pascu
<pre>
21 10 Dan Pascu
; Maximum video bitrate allowed per sender in a room in bits/s. This value is
22 10 Dan Pascu
; applied to any room that doesn't define its own. The value is any integer
23 10 Dan Pascu
; number between 64000 and 4194304. Default value is 2016000 (~2Mb/s).
24 10 Dan Pascu
; max_bitrate = 2016000
25 10 Dan Pascu
26 10 Dan Pascu
; The video codec to be used by all participants in a room. This value is
27 10 Dan Pascu
; applied to any room that doesn't define its own.
28 10 Dan Pascu
; Possible values are: h264, vp8 and vp9. Default is vp9.
29 10 Dan Pascu
; video_codec = vp9
30 10 Dan Pascu
31 10 Dan Pascu
</pre>
32 10 Dan Pascu
33 10 Dan Pascu
34 1 Adrian Georgescu
h2. Client support
35 1 Adrian Georgescu
36 1 Adrian Georgescu
h2. Measurements
37 1 Adrian Georgescu
38 10 Dan Pascu
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:
39 1 Adrian Georgescu
40 10 Dan Pascu
<pre>
41 10 Dan Pascu
 * H264/VGA - 150% CPU
42 10 Dan Pascu
 * H264/HD  - 250% CPU
43 10 Dan Pascu
 * VP9/VGA  - 220% CPU
44 10 Dan Pascu
 * VP9/HD   - 350% CPU
45 10 Dan Pascu
</pre>
46 6 Adrian Georgescu
47 6 Adrian Georgescu
48 6 Adrian Georgescu
h2. Remaining tasks
49 6 Adrian Georgescu
50 6 Adrian Georgescu
 * sylkserver: control interface for moderator
51 1 Adrian Georgescu
 * janus: patch to request full frames when a paused video is resumed