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:
Key | Form description |
---|---|
defaultMarker | Default marker form |
adBreakStartForm | Default form for ad-break start |
adBreakEndForm | Default form for ad-break end |
adBreakBreakForm | Default form for ad-breaks |
cutForm | Default 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:
Key | Form description |
---|---|
defaultAsset | Default asset form |
defaultVideo | Default video form |
defaultAudio | Default audio form |
defaultSubtitle | Default 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"
}
]
}
}
}
]
}
Key | Required | Type | Description |
---|---|---|---|
id | Yes | string | A unique id for the metadata view. |
name | Yes | string | The name of the metadata view. |
active | Yes | boolean | Marks the view as active, the first active view found will be used. At least one view needs to be active. |
fieldSets | Yes | object | Fields and form configurations for the different field sets in the metadata tab. |
description | No | string | Text 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
.
Key | Required | Type | Description |
---|---|---|---|
form | No | string | States which form to use for the field set metadata. |
formFields | No | object | Configuration 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. |
readOnlyFields | No | object | Read-only fields for the fieldset. A list of MetadataViewFields. |
Field set types
These are the available field set types:
Key | Configurable fields |
---|---|
asset | form , formFields , readOnlyFields |
videoFile | form , formFields , readOnlyFields |
audioFile | form , formFields , readOnlyFields |
subtitleFile | form , formFields , readOnlyFields |
container | readOnlyFields |
videoStream | readOnlyFields |
audioStream | readOnlyFields |
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"
}
]
}
Key | Required | Type | Alternatives | Default | Description |
---|---|---|---|---|---|
id | Yes | string | Unique id for this metadata field. Required to reference this field from a metadata-view. | ||
key | Yes | string | Metadata key holding the value. | ||
label | yes | string | Label that will be shown for this metadata-field when used in metadata-view. | ||
source | No | string | metadata , properties | metadata | Source 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. |
description | No | string | Text describing the metadata field. | ||
displayType | No | string | smpte , date , time ,date-time | Decides 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. | |
storedType | No | string | timebase ,utcDate | Which data type the value is stored as. | |
expectedMetadata | No | object | see 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"
}
}
]
}
Key | Required | Type | Alternatives | Description |
---|---|---|---|---|
id | Yes | string | Unique id for the metadata field. Required to reference the metadata field from a metadata-view. | |
key | Yes | string | Metadata key holding the value. | |
comparison | Yes | object | see Expected metadata comparison. | |
source | No | string | metadata , properties , assetMetadata , assetProperties , relativeAssetMetadata , relativeAssetProperties | Default 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"
}
}
Key | Required | Type | Alternatives | Description |
---|---|---|---|---|
key | Yes | string | The metadata key holding the value. | |
source | No | string | metadata , 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.
Key | Required | Type | Description |
---|---|---|---|
metadataFieldId | Yes | string | A reference to an existing metadata field to use as base. |
label | No | string | Overrides the label in the referenced metadata field. |
expectedMetadataFieldId | No | string | States which expectedMetadata id that should be used from the referenced metadata-field. |
order | No | number | Controls 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"
},
...
]
}
Key | Required | Type | Description |
---|---|---|---|
name | Yes | string | The name of the safe area to be shown in the validate application. |
url | Yes | string | URL to the safe area image file. |
aspectRatio | Yes | string | Aspect 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.
Key | Default | Required | Type | Description |
---|---|---|---|---|
videoFileDisplay | %filename (%tag, %id) | No | string | Possible template values: %filename , %id , %tag , %asset , %language or %metadata:{key} , i.e. %metadata:label |
audioFileDisplay | %filename (%tag, %id, %channels channels) | No | string | Possible template values: %filename , %id , %tag , %language , %asset , %channels or %metadata:{key} , i.e. %metadata:label |
subtitleFileDisplay | %filename (%tag, %id, %language) | No | string | Possible 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.
Key | Default | Required | Type | Description |
---|---|---|---|---|
videoFileOrder | [] | No | array | Alternatives are: tag , filename , language , id or metadata:{key} , i.e. ${metadata:label} |
audioFileOrder | [] | No | array | Alternatives are: tag , filename , language , id , channels or metadata:{key} , i.e. ${metadata:label} |
subtitleFileOrder | ["id"] | No | array | Alternatives are: tag , filename , language , id or metadata:{key} , i.e. ${metadata:label} |
Track Extraction
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": {
...
}
}
}
Key | Required | Type | Description |
---|---|---|---|
extractAudio | No | boolean | Enable track extraction for muxed audio tracks |
extractSubtitles | No | boolean | Enable track extraction for muxed subtitle tracks |
trackExtractorOptions | No | object | Track 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
)
- WebVTT (
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"
}
}
Key | Required | Type | Alternatives | Description |
---|---|---|---|---|
iceServers | Yes | object | An 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 | |
backendUrl | Yes | string | Url to the JIT backend | |
enabled | No | string | never , always , determinedByFile | Controls 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"
}
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+"
}
}
}
Key | Required | Type | Description |
---|---|---|---|
servers | No | object | The URLS(s) of the license server(s) |
licenseHeaders | No | object | Custom 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.
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"
}
Key | Default | Required | Type | Description |
---|---|---|---|---|
retention | "P2W" | No | string | Sets 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. |