Skip to main content

Launch template settings

The launch template settings are defined in the settings block of the launch template file.

Through this settings block you can customize the application and edit particular areas to suit your workflow. In this document you can find all available launch template settings.

{
"data": [
...
],
"settings": [
{
"$ref": "https://example.com/remote/settings.json"
},
{
...
}
]
}

Forms

The forms setting is used to define custom forms that can be used for marker-, asset- or file metadata.

{
"forms": {
"defaultMarker": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
}
},
"required": ["name"]
},
"uischema": {
"type": "VerticalLayout",
"elements": [
{
"type": "Control",
"label": "Name",
"scope": "#/properties/name"
},
{
"type": "Control",
"label": "Description (optional)",
"scope": "#/properties/description",
"options": {
"format": "textarea"
}
}
]
},
"defaultValues": {
"description": ""
}
}
}
}
  • schema: The schema for the form, see json-schema.
  • uischema: The UI Schema for the form, see ui-schema.
  • defaultValues: Any default values the form should be initialized with.

This document covers the currently supported UI Schema formats and explains how to configure them.

Form references

A schema can reference another schema using the $ref keyword. The value of $ref is a URI-reference that is resolved when the form is loaded for the first time. It is possible, for example, to reference a complete form at a remote location or a sub-schema at a remote location, reference properties within the same schema or use AV specific references, see How to use form references.

Marker forms

These are the default forms used for markers:

KeyForm description
defaultMarkerDefault marker form
adBreakStartFormDefault form for ad-break start
adBreakEndFormDefault form for ad-break end
adBreakBreakFormDefault form for ad-breaks
cutFormDefault form for cuts (ad-breaks)

You can override these or specify new forms under different keys and use those by setting the form key in the marker track settings, see How to define and use custom forms.

Asset- and file metadata forms (metadata tab forms)

These are the default forms used in the metadata tab:

KeyForm description
defaultAssetDefault asset form
defaultVideoDefault video form
defaultAudioDefault audio form
defaultSubtitleDefault subtitle form

You can override these or specify new forms under different keys and use those by setting the form key in the Metadata Views settings

Metadata views

This setting is used to configure the metadata that is shown in the metadata tab.

{
"metadataViews": [
{
"id": "defaultMetadataView",
"name": "Default",
"active": true,
"description": "The default metadata view",
"fieldSets": {
"asset": {
"form": "assetMetadataForm",
"formFields": [
{
"metadataFieldId": "#asset/properties/title",
"expectedMetadataFieldId": "assetMetadataTitleExpected",
"order": 20
}
],
"readOnlyFields": [
{
"metadataFieldId": "created"
}
]
}
}
}
]
}
KeyRequiredTypeDescription
idYesstringA unique id for the metadata view.
nameYesstringThe name of the metadata view.
activeYesbooleanMarks the view as active, the first active view found will be used. At least one view needs to be active.
fieldSetsYesobjectFields and form configurations for the different field sets in the metadata tab.
descriptionNostringText describing the metadata view.

Field set

A field set contains configurations for the available field set types. For most field set types it is possible to configure the form, formFields and readOnlyFields. However, for the field set types container, videoStream and audioStream it is only possible to configure readOnlyFields.

KeyRequiredTypeDescription
formNostringStates which form to use for the field set metadata.
formFieldsNoobjectConfiguration for fields generated based on the form. A list of MetadataViewFields. The id of the field to configure have to be the auto-generated id.
readOnlyFieldsNoobjectRead-only fields for the fieldset. A list of MetadataViewFields.

Field set types

These are the available field set types:

KeyConfigurable fields
assetform, formFields, readOnlyFields
videoFileform, formFields, readOnlyFields
audioFileform, formFields, readOnlyFields
subtitleFileform, formFields, readOnlyFields
containerreadOnlyFields
videoStreamreadOnlyFields
audioStreamreadOnlyFields

Metadata fields

These settings are used to configure which metadata fields exist on an asset, file, media container and its video- and audio streams. Metadata fields can be used to configure a metadata view that is shown in the Metadata tab in Validate.

