Loading...
Loading...
Beta
HLS is still in development and some features such as SignedPolicy and AdmissionWebhooks are not supported.
HLS based on MPEG-2 TS containers is still useful because it provides high compatibility, including support for older devices. Therefore, OvenMediaEngine decided to officially support HLS version 7+ based on fragmented MP4 containers, called LL-HLS, as well as HLS version 3+ based on MPEG-2 TS containers.
To differentiate between LLHLS and HLS playback addresses, we created the following rule for HLS playback addresses:
http[s]://domain[:port]/<app name>/<stream name>/ts:<playlist file name>.m3u8
or
http[s]://domain[:port]/<app name>/<stream name>/<playlist file name>.m3u8?format=ts
To use HLS, you need to add the <HLS>
elements to the <Publishers>
in the configuration as shown in the following example.
HLS is ready when a live source is inputted and a stream is created. Viewers can stream using OvenPlayer or other players.
HLS Publisher basically creates a playlist.m3u8
Playlist using the first video track and the first audio track. When you create a stream, as shown above, you can play HLS with the following URL:
http[s]://domain[:port]/<app name>/<stream name>/ts:playlist.m3u8
If you use the default configuration, you can start streaming with the following URL:
https://domain:3334/app/<stream name>/ts:playlist.m3u8
HLS can deliver adaptive bitrate streaming. OME encodes the same source with multiple renditions and delivers it to the players. And HLS Player, including OvenPlayer, selects the best quality rendition according to its network environment. Of course, these players also provide option for users to manually select rendition.
HLS Publisher basically creates a playlist.m3u8
Playlist using the first video track and the first audio track. If you want to create a new playlist for ABR, you can add it to Server.xml as follows:
Since TS files used in HLS must have A/V pre-muxed, the Playlist must have the EnableTsPackaging
option set.
You can create as long a playlist as you want by setting <DVR>
to the HLS publisher as shown below. This allows the player to rewind the live stream and play older segments. OvenMediaEngine stores and uses old segments in a file in <DVR><TempStoragePath>
to prevent excessive memory usage. It stores as much as <DVR><MaxDuration>
and the unit is seconds.