Creating MPEG DASH packages

How to create MPEG DASH adaptive bitrate packages

MPEG DASH works in principle just like HLS, but is codec agnostic so it’s not limited to H.264, and can also use H.265 or VP9 video. It is also the first adaptive bit rate solution to become an international standard. Stream metadata is described by MPD files (Media Presentation Description) that can be organized in different ways depending on the use case.

In various forms MPEG-DASH is supported by all major browsers and the vast majority of Android devices (from smartphones to TVs).

MPEG DASH uses Common Encryption for content protection which is based on existing web standards and is DRM platform agnostic. It works with number of available DRM platforms (Microsoft PlayReady, Google Widevine) and allows sharing keys, key identifiers, encryption algorithm, parameters, location to store proprietary data in a Protection System Specific Header (PSSH) while leaving details of DRM implementation to individual systems.

Create a dedicated Factory for MPEG-DASH output

Log in to your Telestream Cloud account and create a new Flip Service Factory as usual. Give it a meaningful name and define the output path format for your files. You can use a set of predefined keywords which make it easier to put output files in specific folders based on certain parameters.

The following keywords can be combined to create outputs path format:

  • :id - ID of the encoding.
  • :video_id - ID of the video.
  • :original - original filename of the uploaded video
  • :date - date the video was uploaded (YYYY-MM-DD).
  • :profile - profile name used by the encoding.
  • :type - video type, original or encoding
  • :resolution - resolution of the encoding

In case of ABR formats it's particularly useful as you may end up with a large number of segments for each variant being delivered to single folder in your storage. For example my-path/:resolution/ output path format used for either HLS or MPEG DASH is an easy way to group output files by variant.

Select the output storage location to use, and optionally add a watch-folder which will trigger jobs automatically anytime a new source file arrives.

Here are some user guides to help with storage setup and how to get started with watch-folders


Create Factory

Click Next to go to the profiles selection. Go to the Multiscreen tab and select MPEG-DASH. This will create a set of variants. You can always modify these later. References to the segmented files are kept in .mpd manifest files.


Multiscreen profiles

Click Next to go to the profiles summary and then click Finish to complete.


Editing DASH variants

DASH presets can be used as a starting point to build your own profiles that match your requirements more closely. To see a list of your MPEG-DASH variants go to your newly created Factory and click Encoding profiles. To edit each profile simply click on it or on the settings icon.


MPEG DASH content can be encrypted with Common Encryption (CENC). Supported DRMs are Widevine and PlayReady. This can be done when only when creating DASH packages through the API.

Job result

If finished successfully, the job details view will list all the MPEG-DASH variants created and delivered to your output storage. You can preview them directly in the browser and also download manifest files if needed.


Encoding job details - MPEG-DASH