Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Supported platforms and browsers


Chrome

Firefox

Safari 11

Edge

Windows

+

+


+

Mac OS

+

+

+


Android

+

+



iOS

-

-

+


Operation flowchart

  1. The browser connects to the server via the Websocket protocol and sends the publish command.

  2. The browser captures the microphone and the camera and sends a WebRTC stream to the server over TCP.

  3. The second browser establishes a connection also via Websocket and sends the play command.
  4. 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
themeRDark
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
languagejs
themeRDark
    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
themeRDark
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