{
"metadataFields": [
{
"id": "title",
"key": "title",
"label": "Title"
},
{
"id": "duration",
"key": "duration",
"label": "Duration",
"source": "properties",
"displayType": "smpte",
"storedType": "timebase"
},
{
"id": "sampleRate",
"key": "sampleRate",
"label": "Sample Rate",
"source": "properties"
},
{
"id": "channels",
"key": "channels",
"label": "Channels",
"source": "properties",
"expectedMetadata": [
{
"id": "expectedChannels",
"key": "expected-channels",
"source": "assetMetadata",
"comparison": {
"key": "expected-channels-result"
}
}
]
},
{
"id": "#asset/properties/deliveryDate",
"key": "deliveryDate",
"displayType": "date",
"storedType": "utcDate"
}
]
}
KeyRequiredTypeAlternativesDefaultDescription
idYesstringUnique id for this metadata field. Required to reference this field from a metadata-view.
keyYesstringMetadata key holding the value.
labelyesstringLabel that will be shown for this metadata-field when used in metadata-view.
sourceNostringmetadata, propertiesmetadataSource limiting where to look for metadata key. Technical metadata like codec or bitrate of a media file are usually properties, and metadata is used for user defined metadata.
descriptionNostringText describing the metadata field.
displayTypeNostringsmpte, date, time,date-timeDecides in which format the metadata value should be presented in the UI. If not specified the metadata value will be displayed as it is with no conversion of any kind.
storedTypeNostringtimebase,utcDateWhich data type the value is stored as.
expectedMetadataNoobjectsee Expected metadata.

Auto-generated fields

Properties defined in forms automatically generate metadata fields. These fields can be overridden by defining a field with the same id as the auto-generated one. The id follows the pattern: #{fieldSet}/properties/${propertyName} (see for example fieldSet.asset.form in Metadata Views).

Expected metadata

An additional field describing the value that is expected for the metadata field. It also includes a comparison property with information about the comparison between the metadata field and the expected metadata.

{
"expectedMetadata": [
{
"id": "expectedChannels",
"key": "expected-channels",
"source": "assetMetadata",
"comparison": {
"source": "assetMetadata",
"key": "expected-channels-result"
}
}
]
}
KeyRequiredTypeAlternativesDescription
idYesstringUnique id for the metadata field. Required to reference the metadata field from a metadata-view.
keyYesstringMetadata key holding the value.
comparisonYesobjectsee Expected metadata comparison.
sourceNostringmetadata, properties, assetMetadata, assetProperties, relativeAssetMetadata, relativeAssetPropertiesDefault source of the metadata field limiting where to look for metadata key.

Expected metadata comparison

Property that contains information about the comparison between the metadata field and Expected metadata property. The pre-computed result from the comparison can be found using the key value. The value must be interpretable as a boolean, for example "yes", true, 1, "FALSE", null.

{
"comparison": {
"key": "expected-channels-result",
"source": "assetMetadata"
}
}
KeyRequiredTypeAlternativesDescription
keyYesstringThe metadata key holding the value.
sourceNostringmetadata, properties, assetMetadata, assetProperties, relativeAssetMetadata, relativeAssetProperties.The default expectedMetadata.source or the source of the metadata field, limiting where to look for metadata key.

Metadata view field

Describes which metadata-fields that should be included in the metadataView.

KeyRequiredTypeDescription
metadataFieldIdYesstringA reference to an existing metadata field to use as base.
labelNostringOverrides the label in the referenced metadata field.
expectedMetadataFieldIdNostringStates which expectedMetadata id that should be used from the referenced metadata-field.
orderNonumberControls the display order of the fields. The fields are sorted in ascending order.

Safe areas

The safeAreas setting defines the safe areas that should be available in the application.

{
"safeAreas": [
{
"name": "16:9 Safe area",
"url": "https://example.com/16-9.png",
"aspectRatio": "16:9"
},
...
]
}
KeyRequiredTypeDescription
nameYesstringThe name of the safe area to be shown in the validate application.
urlYesstringURL to the safe area image file.
aspectRatioYesstringAspect ratio of the image.

Track labels

You can customize how labels for video, audio and subtitle tracks are displayed by specifying a template string for each file type. The template values will be replaced with the actual properties and metadata of the file.

KeyDefaultRequiredTypeDescription
videoFileDisplay%filename (%tag, %id)NostringPossible template values: %filename, %id, %tag, %asset, %language or %metadata:{key}, i.e. %metadata:label
audioFileDisplay%filename (%tag, %id, %channels channels)NostringPossible template values: %filename, %id, %tag, %language, %asset, %channels or %metadata:{key}, i.e. %metadata:label
subtitleFileDisplay%filename (%tag, %id, %language)NostringPossible template values: %filename, %id, %tag, %asset, %language or %metadata:{key}, i.e. %metadata:label

Track order

