...
Any of streams published via WebRTC, RTMP, MPEG-TS or captured from RTSP or RTMP source using REST API may be cut automatically to HLS segments. This feature may be enabled with the following parameter
Code Block | ||
---|---|---|
| ||
hls_auto_start=true |
Since build 5.2.1895 it is possible to start HLS ABR stream automatically if HLS ABR on a single node is used. This feature may be enabled with the following parameter
Code Block | ||
---|---|---|
| ||
hls_abr_auto_start=true |
HLS playback authentication using REST hook
...
The original quality should be requested separately from a playing client.
...
Since build 5.2.1916, the feature is
...
available for
...
HLS ABR in CDN. To activate it, all the CDN servers should be updated to build 5.2.1916 or newer, and the following parameters should be set on Edge server
Code Block | ||
---|---|---|
| ||
cdn_strict_transcoding_boundaries=true
h264_b_frames_force_transcoding=true |
Maximum playlist size
Maximum playlist size in segments is defined by the following parameter
...
Warning |
---|
Since build 5.2.1793, the parameter is removed. The unified network stack is always used to deliver both HLS and LL HLS segments. |
Manifest URL setup
Since build 5.2.1852, an URL templates to request a stream main playlist (manifest) may be customized. By default, the following templates are used:
Code Block | ||
---|---|---|
| ||
hls_path_template={streamName}/{streamName}.m3u8
hls_abr_path_template={streamName}{abrSuffix}/{streamName}{abrSuffix}.m3u8 |
Where:
- streamName - stream published name
- abrSuffix - HLS ABR stream suffix set by
hls_abr_stream_name_suffix
parameter
In this case, the following URLs should be used to get HLS manifest
Code Block | ||
---|---|---|
| ||
https://wcs:8445/stream/stream.m3u8 |
and to get HLS ABR manifest
Code Block | ||
---|---|---|
| ||
https://wcs:8445/stream-HLS-ABR-STREAM/stream-HLS-ABR-STREAM.m3u8 |
For example, if a fixed manifest name different for HLS ABR and non-ABR streams is preferred to use, then the following templates should be set
Code Block | ||
---|---|---|
| ||
hls_path_template={streamName}/playlist.m3u8
hls_abr_path_template={streamName}/playlist{abrSuffix}.m3u8 |
In this case, the following URLs should be used to get HLS manifest
Code Block | ||
---|---|---|
| ||
https://wcs:8445/stream/playlist.m3u8 |
and to get HLS ABR manifest
Code Block | ||
---|---|---|
| ||
https://wcs:8445/stream/playlist-HLS-ABR-STREAM.m3u8 |
Known issues
1. Non-recoverable freeze of HLS stream played in iOS Safari through a CDN
...
Solution: since build 5.2.1690, use m4s container for audio only streams
13. Encoder resources leak may appear under a high load when using HLS ABR
Symptoms: when HLS ABR is used and server CPU load is high (for instance, an encoding profiles number for all the streams published exceeds CPU capabilities), encoding resources may not be freed after publishing is stopped, and this may be visible on server statistics page, for example
Code Block | ||
---|---|---|
| ||
streams_hls=0 ... native_resources.video_encoders=5 |
Solution: update WCS to build 5.2.1947 and set the following parameter
Code Block | ||
---|---|---|
| ||
handler_async_disconnect=false |