Download Formats

Downloading a video may sometimes be more convenient than streaming it. You may want to support devices that can only handle progressive downloads or you may want to allow your users to download a video so they can also watch it when they don't have access to a (proper) internet connection.

Progressive download

New in version 1.4.35.

Instead of storing an additional copy of the presentation to enable progressive download, you can create an MP4 file on disk that only contains the necessary metadata and references the actual movie data of the original (fragmented) video.

The MP4 file stored on disk will only be around 10K - 100K in size. When requested by the client, the webserver reads this MP4 file and 'expands' it into a single progressive video.

Let's take a video presentation that has a 'video-512k.ismv' file containing two tracks as an example, one audio and one video. You can create a progresssive version of this presentation by running the following command:

#!/bin/bash

mp4split -o video-512k.mp4 --use_dref \
  video-512k.ismv

The option --use_dref stands for 'use as a data reference'. Assuming the output dref MP4 file of the example above is in the /var/www/video directory, the URL for the progressive download will be: http://www.example.com/video/video-512k.mp4.

Storage location of original content and dref MP4

Since the input and output file are in the same directory in the example above, the references to the original content that the dref MP4 file contains, will be relative to its location. Thus, the dref file needs to remain in the same directory as the input file (although this directory doesn't need to be the same as the one in which the dref file was created).

It's also possible to specify an absolute URL (http://) as the location of the original content. In that case, the reference that is stored in the dref MP4 file will be absolute and the files can be stored separately (but the location of the original content cannot change without having to create a new dref MP4).

For more information on storing the original content, manifests or dref files in different locations, see Remote Storage.

Force brand of dref MP4

The default major brand that the dref MP4 file uses, depends on the features of the content from which it was generated. The packager defaults to "iso2", but bumps the brand when features require this.

For example, the "iso4" brand is set when negative composition times are used.

If you don't want to use the "iso4" brand (e.g. because a player framework doesn't support negative composition times), you can force the brand with the option --brand=iso2 (which will result in the use of an edit list instead of negative composition times).

Download to own for HTTP Live Streaming (HLS)

New in version 1.7.25.

The option to download the full video presentation was introduced by Apple as part of version 7 of their HLS protocol. It is a feature that requires the EXT-X-SESSION-KEY to be present in the master playlist. When using FairPlay DRM, Unified Origin adds this key to the master playlist by default. With the key in place, the feature can be implemented on the player side.

Download to own for HTTP Smooth Streaming (HSS)

New in version 1.7.2.

Note

Download to own with Smooth Streaming requires the Apache version of USP Origin.

If a video presentation is protected by PlayReady DRM, it can be made available for download in the "PIFF" (Protected Interchangeable File Format) format.

The option used to enable this feature is the following:

--progressive_playout

Allows the download of the full presentation as an MP4 video file, including all the audio/video tracks. You have to specifically enable this option because the default of the Origin is to disallow downloading the complete presentation as a single file.

As an example we will create a server manifest that includes the information of the audio and video tracks that should be part of the downloaded version. We will also specify which DRM settings to use. The source file in the example is 'video-512k.ismv', which contains two tracks: one for audio and one for video.

#!/bin/bash

mp4split -o download.ism \
  --iss.key_id=00000010001000101000100000000001 \
  --iss.content_key=3A2A1B68DD2BD9B2EEB25E84C4776668 \
  --iss.license_server_url="http://playready.directtaps.net/pr/svc/rightsmanager.asmx?PlayRight=1&UseSimpleNonPersistentLicense=1" \
  --iss.key_iv=0000000000000000 \
  --progressive_playout \
  video-512k.ismv

Note

Because it adds some useful features, we recommend to use a dref file when working with download to own, as described below.

Resume and scrubbing features

New in version 1.7.17.

To enable a player to resume download, use HTTP range requests and enable scrubbing features, despite the content of the original media file being encrypted, you can create a dref'd file of the content that you want to offer as download to own. This will enable the player to use the dref file as an index file for the original content. Creating a dref file from the original content is straightforward:

#!/bin/bash

mp4split -o video-512k-ref.mp4 \
  --use_dref video-512k.ismv

Once you have done this you can create the download-to-own manifest by adding the --progressive_playout-option in the same way as explained earlier, but now while using the newly created dref file as the source:

#!/bin/bash

mp4split -o download.ism \
  --iss.key_id=00000010001000101000100000000001 \
  --iss.content_key=3A2A1B68DD2BD9B2EEB25E84C4776668 \
  --iss.license_server_url="http://playready.directtaps.net/pr/svc/rightsmanager.asmx?PlayRight=1&UseSimpleNonPersistentLicense=1" \
  --iss.key_iv=0000000000000000 \
  --progressive_playout \
  video-512k-ref.mp4

This will result in the following files:

Streaming format Description
download.ism The USP server manifest file.
video-512k.ismv The video presentation.
video-512k-ref.mp4 The dref file of the presentation

For play-out, the following Player URLs can be used:

Streaming format URL
HTTP Smooth Streaming http://www.example.com/video/download.ism/Manifest
Download-to-own http://www.example.com/video/download.ism/download.ismv

Note

The extension of the Download-to-own URL is the same whether or not you work with a dref MP4. The fact that it is ".ismv" tells the USP Origin to serve out the file in the fragmented Smooth Streaming PIFF format.