Create Dynamic Adaptive Streaming over HTTP (DASH) out of an existing H.264/AAC stream. DASH was developed by the Moving Picture Experts Group (MPEG) to establish a standard for HTTP adaptive-bitrate streaming that would be accepted by multiple vendors and facilitate interoperability.

How To

Single Stream

General Format:

createDASHStream localstreamnames=<localstreamname> bandwidths=<bandwidth> targetFolder=<target_folder_path> groupname=<groupname>
  • For Windows:

    createDASHStream localstreamnames=myStream bandwidths=51265536 targetfolder=C:\EvoStream\evo-webroot groupname=myDASHGroup
    
  • For Linux Package:

    createDASHStream localstreamnames=myStream bandwidths=51265536 targetfolder=/var/evo-webroot groupname=myDASHGroup
    
  • For Linux Archive:

    createDASHStream localstreamnames=myStream bandwidths=51265536 targetfolder=/path_to_evo-webroot groupname=myDASHGroup
    

The created files will automatically save in the targetFolder path.

evo-webroot:                           --> targetfolder
myDASHroup                             --> groupname
- myStream                             --> localstreamname
-- audio                               --> audio_folder
--- 51265536                           --> bitrate_folder
---- seg_init.mp4                      --> initialization_segment
---- segment_0.m4s                     --> audio_segment_file
---- segment_XXXXX.m4s                 --> audio_segment_file
-- video                               --> video_folder
--- 51265536                           --> bitrate_folder
---- seg_init.mp4                      --> initialization_segment
---- segment_0.m4s                     --> video_segment_file
---- segment_XXXXX.m4s                 --> video_segment_file
- manifest.mpd                         --> masterplaylist_file

Multiple Streams

To use multiple localStreamNames using one createDASHStream command do the following:

General Format:

createDASHStream localstreamnames=<localstreamname1>,<localstreamname2>,<localstreamnameX> bandwidths=<bandwidth1,bandwidth2,bandwidthX> targetFolder=<target_folder_path> groupname=<groupname>
  • For Windows:

    createDASHStream localstreamnames=myStream1,myStream2 bandwidths=10000000,20000000 targetfolder=C:\EvoStream\evo-webroot groupname=myDASHGroup
    
  • For Linux Package:

    createDASHStream localstreamnames=myStream1,myStream2 bandwidths=10000000,20000000 targetfolder=/var/evo-webroot groupname=myDASHGroup
    
  • For Linux Archive:

    createDASHStream localstreamnames=myStream1,myStream2 bandwidths=10000000,20000000 targetfolder=/path_to_evo-webroot groupname=myDASHGroup
    

The created files will automatically save in the targetFolder path.

evo-webroot:                           --> targetfolder
myDASHroup                             --> groupname
- myStream1                            --> localstreamname_1
-- audio                               --> audio_folder
--- 10000000                           --> bitrate_folder
---- seg_init.mp4                      --> initialization_segment
---- segment_0.m4s                     --> audio_segment_file
---- segment_XXXXX.m4s                 --> audio_segment_file
-- video                               --> video_folder
--- 10000000                           --> bitrate_folder
---- seg_init.mp4                      --> initialization_segment
---- segment_0.m4s                     --> video_segment_file
---- segment_XXXXX.m4s                 --> video_segment_file
- myStream2                            --> localstreamname_2
-- audio                               --> audio_folder
--- 20000000                           --> bitrate_folder
---- seg_init.mp4                      --> initialization_segment
---- segment_0.m4s                     --> audio_segment_file
---- segment_XXXXX.m4s                 --> audio_segment_file
-- video                               --> video_folder
--- 20000000                           --> bitrate_folder
---- seg_init.mp4                      --> initialization_segment
---- segment_0.m4s                     --> video_segment_file
---- segment_XXXXX.m4s                 --> video_segment_file
- manifest.mpd                         --> masterplaylist_file

JSON CLI Response

Sample API Call:

createDASHStream localstreamnames=testpullstream targetfolder=/var/evo-webroot groupname=dash

JSON CLI Response:

Command entered successfully!
DASH stream created

    groupName: dash
    localStreamNames:
      -- testpullStream
    manifestName: manifest.mpd
    playlistType: appending
    targetFolder: /var/evo-webroot

Playing a DASH Manifest File

The corresponding link to play this stream would then be:

General Format:

http://<EMS_IP_Address:<Web_Server_Port>/<DASH_groupname>/<manifest_filename>

Sample URL:

  • Single Stream

    http://192.168.2.34:8888/myDASHGroup/manifest.mpd
    
  • Multiple Stream

    http://192.168.2.34:8888/myDASHGroup/myStream1/manifest.ismc
    
    http://192.168.2.34:8888/myDASHGroup/myStream2/manifest.ismc
    
    http://192.168.2.34:8888/myDASHGroup/myStream3/manifest.ismc
    

The player will now automatically play the stream once the DASH manifest is read.

Automatic DASH

The EMS can be configured to automatically create a DASH stream for every new inbound stream. The details for the DASH creation are placed in the config.lua file instead of as parameters to the createDASHStream API call.

autoDASH=
{
    targetFolder= "/var/evo-webroot",
},

To enable automatic DASH section in the config.lua file needs to be enabled and modified. See configuration here.