Versions Compared

Key

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

...

Streaming mediadata are transferred with UDP packets. Those packets can be dropped, for example if server does not have enough time to parse packet queue, that leads to picture quality loss and freezes. To escape this it is necessary to tune UDP sockets buffers with the following settingsin settings in flashphoner.properties file

...

Code Block
languagebash
themeRDark
dropwatch -l kas
>start

Channel load optimization

Users' playback picture quality depends on bitrate: the higher the bitrate, the higher the quality. However, the higher the bitrate, the higher data transfer channel load and, if the bandwidth between the server and clients is limited, there is a possibility that the channel will be fully loaded. This leads the bitrate dropping and a sharp decline in quality.

In this regard, it is necessary to limit the bitrate to ensure sufficient picture quality with an acceptable channel load.

Publisher bitrate limiting

To reduce the load to the channel from publisher to server, maximum and minimum bitrate values in kbps may be set in publisher script with JavaScript API

Code Block
languagejs
themeRDark
session.createStream({
    name: streamName,
    display: localVideo,
    constraints: {
        video: {
            minBitrate: 500
            maxBitrate: 1000
        }
    }
    ...
}).publish();

Server bitrate limiting

Minimum and maximum bitrate values in bps on server may be set with the following parameters in flashphoner.properties file

Code Block
languagebash
themeRDark
webrtc_cc_min_bitrate=500000
webrtc_cc_max_bitrate=1000000

To exclude fast bitrate rise bu=y browser, the following parameter should be set

Code Block
languagebash
themeRDark
webrtc_cc2_twcc=false

Stream decoding on demand only must be switched on to reduce server load:

Code Block
languagebash
themeRDark
streaming_video_decoder_fast_start=false