...
Supported platforms and browsers
Chrome | Firefox | Safari 11 | Edge | |
---|---|---|---|---|
Windows | + | + | + | |
Mac OS | + | + | + | |
Android | + | + | ||
iOS | - | - | + |
Operation flowchart
The browser connects to the server via the Websocket protocol and sends the publish command.
The browser captures the microphone and the camera and sends a WebRTC stream to the server over TCP.
- The second browser establishes a connection also via Websocket and sends the play command.
- The second browser receives the WebRTC stream over TCP and plays that stream on the page.
...
By default, buffers sizes are set to 1 M.
Adjusting TCP queues
TCP queues high and low watermarks are set with the following parameters
Code Block | ||
---|---|---|
| ||
ice_tcp_channel_high_water_mark=52428800
ice_tcp_channel_low_water_mark=5242880 |
By default, TCP queues size is between 5242880 and 52428800 bytes.
Ports used
TCP ports from WebRTC media ports data range are used for WebRTC connection over TCP
...
Code Block | ||||
---|---|---|---|---|
| ||||
session.createStream({ name: streamName, display: localVideo, cacheLocalResources: true, receiveVideo: false, receiveAudio: false, transport: "UDP" }).on(STREAM_STATUS.PUBLISHING, function (stream) { ... }),.publish(); |
or playing (via TCP for example)
...
Solution: disable any additional network interfaces except this one used to access WSC server.
2. WebRTC video cannot be played for all subscribers if one of the subscribers has a channel problems
Symptoms: video cannot be played for all subscribers if one of the subscribers has a channel problems
Solution: enable non-blocking IO with the following parameter
Code Block | ||
---|---|---|
| ||
ice_tcp_nio=true |
3. WebRTC over TCP requires more RAM comparing with UDP when non-blocking IO is used
Symptoms: with increasing traffic on the server, the RAM iconsumption ncreases sharply, up to the server shutdown
Solution: add more RAM to the server according to the following recommendations
- 64 Gb RAM for 500 Мbps of traffic
- 128 Gb RAM for 1 Gbps of traffic