Low-Latency DASH and HLS streaming
OvenMediaEngine supports HTTP based streaming protocols such as HLS, MPEG-DASH(Hereafter DASH), and Low-Latency MPEG-DASH with CMAF(Hereafter LLDASH).
Title
Functions
Delivery
HTTP for HLS and DASH HTTP 1.1 chunked transfer for LLDash
Security
TLS (HTTPS)
Format
TS for HLS
ISOBMFF for DASH
CMAF for LLDASH
Codec
H.264, AAC
OvenMediaEngine will support Low-Latency HLS in the near future. We are always keeping an eye on the decision from Apple inc.

Configuration

To use HLS, Dash and LLDash, you need to add the <HLS> and<DASH> elements to the <Publishers> in the configuration as shown in the following example.
1
<Server version="8">
2
<Bind>
3
<Publishers>
4
<HLS>
5
<Port>80</Port>
6
</HLS>
7
<DASH>
8
<Port>80</Port>
9
</DASH>
10
</Publishers>
11
</Bind>
12
<VirtualHosts>
13
<VirtualHost>
14
<Applications>
15
<Application>
16
<Publishers>
17
<HLS>
18
<SegmentDuration>5</SegmentDuration>
19
<SegmentCount>3</SegmentCount>
20
<CrossDomains>
21
<Url>*<Url>
22
</CrossDomains>
23
</HLS>
24
<DASH>
25
<SegmentDuration>5</SegmentDuration>
26
<SegmentCount>3</SegmentCount>
27
<CrossDomains>
28
<Url>*<Url>
29
</CrossDomains>
30
</DASH>
31
<LLDASH>
32
<SegmentDuration>5</SegmentDuration>
33
<CrossDomains>
34
<Url>*<Url>
35
</CrossDomains>
36
</LLDASH>
37
</Publishers>
38
</Application>
39
</Applications>
40
</VirtualHost>
41
</VirtualHosts>
42
</Server>
Copied!
Element
Decscription
Bind
Set the HTTP port to provide HLS and DASH. LLDASH and DASH are provided on the same port, and DASH and HLS can be set to the same port.
SegmentDuration
Set the length of the segment in seconds. The shorter the <SegmentDuration>, the lower latency can be streamed, but it is less stable during streaming. Therefore, we are recommended to set it to 3 to 5 seconds.
SegmentCount
Set the number of segments to be exposed to *.mpd. The smaller the number of <SegmentCount>, the lower latency can be streamed, but it is less reliable during streaming. Therefore, it is recommended to set this value to 3.
It doesn't need to set SegmentCount for LLDASH because LLDASH only has one segment on OvenMediaEngine.
CrossDomains
Control the domain in which the player works through <CorssDomain>. For more information, please refer to the CrossDomain section.

CrossDomain

Most browsers and players prohibit accessing other domain resources in the currently running domain. You can control this situation through Cross-Origin Resource Sharing (CORS) or Cross-Domain (CrossDomain). You can set CORS and Cross-Domain as <CrossDomains> element.
Server.xml
1
<CrossDomains>
2
<Url>*</Url>
3
<Url>*.airensoft.com</Url>
4
<Url>http://*.ovenplayer.com</Url>
5
<Url>https://demo.ovenplayer.com</Url>
6
</CrossDomains>
Copied!
You can set it using the <Url> element as shown above, and you can use the following values:
Url Value
Description
*
Allows requests from all Domains
domain
Allows both HTTP and HTTPS requests from the specified Domain
http://domain
Allows HTTP requests from the specified Domain
https://domain
Allows HTTPS requests from the specified Domain

Streaming

LLDASH, DASH, and HLS Streaming are ready when a live source is inputted and a stream is created. Viewers can stream using OvenPlayer or other players.
Also, you need to set H.264 and AAC in the Transcoding profile because MPEG-DASH and HLS use these codecs.
1
<OutputProfiles>
2
<OutputProfile>
3
<Name>bypass_stream</Name>
4
<OutputStreamName>${OriginStreamName}</OutputStreamName>
5
<Encodes>
6
<Audio>
7
<Bypass>true</Bypass>
8
</Audio>
9
<Video>
10
<Bypass>true</Bypass>
11
</Video>
12
</Encodes>
13
</OutputProfile>
14
</OutputProfiles>
Copied!
When you create a stream, as shown above, you can play LLDASH, DASH, and HLS through OvenPlayer with the following URL:
Protocol
URL format
LLDASH
http://<Server IP>[:<DASH Port>]/<Application Name>/<Stream Name>/manifest_ll.mpd
Secure LLDASH
https://<Domain>[:<DASH TLSPort>]/<Application Name>/<Stream Name>/manifest_ll.mpd
DASH
http://<Server IP>[:<DASH Port>]/<Application Name>/<Stream Name>/manifest.mpd
Secure DASH
https://<Domain>[:<DASH TLSPort>]/<Application Name>/<Stream Name>/manifest.mpd
HLS
http://<Server IP>[:<HLS Port>]/<Application Name>/<Stream Name>/playlist.m3u8
Secure HLS
https://<Domain>[:<HLS TLSPort>]/<Application Name>/<Stream Name>/playlist.m3u8
If you use the default configuration, you can start streaming with the following URL:
    https://[OvenMediaEngine IP]:443/app/<stream name>_o/playlist.m3u8
    http://[OvenMediaEngine IP]:80/app/<stream name>_o/playlist.m3u8
    https://[OvenMediaEngine IP]:443/app/<stream name>_o/manifest.mpd
    http://[OvenMediaEngine IP]:80/app/<stream name>_o/manifest.mpd
    https://[OvenMediaEngine IP]:443/app/<stream name>_o/manifest_ll.mpd
    http://[OvenMediaEngine IP]:80/app/<stream name>_o/manifest_ll.mpd
We have prepared a test player that you can quickly see if OvenMediaEngine is working. Please refer to the Test Player for more information.
Last modified 5d ago
Export as PDF
Copy link