You can customize the order video, audio and subtitles files are displayed by specifying what properties or metadata to sort on for each file type. The files are first ordered by the first value in the list, then by the second and so on. With no ordering specified the files will be displayed in the order they are defined in the launch template.

KeyDefaultRequiredTypeDescription
videoFileOrder[]NoarrayAlternatives are: tag, filename, language, id or metadata:{key}, i.e. ${metadata:label}
audioFileOrder[]NoarrayAlternatives are: tag, filename, language, id, channels or metadata:{key}, i.e. ${metadata:label}
subtitleFileOrder["id"]NoarrayAlternatives are: tag, filename, language, id or metadata:{key}, i.e. ${metadata:label}

Track Extraction

info

This feature is only available in Validate. Read the how-to guide to get started.

This feature enables playback of multiple muxed audio- and subtitle tracks in video proxy files. By default, the browser does not allow playback of more than one muxed audio track, and none of the muxed subtitle tracks.

{
"trackExtraction": {
"extractAudio": true,
"extractSubtitles": true,
"trackExtractorOptions": {
...
}
}
}
KeyRequiredTypeDescription
extractAudioNobooleanEnable track extraction for muxed audio tracks
extractSubtitlesNobooleanEnable track extraction for muxed subtitle tracks
trackExtractorOptionsNoobjectTrack extraction fine tuning options, see TrackExtractorOptions

Known limitations

  • This feature is specifically targeting the MP4 file format (.mp4) as defined by MPEG-4 Part 14
    • QuickTime file format (.mov) may work in some cases, as long as the codecs are supported (see below). We recommend that you try it out to verify.
  • The video- and audio codec support is limited to what the Media Source Extensions API supports. That in turn is dependent on what the browser vendors have implemented.
    • Usage of H.264 video codec, and AAC audio codec is a common baseline that most browser vendors support.
    • To know if your media can be played with this feature, we recommend that you try it out and see for yourself as it is so dependent on browser support.
  • The supported subtitle track formats are:
    • WebVTT (wvtt)
    • MPEG-4 Timed Text (tx3g)
    • Simple text (mett, sbtt, stxt)
    • TTML/IMSC (metx, stpp)
    • SCC (c608, c708)

JIT

JIT (or Just-In-Time) playback requires a separate JIT backend to be available.

{
"jit": {
"iceServers": [
{
"urls": "stun.l.google.com:19302"
}
],
"backendUrl": "https://example.com",
"enabled": "determinedByFile"
}
}
KeyRequiredTypeAlternativesDescription
iceServersYesobjectAn array of objects, each describing one server which may be used by the ICE agent; these are typically STUN and/or TURN servers. See RTCIceServers
backendUrlYesstringUrl to the JIT backend
enabledNostringnever, always, determinedByFileControls if and when JIT should be used

Enable for specific files

With enabled set to determinedByFile it is possible to let the file determine if it should be loaded through JIT or with a regular player. JIT will be used if the file contains the metadata entry:

{
"key": "jit",
"value": "true"
}
note

ABR files like hls or dash are not supported in JIT.

Digital Rights Management (DRM)

The DRM settings defines the settings needed to load DRM protected content.

{
"drm": {
"servers": {
"com.widevine.alpha": "https://wv-keyos.licensekeyserver.com/"
},
"licenseHeaders": {
"customdata": "PEtleU9TQXV0aGVudGljYXRpb25YTUw+"
}
}
}
KeyRequiredTypeDescription
serversNoobjectThe URLS(s) of the license server(s)
licenseHeadersNoobjectCustom headers to add to license request(s)

License Headers

If the license server requires custom headers to be set when requesting media, licenseHeaders can be used.

{
"licenseHeaders": {
"customdata": "PEtleU9TQXV0aGVudGljYXRpb25YTUw+"
}
}

In the example above the header customdata with the value PEtleU9TQXV0aGVudGljYXRpb25YTUw+ is set for every license request.

note

You can read more about how the shaka player handles this on this link.

Languages

Languages defined in the settings block under the languages key are used in language pickers for audio tracks, subtitles etc.

If no languages are defined in the settings block languages based on the ISO 639-1 codes will be used as a default. Languages provided in the settings block take precedence over the default languages.

{
"languages": [
{
"code": "en",
"label": "English"
}
]
}

Session retention

The retention of a session can be configured using the retention key.

{
"retention": "P2W"
}
KeyDefaultRequiredTypeDescription
retention"P2W"NostringSets the retention of the created session. Specified using ISO 8601 durations format. After the duration have expired since the session was created, the session will be deleted the next time Accurate.Video gets loaded into the browser.