License Key

Obtaining a license key

You can get an evaluation key by clicking the following button:

You will be asked to choose the product or solution you would like to try and leave your name and email address (first time access), after that you can copy the license key and continue with the Docker Express Your own Video on Demand demo or the general How to Install instructions.


The following sections outline what is available in the default evaluation license key. For an overview of what Unified Streaming supports in terms of codecs, formats, DRM or ingest - please see the Factsheet.

Unified Origin

The following lists available features (y indicates they're part of the evaluation):


Origin CMAF/HLS/MPEG-DASH/HDS/HSS Encoder Ingest Metadata (SCTE 35) Progressive/MP4
VOD y      
Live y y    


DRM is not part of the evaluation. Please see Unified Origin - DRM for an overview of possibilities.

License key location

Please note that each of the webservers has their own unique location for its configuration.

Apache License Key

For Apache, the UspLicenseKey server directive must be used which may be placed in the vhost conf file before the actual virtual host:

UspLicenseKey /path/to/usp-license.key

<VirtualHost *:80>

  # Rest of config



A single license allows for ten (10) live channels per origin, there is no limit on the number of bitrates in the license key.

Unified Capture

You need to pass the key on the command line with the --license-key option.


unified_capture --license-key=/path/to/usp-license.key \
  -o oceans.ismv \

Capture is not part of the evaluation. Possible outputs are:

Capture VOD Live
HSS y y
HLS y n
HDS y n
Decrypt y y

When capturing Live both HSS and MPEG-DASH can be used as output format, please see Capturing LIVE for the details.

The packager can be used to create other formats, for instance if MP4 or CMAF are required.

Unified Packager

The following features are available with the evaluation. Please note that all features can be licensed.

Server Manifest creation   y        
Client Manifest creation   y        

License key

By default mp4split will look for an environment variable called UspLicenseKey and use this as an argument to its license key option.

If this variable is present & you are required to pass the key on the command line with the --license-key option.


mp4split --license-key=/path/to/usp-license.key \
  -o oceans.ism \

License key wrapper

For convenience we recommend exporting the license key string as an environment variable called UspLicenseKey which mp4split will use as default when --license-key is not used.

Its recommended to set this variable and any subsequent alias' in your .bashrc.

As an alias:

export UspLicenseKey="YmFzZTY0IGVuY29kZWQgbGljZW5zZSBrZXkgc3RyaW5nCg=="

alias mp4split="/path/to/mp4split $@"

Or a function:

export UspLicenseKey="YmFzZTY0IGVuY29kZWQgbGljZW5zZSBrZXkgc3RyaW5nCg=="

function mp4split() {
  command mp4split $@

Once the UspLicenseKey environment variable has been exported, its possible to use to run one of our public container images (using Docker).

# Using our publically available container image
# run latest public mp4split release
mp4split() {
  case $1 in
    1.[0-9]*.[0-9]* ) IMAGE=${BASE_IMAGE}:$1; shift ;;
    * ) IMAGE=${BASE_IMAGE}:latest; docker pull $IMAGE ;;
  docker run -it -e UspLicenseKey -v ${PWD}:/data --workdir /data $IMAGE "$@"

It's also possible to set an environment variable as the path to your key which can then be passed to the command line using the --license-key option.

As an alias:

# Alternative option

function mp4split() {
  command mp4split --license-key=${USP_LICENSE_KEY} $@

Or a function:

# Alternative option

alias mp4split="/path/to/mp4split --license-key=${USP_LICENSE_KEY} $@"

Unified Remix

Licensing for Remix is available on request. Available options:

Remix Comment
nPVR Scalable, performant and reliable catch up or nPVR
VOD Bumpers, Virtual Subclips, Pre-,Mid-,Post-roll
AVOD Metddata (SCTE 35) creation, Media conditioning (I-Frame insertion)
VOD2Live Event, niche, premium, brand/product, info or ad Live channels form VOD content

Installation Check

After (re)starting Apache you should see the following in the Apache error.log (/var/log/apache2/error.log on Ubuntu):

License key found: /path/to/usp-license.key
Apache/2.4.7 (Ubuntu) IISMS/4.0 configured -- resuming normal operations

To check your license using mp4split, use the --license-key option together with the --show-license option described in the section below.

Features and Expiry

To show which features are supported for a certain license key or to check when the license will expire, use the --license-key option together with the --show-license option, and no other command line arguments:


mp4split --license-key=/path/to/usp-license.key --show-license

If the license is valid, and not expired, this will print feature information in a format similar to:

mp4split version=1.10.11 (18541)    Copyright 2007-2019 CodeShop B.V.

Product name: Unified Streaming Platform
License type: production
License email:
Starting at: 2021-01-30 00:00:00 UTC
Expiring at: 2022-02-01 00:00:00 UTC
Supported features:
  Packaging: DASH, HDS, HLS, ISS, MP4, CMAF
  Capturing: DASH, HDS, HLS, ISS, Decryption
  Verifying: Media, URLs, Sitemap
  Streaming: VOD, Live, MPEG-TS
  Remixing: VOD
  Encoding: AAC, AVC, HEVC
  Decoding: AAC, AVC, HEVC
  Metadata: Timed Metadata
  DRM: AES, DXDRM, FAXS, Marlin, PlayReady, Sample_AES, Verimatrix_HLS, Irdeto_SKE, Conax_PR_HLS, Widevine, PlayReady_Envelope, PHDS


Next to the the email address used for the license email (see example above) receiving license expiry warnings 90, 60 and 30 days in advance, it is a good idea to also monitor the license key where it is used.

Options to do so are for instance the following:

  • run mp4split --show-license and post result to internal monitoring
  • restart apache periodically and check license printed in the error.log
  • parse license key upon arrival and track time to flag internally when expiry is near
  • have the webserver load the license key from another location, where expiry is checked periodically


A benefit of the last is that all servers load from the same location, so license key renewal is 'replace and reload' in a specific maintenance windwow.

The first solution could look like the following:

  • the cronjob:
@daily /root/key-check-daily 2>&1 | /usr/bin/logger -t key-check-daily
  • the key-check-daily script:

/usr/bin/mp4split --license-key /etc/usp-license.key --show-license > /tmp/key-options
/usr/bin/curl curl -X POST -d @/tmp/key-options http://monitoring-server/key-check

The 'monitoring-server' mentioned above in turn can parse out the 'Starting at: ' and 'Expiring at: ' UTC timestamps present in 'key-options' string sent. Standard monitoring tools like ELK could be a good fit.


New in version 1.10.33.

An alternative to placing the license key on the instance where it is used (typically as /path/to/usp-license.key) is to use a URL.

For instance with mp4split:

mp4split --license-key https://key-store/my.key --show-license

or for Apache:

UspLicenseKey "https://key-store/my.key"

The 'key-store' mentioned can be any kind of HTTPS accessible location capable of responding to the HTTPS GET request with a key.


Please make sure such a 'key-store' is only accessible to allowed license key requests.

Setting up the license key like this seperates license from instance and as such for instance allows for simultaneous update of all instances that use the same license key, or update in batches (when the same license key is used but different URL). In short, it provides greater freedom how to manage keys.


The URL must resolve to a license key. If it does not both mp4split and Apache will not work correctly and print an error (to the console or to the error log, see Error Messages below).

Error Messages

Errors related to the license key are described below.

'no policy for'

If a call to mp4split (or the webserver) results in for instance the following it means the required permission is not part of the license:

Status: 403 FMP4_403
X-USP-Error: drm: no policy for Widevine encryption

This message will be printed in the Apache error log or in the shell (stdout). Please contact

'verify license signature not valid'

The key is meant for a different version (for instance trying a 1.6 key with a 1.7 version)

'license expired'

The license expired, please contact

'base64_decode: unexpected end of file'

If you get the following error in your Apache error.log:

terminate called after throwing an instance of 'fmp4::exception'
what(): 415 FMP4_415 (base64_decode: unexpected end of file?)

please check you copied the license key correctly.

You can for instance test with


mp4split --license-key=/path/to/usp-license.key --show-license

where YOUR_LICENSE_KEY is the key you received.

'keyfile not found'

This means the license key cannot be found. Please refer to the License Key page on how to install it:

'could not connect to host'

Evaluation versions require internet access to the following:

  • Google's DNS servers (
  • (

Please make sure your firewall settings allow this.

If this is not set up the resulting error will look like the following:

apache mod_smooth_streaming (version=1.7.10) failed to initialize! (error
message: could not connect to host), please contact