{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/bitmovin/bitmovin-api-sdk-examples/main/bitmovin-encoding-template.json",
"title": "Bitmovin Encoding Template JSON Schema",
"description": "An encoding workflow from a single configuration template",
"properties": {
"metaData": {
"type": "object",
"description": "Metadata for the encoding template",
"properties": {
"name": {
"description": "Metadata for the encoding template",
"type": "string"
},
"type": {
"description": "The type of the encoding template",
"enum": ["VOD", "LIVE"],
"type": "string"
}
},
"required": ["name", "type"]
},
"inputs": {
"type": "object",
"properties": {
"redundantRtmp": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "RedundantRtmpInput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"delayThreshold": {
"description": "When there is no input signal present and this threshold in seconds is reached it will switch to another ingest point",
"type": "integer"
},
"ingestPoints": {
"description": "Configuration for ingest points that use a dynamic IP based endpoint to stream to e.g.: rtmp://41.167.11.21/live\nEither ingestPoints **or** staticIngestPoints can be set\n",
"items": {
"type": "object",
"title": "RtmpIngestPoint",
"properties": {
"applicationName": {
"description": "The name of the application where the ingest is streamed to. This has to be unique for each ingest point",
"type": "string"
},
"streamKey": {
"description": "The stream key for the backup input",
"type": "string"
}
},
"required": ["applicationName", "streamKey"]
},
"type": "array"
},
"staticIngestPoints": {
"description": "Configuration for static ingest points. These ingest points use a consistent endpoint to stream to e.g.: rtmps://live-ingest.bitmovin.com/live\nEither ingestPoints **or** staticIngestPoints can be set\n",
"items": {
"type": "object",
"title": "StaticRtmpIngestPoint",
"properties": {
"id": {
"description": "The ID of the created static rtmp ingest point\n",
"type": "string"
},
"name": {
"description": "Name of the ingest point. This can be helpful for easier identifying your ingest points\n",
"type": "string"
},
"streamKeyConfiguration": {
"type": "object",
"properties": {
"type": {
"title": "StreamKeyConfigurationType",
"enum": ["GENERATE", "ASSIGN"],
"type": "string"
},
"streamKeyId": {
"description": "Id of the previously generated stream key. \nOnly needed when the type is `ASSIGN`.\n",
"type": "string"
}
},
"required": ["type"]
}
}
},
"type": "array"
}
}
}
},
"required": ["properties"]
}
}
},
"s3": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "S3Input",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"cloudRegion": {
"description": "The cloud region in which the bucket is located. Is used to determine the ideal location for your encodings automatically.",
"enum": [
"US_EAST_1",
"US_EAST_2",
"US_WEST_1",
"US_WEST_2",
"EU_WEST_1",
"EU_CENTRAL_1",
"AP_SOUTHEAST_1",
"AP_SOUTHEAST_2",
"AP_NORTHEAST_1",
"AP_NORTHEAST_2",
"AP_SOUTH_1",
"SA_EAST_1",
"EU_WEST_2",
"EU_WEST_3",
"CA_CENTRAL_1",
"EU_NORTH_1"
],
"type": "string"
},
"bucketName": {
"description": "Name of the bucket",
"type": "string"
},
"accessKey": {
"description": "Amazon access key",
"type": "string"
},
"secretKey": {
"description": "Amazon secret key",
"type": "string"
}
},
"required": ["accessKey", "bucketName", "secretKey"]
}
},
"required": ["properties"]
}
}
},
"s3RoleBased": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "S3RoleBasedInput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bucketName": {
"description": "Amazon S3 bucket name",
"type": "string"
},
"roleArn": {
"description": "Amazon ARN of the IAM Role (Identity and Access Management Role) that will be assumed for S3 access.\n\nThis role has to be created by the owner of the account with the S3 bucket (i.e., you as a customer). For Bitmovin to be able to assume this role, the following has to be added\nto the trust policy of the role:\n\n```\n{\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::630681592166:user/bitmovinCustomerS3Access\"\n },\n \"Action\": \"sts:AssumeRole\",\n \"Condition\": {\n \"StringEquals\": {\n \"sts:ExternalId\": \"{{externalId}}\"\n }\n }\n}\n```\n\nwhere \"arn:aws:iam::630681592166:user/bitmovinCustomerS3Access\" is the Bitmovin user used for the access.\nThe `Condition` is optional but we highly recommend it, see property `externalId` below for more information.\n\nThis setup allows Bitmovin assume the provided IAM role and to read data from your S3 bucket. Please note that the IAM role has to have read access on S3.\n\nFor more information about role creation please visit https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console\n",
"type": "string"
},
"externalId": {
"description": "External ID used together with the IAM role identified by `roleArn` to assume S3 access.\n\nThis ID is provided by the API if `externalIdMode` is set to `GLOBAL` or `GENERATED`. If present, it has to be added to the trust policy of the IAM role `roleArn` configured above, otherwise the API won't be able to read from the S3 bucket. An appropriate trust policy would look like this:\n\n```\n{\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::630681592166:user/bitmovinCustomerS3Access\"\n },\n \"Action\": \"sts:AssumeRole\",\n \"Condition\": {\n \"StringEquals\": {\n \"sts:ExternalId\": \"{{externalId}}\"\n }\n }\n}\n```\n\nwhere \"{{externalId}}\" is the generated ID.\n\nThis property is optional but we recommend it as an additional security feature. We will use both the `roleArn` and the `externalId` to access your S3 data.\nIf the Amazon IAM role has an external ID configured but it is not provided in the input configuration Bitmovin won't be able to read from the S3 bucket. Also if the\nexternal ID does not match the one configured for the IAM role on AWS side, Bitmovin won't be able to access the S3 bucket.\n\nIf you need to change the external ID that is used by your IAM role, you need to create a new input, and use the external ID provided by the API to update your IAM role.\n\nFor more information please visit https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html\n",
"type": "string"
},
"externalIdMode": {
"enum": ["CUSTOM", "GLOBAL", "GENERATED"],
"type": "string"
},
"cloudRegion": {
"enum": [
"US_EAST_1",
"US_EAST_2",
"US_WEST_1",
"US_WEST_2",
"EU_WEST_1",
"EU_CENTRAL_1",
"AP_SOUTHEAST_1",
"AP_SOUTHEAST_2",
"AP_NORTHEAST_1",
"AP_NORTHEAST_2",
"AP_SOUTH_1",
"SA_EAST_1",
"EU_WEST_2",
"EU_WEST_3",
"CA_CENTRAL_1",
"EU_NORTH_1"
],
"type": "string"
}
},
"required": ["bucketName", "roleArn"]
}
},
"required": ["properties"]
}
}
},
"genericS3": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "GenericS3Input",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bucketName": {
"description": "Your generic S3 bucket name",
"type": "string"
},
"host": {
"description": "The generic S3 server hostname (or IP address)",
"type": "string"
},
"port": {
"description": "The port on which the generic S3 server is running on (if not provided 8000 will be used)",
"type": "integer"
},
"ssl": {
"type": "boolean",
"description": "Controls whether SSL is used or not"
},
"signingRegion": {
"description": "The signing region to use",
"type": "string"
},
"signatureVersion": {
"description": "Specifies the method used for authentication",
"enum": ["S3_V2", "S3_V4"],
"type": "string"
},
"accessKey": {
"description": "Your generic S3 access key",
"type": "string"
},
"secretKey": {
"description": "Your generic S3 secret key",
"type": "string"
},
"accessStyle": {
"description": "Specifies the URL access style to use",
"enum": ["VIRTUAL_HOSTED", "PATH"],
"type": "string"
}
},
"required": ["accessKey", "bucketName", "host", "secretKey"]
}
},
"required": ["properties"]
}
}
},
"local": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "LocalInput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"path": {
"description": "Path to your local storage",
"type": "string"
}
},
"required": ["path"]
}
},
"required": ["properties"]
}
}
},
"gcs": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "GcsInput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bucketName": {
"description": "Name of the bucket",
"type": "string"
},
"cloudRegion": {
"description": "The cloud region in which the bucket is located. Is used to determine the ideal location for your encodings automatically.",
"enum": [
"US_CENTRAL_1",
"US_EAST_1",
"ASIA_EAST_1",
"EUROPE_WEST_1",
"US_WEST_1",
"ASIA_EAST_2",
"ASIA_NORTHEAST_1",
"ASIA_SOUTH_1",
"ASIA_SOUTHEAST_1",
"AUSTRALIA_SOUTHEAST_1",
"EUROPE_NORTH_1",
"EUROPE_WEST_2",
"EUROPE_WEST_3",
"EUROPE_WEST_4",
"NORTHAMERICA_NORTHEAST_1",
"SOUTHAMERICA_EAST_1",
"US_EAST_4",
"US_WEST_2",
"ME_CENTRAL_2"
],
"type": "string"
},
"accessKey": {
"description": "GCS access key",
"type": "string"
},
"secretKey": {
"description": "GCS secret key",
"type": "string"
}
},
"required": ["accessKey", "bucketName", "secretKey"]
}
},
"required": ["properties"]
}
}
},
"gcsServiceAccount": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "GcsServiceAccountInput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"serviceAccountCredentials": {
"description": "GCS projectId",
"type": "string"
},
"bucketName": {
"description": "Name of the bucket",
"type": "string"
},
"cloudRegion": {
"description": "The cloud region in which the bucket is located. Is used to determine the ideal location for your encodings automatically.",
"enum": [
"US_CENTRAL_1",
"US_EAST_1",
"ASIA_EAST_1",
"EUROPE_WEST_1",
"US_WEST_1",
"ASIA_EAST_2",
"ASIA_NORTHEAST_1",
"ASIA_SOUTH_1",
"ASIA_SOUTHEAST_1",
"AUSTRALIA_SOUTHEAST_1",
"EUROPE_NORTH_1",
"EUROPE_WEST_2",
"EUROPE_WEST_3",
"EUROPE_WEST_4",
"NORTHAMERICA_NORTHEAST_1",
"SOUTHAMERICA_EAST_1",
"US_EAST_4",
"US_WEST_2",
"ME_CENTRAL_2"
],
"type": "string"
}
},
"required": ["bucketName", "serviceAccountCredentials"]
}
},
"required": ["properties"]
}
}
},
"azure": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "AzureInput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"accountName": {
"description": "Azure Account Name",
"type": "string"
},
"accountKey": {
"description": "Azure Account Key",
"type": "string"
},
"container": {
"description": "Name of the bucket",
"type": "string"
}
},
"required": ["accountKey", "accountName", "container"]
}
},
"required": ["properties"]
}
}
},
"ftp": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "FtpInput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"host": {
"description": "Host URL or IP of the FTP server",
"type": "string"
},
"port": {
"description": "Port to use, standard for FTP: 21",
"type": "integer"
},
"passive": {
"type": "boolean",
"description": "Use passive mode. Default is true."
},
"username": {
"description": "Your FTP Username",
"type": "string"
},
"password": {
"description": "Your FTP password",
"type": "string"
},
"remoteVerificationEnabled": {
"type": "boolean",
"description": "Ensure that connections originate from the declared ftp host. Default is true."
}
},
"required": ["host"]
}
},
"required": ["properties"]
}
}
},
"sftp": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SftpInput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"host": {
"description": "Host Url or IP of the SFTP server",
"type": "string"
},
"port": {
"description": "Port to use, standard for SFTP: 22",
"type": "integer"
},
"passive": {
"type": "boolean",
"description": "Use passive mode. Default is true."
},
"username": {
"description": "Your SFTP Username",
"type": "string"
},
"password": {
"description": "Your SFTP password",
"type": "string"
}
},
"required": ["host"]
}
},
"required": ["properties"]
}
}
},
"http": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "HttpInput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"host": {
"description": "Host Url or IP of the HTTP server",
"type": "string"
},
"username": {
"description": "Basic Auth Username, if required",
"type": "string"
},
"password": {
"description": "Basic Auth Password, if required",
"type": "string"
},
"port": {
"description": "Custom Port",
"type": "integer"
}
},
"required": ["host"]
}
},
"required": ["properties"]
}
}
},
"https": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "HttpsInput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"host": {
"description": "Host Url or IP of the HTTP server",
"type": "string"
},
"username": {
"description": "Basic Auth Username, if required",
"type": "string"
},
"password": {
"description": "Basic Auth Password, if required",
"type": "string"
},
"port": {
"description": "Custom Port",
"type": "integer"
}
},
"required": ["host"]
}
},
"required": ["properties"]
}
}
},
"aspera": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "AsperaInput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"minBandwidth": {
"description": "Minimal download bandwidth. Examples: 100k, 100m, 100g",
"type": "string"
},
"maxBandwidth": {
"description": "Maximal download bandwidth. Examples: 100k, 100m, 100g",
"type": "string"
},
"host": {
"description": "Host to use for Aspera transfers",
"type": "string"
},
"username": {
"description": "Username to log into Aspera host (either password and user must be set or token)",
"type": "string"
},
"password": {
"description": "corresponding password (either password and user must be set or token)",
"type": "string"
},
"token": {
"description": "Token used for authentication (either password and user must be set or token)",
"type": "string"
},
"sshPort": {
"description": "Set the TCP port to be used for fasp session initiation",
"type": "integer"
},
"faspPort": {
"description": "Set the UDP port to be used by fasp for data transfer",
"type": "integer"
}
},
"required": ["host"]
}
},
"required": ["properties"]
}
}
},
"akamaiNetstorage": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "AkamaiNetStorageInput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"host": {
"description": "Host to use for Akamai NetStorage transfers",
"type": "string"
},
"username": {
"description": "Your Akamai NetStorage Username",
"type": "string"
},
"password": {
"description": "Your Akamai NetStorage password",
"type": "string"
}
},
"required": ["host", "password", "username"]
}
},
"required": ["properties"]
}
}
},
"srt": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SrtInput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"backupSrtInputs": {
"items": {
"type": "object",
"title": "SrtInput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"mode": {
"description": "The SRT mode to use",
"enum": ["LISTENER", "CALLER"],
"type": "string"
},
"host": {
"description": "The name or IP of the host providing the SRT stream (only used in CALLER mode)",
"type": "string"
},
"port": {
"description": "The port to connect to or listen on. Has to be one of [2088, 2089, 2090, 2091] when using LISTENER mode.",
"type": "integer"
},
"path": {
"description": "The path parameter of the SRT stream",
"type": "string"
},
"latency": {
"description": "The maximum accepted transmission latency in milliseconds (when both parties set different values, the maximum of the two is used for both)",
"type": "integer"
},
"passphrase": {
"description": "The passphrase used to secure the SRT stream. For AES-128 encryption, you must enter a 16-character passphrase; for AES-256, you must enter a 32-character passphrase",
"type": "string"
},
"keyLength": {
"description": "The type of AES encryption determines the length of the key (passphrase). AES-128 uses a 16-character (128-bit) passphrase, and AES-256 uses a 32-character (256-bit) passphrase.",
"type": "integer"
}
},
"required": ["mode", "port"]
},
"type": "array"
}
}
}
},
"required": ["properties"]
}
}
},
"zixi": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ZixiInput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"host": {
"type": "string"
},
"port": {
"type": "integer"
},
"stream": {
"type": "string"
},
"password": {
"type": "string"
},
"latency": {
"type": "integer"
},
"minBitrate": {
"type": "integer"
},
"decryptionType": {
"type": "string"
},
"decryptionKey": {
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
},
"directFileUpload": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DirectFileUploadInput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
}
}
}
},
"required": ["properties"]
}
}
}
}
},
"outputs": {
"type": "object",
"properties": {
"checkPermissions": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "CheckOutputPermissionsRequest",
"properties": {
"path": {
"description": "The path on the storage for which permissions should be checked. In AWS S3 terminology, this corresponds to a \"prefix\". To perform the check, an empty test file (WritePermissionTestFile.txt) will be created in this location. Defaults to an empty string, which corresponds to the root directory.",
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
},
"s3": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "S3Output",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"acl": {
"description": "Deprecation notice: This property does not have any effect and will not be returned by GET endpoints",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
},
"bucketName": {
"description": "Amazon S3 bucket name",
"type": "string"
},
"accessKey": {
"description": "Amazon S3 access key",
"type": "string"
},
"secretKey": {
"description": "Amazon S3 secret key",
"type": "string"
},
"md5MetaTag": {
"description": "If set a user defined tag (x-amz-meta-) with that key will be used to store the MD5 hash of the file.",
"type": "string"
},
"cloudRegion": {
"description": "The cloud region in which the bucket is located. Is used to determine the ideal location for your encodings automatically.",
"enum": [
"US_EAST_1",
"US_EAST_2",
"US_WEST_1",
"US_WEST_2",
"EU_WEST_1",
"EU_CENTRAL_1",
"AP_SOUTHEAST_1",
"AP_SOUTHEAST_2",
"AP_NORTHEAST_1",
"AP_NORTHEAST_2",
"AP_SOUTH_1",
"SA_EAST_1",
"EU_WEST_2",
"EU_WEST_3",
"CA_CENTRAL_1",
"EU_NORTH_1"
],
"type": "string"
},
"signatureVersion": {
"description": "Specifies the method used for authentication. Must be set to S3_V2 if the region supports both V2 and V4, but the bucket allows V2 only (see https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)",
"enum": ["S3_V2", "S3_V4"],
"type": "string"
}
},
"required": ["accessKey", "bucketName", "secretKey"]
}
},
"required": ["properties"]
}
}
},
"s3RoleBased": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "S3RoleBasedOutput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"acl": {
"description": "Deprecation notice: This property does not have any effect and will not be returned by GET endpoints",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
},
"bucketName": {
"description": "Amazon S3 bucket name",
"type": "string"
},
"roleArn": {
"description": "Amazon ARN of the IAM Role (Identity and Access Management Role) that will be assumed for S3 access.\n\nThis role has to be created by the owner of the account with the S3 bucket (i.e., you as a customer). For Bitmovin to be able to assume this role, the following has to be added\nto the trust policy of the role:\n\n```\n{\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::630681592166:user/bitmovinCustomerS3Access\"\n },\n \"Action\": \"sts:AssumeRole\",\n \"Condition\": {\n \"StringEquals\": {\n \"sts:ExternalId\": \"{{externalId}}\"\n }\n }\n}\n```\n\nwhere \"arn:aws:iam::630681592166:user/bitmovinCustomerS3Access\" is the Bitmovin user used for the access.\nThe `Condition` is optional but we highly recommend it, see property `externalId` below for more information.\n\nThis setup allows Bitmovin assume the provided IAM role and to write data to your S3 bucket. Please note that the IAM role has to have write access to S3.\n\nFor more information about role creation please visit https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console\n",
"type": "string"
},
"externalId": {
"description": "External ID used together with the IAM role identified by `roleArn` to assume S3 access.\n\nThis ID is provided by the API if `externalIdMode` is set to `GLOBAL` or `GENERATED`. If present, it has to be added to the trust policy of the IAM role `roleArn` configured above, otherwise the API won't be able to write to the S3 bucket. An appropriate trust policy would look like this:\n\n```\n{\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::630681592166:user/bitmovinCustomerS3Access\"\n },\n \"Action\": \"sts:AssumeRole\",\n \"Condition\": {\n \"StringEquals\": {\n \"sts:ExternalId\": \"{{externalId}}\"\n }\n }\n}\n```\n\nwhere \"{{externalId}}\" is the generated ID.\n\nThis property is optional but we recommend it as an additional security feature. We will use both the `roleArn` and the `externalId` to access your S3 data.\nIf the Amazon IAM role has an external ID configured but it is not provided in the output configuration Bitmovin won't be able to write to the S3 bucket. Also if the\nexternal ID does not match the one configured for the IAM role on AWS side, Bitmovin won't be able to access the S3 bucket.\n\nIf you need to change the external ID that is used by your IAM role, you need to create a new output, and use the external ID provided by the API to update your IAM role.\n\nFor more information please visit https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html\n",
"type": "string"
},
"externalIdMode": {
"enum": ["CUSTOM", "GLOBAL", "GENERATED"],
"type": "string"
},
"md5MetaTag": {
"description": "If set a user defined tag (x-amz-meta-) with that key will be used to store the MD5 hash of the file.",
"type": "string"
},
"cloudRegion": {
"enum": [
"US_EAST_1",
"US_EAST_2",
"US_WEST_1",
"US_WEST_2",
"EU_WEST_1",
"EU_CENTRAL_1",
"AP_SOUTHEAST_1",
"AP_SOUTHEAST_2",
"AP_NORTHEAST_1",
"AP_NORTHEAST_2",
"AP_SOUTH_1",
"SA_EAST_1",
"EU_WEST_2",
"EU_WEST_3",
"CA_CENTRAL_1",
"EU_NORTH_1"
],
"type": "string"
},
"signatureVersion": {
"description": "Specifies the method used for authentication",
"enum": ["S3_V2", "S3_V4"],
"type": "string"
}
},
"required": ["bucketName", "roleArn"]
}
},
"required": ["properties"]
}
}
},
"genericS3": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "GenericS3Output",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"acl": {
"description": "Deprecation notice: This property does not have any effect and will not be returned by GET endpoints",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
},
"accessKey": {
"description": "Your generic S3 access key",
"type": "string"
},
"secretKey": {
"description": "Your generic S3 secret key",
"type": "string"
},
"bucketName": {
"description": "Name of the bucket",
"type": "string"
},
"host": {
"description": "The Generic S3 server hostname (or IP address)",
"type": "string"
},
"port": {
"description": "The port on which the Generic S3 server is running on (if not provided 8000 will be used)",
"type": "integer"
},
"ssl": {
"type": "boolean",
"description": "Controls whether SSL is used or not"
},
"signingRegion": {
"description": "The signing region to use",
"type": "string"
},
"signatureVersion": {
"description": "Specifies the method used for authentication",
"enum": ["S3_V2", "S3_V4"],
"type": "string"
},
"accessStyle": {
"description": "Specifies the URL access style to use",
"enum": ["VIRTUAL_HOSTED", "PATH"],
"type": "string"
}
},
"required": ["accessKey", "bucketName", "host", "secretKey"]
}
},
"required": ["properties"]
}
}
},
"local": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "LocalOutput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"acl": {
"description": "Deprecation notice: This property does not have any effect and will not be returned by GET endpoints",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
},
"path": {
"description": "Path to your local storage",
"type": "string"
}
},
"required": ["path"]
}
},
"required": ["properties"]
}
}
},
"gcs": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "GcsOutput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"acl": {
"description": "Deprecation notice: This property does not have any effect and will not be returned by GET endpoints",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
},
"accessKey": {
"description": "GCS access key",
"type": "string"
},
"secretKey": {
"description": "GCS secret key",
"type": "string"
},
"bucketName": {
"description": "Name of the bucket",
"type": "string"
},
"cloudRegion": {
"description": "The cloud region in which the bucket is located. Is used to determine the ideal location for your encodings automatically.",
"enum": [
"US_CENTRAL_1",
"US_EAST_1",
"ASIA_EAST_1",
"EUROPE_WEST_1",
"US_WEST_1",
"ASIA_EAST_2",
"ASIA_NORTHEAST_1",
"ASIA_SOUTH_1",
"ASIA_SOUTHEAST_1",
"AUSTRALIA_SOUTHEAST_1",
"EUROPE_NORTH_1",
"EUROPE_WEST_2",
"EUROPE_WEST_3",
"EUROPE_WEST_4",
"NORTHAMERICA_NORTHEAST_1",
"SOUTHAMERICA_EAST_1",
"US_EAST_4",
"US_WEST_2",
"ME_CENTRAL_2"
],
"type": "string"
}
},
"required": ["accessKey", "bucketName", "secretKey"]
}
},
"required": ["properties"]
}
}
},
"gcsServiceAccount": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "GcsServiceAccountOutput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"acl": {
"description": "Deprecation notice: This property does not have any effect and will not be returned by GET endpoints",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
},
"serviceAccountCredentials": {
"description": "GCS projectId",
"type": "string"
},
"bucketName": {
"description": "Name of the bucket",
"type": "string"
},
"cloudRegion": {
"description": "The cloud region in which the bucket is located. Is used to determine the ideal location for your encodings automatically.",
"enum": [
"US_CENTRAL_1",
"US_EAST_1",
"ASIA_EAST_1",
"EUROPE_WEST_1",
"US_WEST_1",
"ASIA_EAST_2",
"ASIA_NORTHEAST_1",
"ASIA_SOUTH_1",
"ASIA_SOUTHEAST_1",
"AUSTRALIA_SOUTHEAST_1",
"EUROPE_NORTH_1",
"EUROPE_WEST_2",
"EUROPE_WEST_3",
"EUROPE_WEST_4",
"NORTHAMERICA_NORTHEAST_1",
"SOUTHAMERICA_EAST_1",
"US_EAST_4",
"US_WEST_2",
"ME_CENTRAL_2"
],
"type": "string"
}
},
"required": ["bucketName", "serviceAccountCredentials"]
}
},
"required": ["properties"]
}
}
},
"azure": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "AzureOutput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"acl": {
"description": "Deprecation notice: This property does not have any effect and will not be returned by GET endpoints",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
},
"accountName": {
"description": "Azure Account Name",
"type": "string"
},
"accountKey": {
"description": "Azure Account Key",
"type": "string"
},
"container": {
"description": "Name of the bucket",
"type": "string"
}
},
"required": ["accountKey", "accountName", "container"]
}
},
"required": ["properties"]
}
}
},
"ftp": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "FtpOutput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"acl": {
"description": "Deprecation notice: This property does not have any effect and will not be returned by GET endpoints",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
},
"host": {
"description": "Host URL or IP of the FTP server",
"type": "string"
},
"port": {
"description": "Port to use, standard for FTP: 21",
"type": "integer"
},
"passive": {
"type": "boolean",
"description": "Use passive mode. Default is true."
},
"username": {
"description": "Your FTP Username",
"type": "string"
},
"password": {
"description": "Your FTP password",
"type": "string"
},
"transferVersion": {
"description": "Controls which transfer version should be used",
"enum": ["DEFAULT", "POOL"],
"type": "string"
},
"maxConcurrentConnections": {
"description": "Restrict maximum concurrent connections. Requires at least version 1.1.0.",
"type": "integer"
}
},
"required": ["host"]
}
},
"required": ["properties"]
}
}
},
"sftp": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SftpOutput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"acl": {
"description": "Deprecation notice: This property does not have any effect and will not be returned by GET endpoints",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
},
"host": {
"description": "Host Url or IP of the SFTP server",
"type": "string"
},
"port": {
"description": "Port to use, standard for SFTP: 22",
"type": "integer"
},
"passive": {
"type": "boolean",
"description": "Use passive mode. Default is true."
},
"username": {
"description": "Your SFTP Username",
"type": "string"
},
"password": {
"description": "Your SFTP password",
"type": "string"
},
"transferVersion": {
"description": "Controls which transfer version should be used",
"enum": ["DEFAULT", "POOL"],
"type": "string"
},
"maxConcurrentConnections": {
"description": "Restrict maximum concurrent connections. Requires at least version 1.1.0.",
"type": "integer"
}
},
"required": ["host"]
}
},
"required": ["properties"]
}
}
},
"akamaiMsl": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "AkamaiMslOutput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"acl": {
"description": "Deprecation notice: This property does not have any effect and will not be returned by GET endpoints",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
},
"streamId": {
"description": "The Akamai stream ID",
"type": "integer"
},
"eventName": {
"description": "The Akamai event name",
"type": "string"
},
"streamFormat": {
"description": "- DASH: configure the Encoding with fMP4 or CMAF muxings and a DASH manifest.\n- HLS: configure the Encoding with TS muxings and an HLS manifest.\n- CMAF: configure the Encoding with fMP4 or CMAF muxings with both DASH and HLS manifests.\n",
"enum": ["DASH", "HLS", "CMAF"],
"type": "string"
},
"mslVersion": {
"description": "The Akamai MSL Version. Only MSL4 is supported at the moment.",
"enum": ["MSL4"],
"type": "string"
}
},
"required": [
"eventName",
"mslVersion",
"streamFormat",
"streamId"
]
}
},
"required": ["properties"]
}
}
},
"akamaiNetstorage": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "AkamaiNetStorageOutput",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"acl": {
"description": "Deprecation notice: This property does not have any effect and will not be returned by GET endpoints",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
},
"host": {
"description": "Host to use for Akamai NetStorage transfers",
"type": "string"
},
"username": {
"description": "Your Akamai NetStorage Username",
"type": "string"
},
"password": {
"description": "Your Akamai NetStorage password",
"type": "string"
}
},
"required": ["host", "password", "username"]
}
},
"required": ["properties"]
}
}
},
"liveMediaIngest": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "LiveMediaIngestOutput",
"description": "Live Media and Metadata Ingest Protocol. See https://tools.ietf.org/html/draft-mekuria-mmediaingest-01.",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"acl": {
"description": "Deprecation notice: This property does not have any effect and will not be returned by GET endpoints",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
},
"publishingPoint": {
"description": "URL specifying the publishing point for the output. Can use either http or https.",
"type": "string"
}
},
"required": ["publishingPoint"]
}
},
"required": ["properties"]
}
}
}
}
},
"configurations": {
"type": "object",
"properties": {
"video": {
"type": "object",
"properties": {
"h262": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "H262VideoConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"width": {
"description": "Width of the encoded video in pixels",
"type": "integer"
},
"height": {
"description": "Height of the encoded video in pixels",
"type": "integer"
},
"bitrate": {
"description": "Target bitrate for the encoded video in bps. Either bitrate or crf is required.",
"type": "integer"
},
"rate": {
"description": "Target frame rate of the encoded video. Must be set for live encodings",
"format": "double",
"type": "number"
},
"pixelFormat": {
"description": "Describes the color encoding, bit depth, and chroma subsampling of each pixel in the output image.",
"enum": [
"YUV410P",
"YUV411P",
"YUV420P",
"YUV422P",
"YUV440P",
"YUV444P",
"YUVJ411P",
"YUVJ420P",
"YUVJ422P",
"YUVJ440P",
"YUVJ444P",
"YUV420P10LE",
"YUV422P10LE",
"YUV440P10LE",
"YUV444P10LE",
"YUV420P12LE",
"YUV422P12LE",
"YUV440P12LE",
"YUV444P12LE",
"YUV420P10BE",
"YUV422P10BE",
"YUV440P10BE",
"YUV444P10BE",
"YUV420P12BE",
"YUV422P12BE",
"YUV440P12BE",
"YUV444P12BE"
],
"type": "string"
},
"colorConfig": {
"type": "object",
"properties": {
"copyChromaLocationFlag": {
"type": "boolean",
"description": "Copy the chroma location setting from the input source"
},
"copyColorSpaceFlag": {
"type": "boolean",
"description": "Copy the color space setting from the input source"
},
"copyColorPrimariesFlag": {
"type": "boolean",
"description": "Copy the color primaries setting from the input source"
},
"copyColorRangeFlag": {
"type": "boolean",
"description": "Copy the color range setting from the input source"
},
"copyColorTransferFlag": {
"type": "boolean",
"description": "Copy the color transfer setting from the input source"
},
"chromaLocation": {
"description": "The chroma location to be applied",
"enum": [
"UNSPECIFIED",
"LEFT",
"CENTER",
"TOPLEFT",
"TOP",
"BOTTOMLEFT",
"BOTTOM"
],
"type": "string"
},
"colorSpace": {
"description": "The color space to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"RGB",
"BT709",
"FCC",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"YCGCO",
"YCOCG",
"BT2020_NCL",
"BT2020_CL",
"SMPTE2085"
],
"type": "string"
},
"colorPrimaries": {
"description": "The color primaries to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"BT709",
"BT470M",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"FILM",
"BT2020",
"SMPTE428",
"SMPTEST428_1",
"SMPTE431",
"SMPTE432",
"JEDEC_P22"
],
"type": "string"
},
"colorRange": {
"description": "The color range to be applied. If used on a Dolby Vision stream, this value must be set to JPEG.",
"enum": ["UNSPECIFIED", "MPEG", "JPEG"],
"type": "string"
},
"colorTransfer": {
"description": "The color transfer to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"BT709",
"GAMMA22",
"GAMMA28",
"SMPTE170M",
"SMPTE240M",
"LINEAR",
"LOG",
"LOG_SQRT",
"IEC61966_2_4",
"BT1361_ECG",
"IEC61966_2_1",
"BT2020_10",
"BT2020_12",
"SMPTE2084",
"SMPTE428",
"ARIB_STD_B67"
],
"type": "string"
},
"inputColorSpace": {
"description": "Override the color space detected in the input file. If not set the input color space will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"RGB",
"BT709",
"FCC",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"YCGCO",
"YCOCG",
"BT2020_NCL",
"BT2020_CL",
"SMPTE2085"
],
"type": "string"
},
"inputColorRange": {
"description": "Override the color range detected in the input file. If not set the input color range will be automatically detected if possible.",
"enum": ["UNSPECIFIED", "MPEG", "JPEG"],
"type": "string"
},
"inputColorPrimaries": {
"description": "Override the color primaries detected in the input file. If not set the input color primaries will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"BT709",
"BT470M",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"FILM",
"BT2020",
"SMPTE428",
"SMPTEST428_1",
"SMPTE431",
"SMPTE432",
"JEDEC_P22"
],
"type": "string"
},
"inputColorTransfer": {
"description": "Override the color transfer detected in the input file. If not set the input color transfer will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"BT709",
"GAMMA22",
"GAMMA28",
"SMPTE170M",
"SMPTE240M",
"LINEAR",
"LOG",
"LOG_SQRT",
"IEC61966_2_4",
"BT1361_ECG",
"IEC61966_2_1",
"BT2020_10",
"BT2020_12",
"SMPTE2084",
"SMPTE428",
"ARIB_STD_B67"
],
"type": "string"
}
}
},
"sampleAspectRatioNumerator": {
"description": "The numerator of the sample aspect ratio (also known as pixel aspect ratio). Must be set if sampleAspectRatioDenominator is set. If set then displayAspectRatio is not allowed.",
"type": "integer"
},
"sampleAspectRatioDenominator": {
"description": "The denominator of the sample aspect ratio (also known as pixel aspect ratio). Must be set if sampleAspectRatioNumerator is set. If set then displayAspectRatio is not allowed.",
"type": "integer"
},
"displayAspectRatio": {
"type": "object",
"description": "Specifies a display aspect ratio (DAR) to be enforced. The sample aspect ratio (SAR) will be adjusted accordingly. If set then sampleAspectRatioNumerator and sampleAspectRatioDenominator are not allowed.",
"properties": {
"numerator": {
"description": "The numerator of the display aspect ratio (DAR). For example for a DAR of 16:9, the value 16 must be used.",
"minimum": 1,
"type": "integer"
},
"denominator": {
"description": "The denominator of the display aspect ratio (DAR). For example for a DAR of 16:9, the value 9 must be used.",
"minimum": 1,
"type": "integer"
}
},
"required": ["denominator", "numerator"]
},
"encodingMode": {
"description": "The mode of the encoding. When this is set, `encodingMode` (`liveEncodingMode`) must not be set in the (live) encoding start request.",
"enum": [
"STANDARD",
"SINGLE_PASS",
"TWO_PASS",
"THREE_PASS"
],
"type": "string"
},
"presetConfiguration": {
"description": "Use a set of well defined configurations preset to support certain use cases. Can be overwritten with more specific values.",
"enum": ["XDCAM_HD_422"],
"type": "string"
},
"profile": {
"description": "When setting a profile, all other settings must not exceed the limits which are defined in the profile. Otherwise, a higher profile may be automatically chosen.",
"enum": ["MPEG2_422"],
"type": "string"
},
"bframes": {
"description": "Amount of b frames.",
"minimum": 0,
"maximum": 16,
"type": "integer"
},
"maxBitrate": {
"description": "Maximum Bitrate",
"type": "integer"
},
"minBitrate": {
"description": "Minimum Bitrate",
"type": "integer"
},
"bufsize": {
"description": "Playback device buffer size",
"type": "integer"
},
"gopSize": {
"description": "Minimum GOP length, the minimum distance between I-frames",
"type": "integer"
},
"level": {
"description": "Specified set of constraints that indicate a degree of required decoder performance for a profile",
"enum": ["MAIN", "HIGH"],
"type": "string"
},
"interlaceMode": {
"description": "Using TOP_FIELD_FIRST or BOTTOM_FIELD_FIRST will output interlaced video",
"enum": [
"NONE",
"TOP_FIELD_FIRST",
"BOTTOM_FIELD_FIRST"
],
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
},
"h264": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "H264VideoConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"width": {
"description": "Width of the encoded video in pixels",
"type": "integer"
},
"height": {
"description": "Height of the encoded video in pixels",
"type": "integer"
},
"bitrate": {
"description": "Target bitrate for the encoded video in bps. Either bitrate or crf is required.",
"type": "integer"
},
"rate": {
"description": "Target frame rate of the encoded video. Must be set for live encodings",
"format": "double",
"type": "number"
},
"pixelFormat": {
"description": "Describes the color encoding, bit depth, and chroma subsampling of each pixel in the output image.",
"enum": [
"YUV410P",
"YUV411P",
"YUV420P",
"YUV422P",
"YUV440P",
"YUV444P",
"YUVJ411P",
"YUVJ420P",
"YUVJ422P",
"YUVJ440P",
"YUVJ444P",
"YUV420P10LE",
"YUV422P10LE",
"YUV440P10LE",
"YUV444P10LE",
"YUV420P12LE",
"YUV422P12LE",
"YUV440P12LE",
"YUV444P12LE",
"YUV420P10BE",
"YUV422P10BE",
"YUV440P10BE",
"YUV444P10BE",
"YUV420P12BE",
"YUV422P12BE",
"YUV440P12BE",
"YUV444P12BE"
],
"type": "string"
},
"colorConfig": {
"type": "object",
"properties": {
"copyChromaLocationFlag": {
"type": "boolean",
"description": "Copy the chroma location setting from the input source"
},
"copyColorSpaceFlag": {
"type": "boolean",
"description": "Copy the color space setting from the input source"
},
"copyColorPrimariesFlag": {
"type": "boolean",
"description": "Copy the color primaries setting from the input source"
},
"copyColorRangeFlag": {
"type": "boolean",
"description": "Copy the color range setting from the input source"
},
"copyColorTransferFlag": {
"type": "boolean",
"description": "Copy the color transfer setting from the input source"
},
"chromaLocation": {
"description": "The chroma location to be applied",
"enum": [
"UNSPECIFIED",
"LEFT",
"CENTER",
"TOPLEFT",
"TOP",
"BOTTOMLEFT",
"BOTTOM"
],
"type": "string"
},
"colorSpace": {
"description": "The color space to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"RGB",
"BT709",
"FCC",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"YCGCO",
"YCOCG",
"BT2020_NCL",
"BT2020_CL",
"SMPTE2085"
],
"type": "string"
},
"colorPrimaries": {
"description": "The color primaries to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"BT709",
"BT470M",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"FILM",
"BT2020",
"SMPTE428",
"SMPTEST428_1",
"SMPTE431",
"SMPTE432",
"JEDEC_P22"
],
"type": "string"
},
"colorRange": {
"description": "The color range to be applied. If used on a Dolby Vision stream, this value must be set to JPEG.",
"enum": ["UNSPECIFIED", "MPEG", "JPEG"],
"type": "string"
},
"colorTransfer": {
"description": "The color transfer to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"BT709",
"GAMMA22",
"GAMMA28",
"SMPTE170M",
"SMPTE240M",
"LINEAR",
"LOG",
"LOG_SQRT",
"IEC61966_2_4",
"BT1361_ECG",
"IEC61966_2_1",
"BT2020_10",
"BT2020_12",
"SMPTE2084",
"SMPTE428",
"ARIB_STD_B67"
],
"type": "string"
},
"inputColorSpace": {
"description": "Override the color space detected in the input file. If not set the input color space will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"RGB",
"BT709",
"FCC",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"YCGCO",
"YCOCG",
"BT2020_NCL",
"BT2020_CL",
"SMPTE2085"
],
"type": "string"
},
"inputColorRange": {
"description": "Override the color range detected in the input file. If not set the input color range will be automatically detected if possible.",
"enum": ["UNSPECIFIED", "MPEG", "JPEG"],
"type": "string"
},
"inputColorPrimaries": {
"description": "Override the color primaries detected in the input file. If not set the input color primaries will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"BT709",
"BT470M",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"FILM",
"BT2020",
"SMPTE428",
"SMPTEST428_1",
"SMPTE431",
"SMPTE432",
"JEDEC_P22"
],
"type": "string"
},
"inputColorTransfer": {
"description": "Override the color transfer detected in the input file. If not set the input color transfer will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"BT709",
"GAMMA22",
"GAMMA28",
"SMPTE170M",
"SMPTE240M",
"LINEAR",
"LOG",
"LOG_SQRT",
"IEC61966_2_4",
"BT1361_ECG",
"IEC61966_2_1",
"BT2020_10",
"BT2020_12",
"SMPTE2084",
"SMPTE428",
"ARIB_STD_B67"
],
"type": "string"
}
}
},
"sampleAspectRatioNumerator": {
"description": "The numerator of the sample aspect ratio (also known as pixel aspect ratio). Must be set if sampleAspectRatioDenominator is set. If set then displayAspectRatio is not allowed.",
"type": "integer"
},
"sampleAspectRatioDenominator": {
"description": "The denominator of the sample aspect ratio (also known as pixel aspect ratio). Must be set if sampleAspectRatioNumerator is set. If set then displayAspectRatio is not allowed.",
"type": "integer"
},
"displayAspectRatio": {
"type": "object",
"description": "Specifies a display aspect ratio (DAR) to be enforced. The sample aspect ratio (SAR) will be adjusted accordingly. If set then sampleAspectRatioNumerator and sampleAspectRatioDenominator are not allowed.",
"properties": {
"numerator": {
"description": "The numerator of the display aspect ratio (DAR). For example for a DAR of 16:9, the value 16 must be used.",
"minimum": 1,
"type": "integer"
},
"denominator": {
"description": "The denominator of the display aspect ratio (DAR). For example for a DAR of 16:9, the value 9 must be used.",
"minimum": 1,
"type": "integer"
}
},
"required": ["denominator", "numerator"]
},
"encodingMode": {
"description": "The mode of the encoding. When this is set, `encodingMode` (`liveEncodingMode`) must not be set in the (live) encoding start request.",
"enum": [
"STANDARD",
"SINGLE_PASS",
"TWO_PASS",
"THREE_PASS"
],
"type": "string"
},
"presetConfiguration": {
"description": "Choose from a set of preset configurations tailored for common use cases. Check out [H264 Presets](https://bitmovin.com/docs/encoding/tutorials/h264-presets) to see which values get applied by each preset. Explicitly setting a property to a different value will override the preset's value for that property.",
"enum": [
"LIVE_ULTRAHIGH_QUALITY",
"LIVE_VERYHIGH_QUALITY",
"LIVE_HIGH_QUALITY",
"LIVE_STANDARD",
"LIVE_LOW_LATENCY",
"LIVE_LOWER_LATENCY",
"LIVE_VERYLOW_LATENCY",
"VOD_HIGH_QUALITY",
"VOD_QUALITY",
"VOD_STANDARD",
"VOD_SPEED",
"VOD_HIGH_SPEED",
"VOD_VERYHIGH_SPEED",
"VOD_EXTRAHIGH_SPEED",
"VOD_SUPERHIGH_SPEED",
"VOD_ULTRAHIGH_SPEED",
"VOD_HARDWARE_SHORTFORM"
],
"type": "string"
},
"dynamicRangeFormat": {
"description": "Automatically configures the H264 Video Codec to be compatible with the given SDR format. Bitmovin recommends to use the dynamic range format together with a preset configuration to achieve good results.\nExplicitly configured properties will take precedence over dynamic range format settings, which in turn will take precedence over preset configurations.",
"enum": ["SDR"],
"type": "string"
},
"crf": {
"description": "Constant rate factor for quality-based variable bitrate. Either bitrate or crf is required.",
"minimum": 0,
"maximum": 51,
"format": "double",
"type": "number"
},
"profile": {
"description": "When setting a profile, all other settings must not exceed the limits which are defined in the profile. Otherwise, a higher profile may be automatically chosen.",
"enum": ["BASELINE", "MAIN", "HIGH", "HIGH422"],
"type": "string"
},
"bframes": {
"description": "Amount of b frames",
"minimum": 0,
"maximum": 16,
"type": "integer"
},
"refFrames": {
"description": "Amount of reference frames.",
"minimum": 1,
"maximum": 16,
"type": "integer"
},
"qpMin": {
"description": "Minimum quantization factor",
"minimum": 0,
"maximum": 69,
"type": "integer"
},
"qpMax": {
"description": "Maximum quantization factor",
"minimum": 0,
"maximum": 69,
"type": "integer"
},
"mvPredictionMode": {
"enum": ["NONE", "SPATIAL", "TEMPORAL", "AUTO"],
"type": "string"
},
"mvSearchRangeMax": {
"description": "Maximum motion vector search range",
"minimum": 16,
"maximum": 24,
"type": "integer"
},
"cabac": {
"type": "boolean",
"description": "Enable or disable CABAC"
},
"maxBitrate": {
"description": "Maximum Bitrate (bps)",
"type": "integer"
},
"minBitrate": {
"description": "Minimum Bitrate (bps)",
"type": "integer"
},
"bufsize": {
"description": "Playback device buffer size (bits)",
"type": "integer"
},
"minGop": {
"description": "Minimum GOP length, the minimum distance between I-frames",
"type": "integer"
},
"maxGop": {
"description": "Maximum GOP length, the maximum distance between I-frames",
"type": "integer"
},
"openGop": {
"type": "boolean",
"description": "Enable open-gop, allows referencing frames from a previous gop"
},
"minKeyframeInterval": {
"description": "Minimum interval in seconds between key frames",
"format": "double",
"type": "number"
},
"maxKeyframeInterval": {
"description": "Maximum interval in seconds between key frames",
"format": "double",
"type": "number"
},
"level": {
"description": "If three-pass encoding is used and a level is set for the encoder, the bitrate for some segments may exceed the bitrate limit which is defined by the level.",
"enum": [
"1",
"1b",
"1.1",
"1.2",
"1.3",
"2",
"2.1",
"2.2",
"3",
"3.1",
"3.2",
"4",
"4.1",
"4.2",
"5",
"5.1",
"5.2"
],
"type": "string"
},
"bAdaptiveStrategy": {
"enum": ["NONE", "FAST", "FULL"],
"type": "string"
},
"motionEstimationMethod": {
"enum": ["DIA", "HEX", "UMH"],
"type": "string"
},
"rcLookahead": {
"description": "Number of frames for frame-type decision lookahead",
"minimum": 0,
"maximum": 250,
"type": "integer"
},
"subMe": {
"description": "Subpixel motion estimation and mode decision",
"enum": [
"FULLPEL",
"SAD",
"SATD",
"QPEL3",
"QPEL4",
"QPEL5",
"RD_IP",
"RD_ALL",
"RD_REF_IP",
"RD_REF_ALL"
],
"type": "string"
},
"trellis": {
"description": "Enables or disables Trellis quantization. NOTE: This requires cabac",
"enum": [
"DISABLED",
"ENABLED_FINAL_MB",
"ENABLED_ALL"
],
"type": "string"
},
"partitions": {
"description": "Partitions to consider. Analyzing more partition options improves quality at the cost of speed.",
"items": {
"type": "string",
"title": "H264Partition"
},
"type": "array"
},
"slices": {
"description": "Number of slices per frame.",
"minimum": 1,
"maximum": 45,
"type": "integer"
},
"interlaceMode": {
"description": "Using TOP_FIELD_FIRST or BOTTOM_FIELD_FIRST will output interlaced video",
"enum": [
"NONE",
"TOP_FIELD_FIRST",
"BOTTOM_FIELD_FIRST"
],
"type": "string"
},
"sceneCutThreshold": {
"description": "Scene change sensitivity. The higher the value, the more likely an I-frame will be inserted. Set to 0 to disable it which is advised for scenarios where fixed GOP is required, e.g., adaptive streaming outputs like DASH, HLS and Smooth. Having this setting enabled can improve quality for progressive output with an increased internal chunk length (see `internalChunkLength` of muxings).",
"minimum": 0,
"maximum": 100,
"type": "integer"
},
"nalHrd": {
"description": "Signal hypothetical reference decoder (HRD) information (requires bufsize to be set)",
"enum": ["NONE", "VBR", "CBR"],
"type": "string"
},
"bPyramid": {
"description": "Keep some B-frames as references",
"enum": ["NONE", "STRICT", "NORMAL"],
"type": "string"
},
"cea608708SubtitleConfig": {
"type": "object",
"description": "Defines whether CEA 608/708 subtitles are copied from the input video stream",
"properties": {
"passthroughActivated": {
"type": "boolean",
"description": "If enabled, CEA 608 an CEA 708 subtitles will be copied from the input video stream to the output video stream. Note: This does not work, if the output framerate is different than the input framerate (except doubling the framerate with deinterlacing per field)"
},
"passthroughMode": {
"enum": [
"VIDEO_STREAM",
"CAPTION_STREAM",
"VIDEO_CAPTION_STREAM"
],
"type": "string"
}
}
},
"deblockAlpha": {
"description": "Strength of the in-loop deblocking filter. Higher values deblock more effectively but also soften the image",
"type": "integer"
},
"deblockBeta": {
"description": "Threshold of the in-loop deblocking filter. Higher values apply deblocking stronger on non flat blocks, lower values on flat blocks",
"type": "integer"
},
"adaptiveQuantizationMode": {
"description": "Controls the adaptive quantization algorithm",
"enum": [
"DISABLED",
"VARIANCE",
"AUTO_VARIANCE",
"AUTO_VARIANCE_DARK_SCENES"
],
"type": "string"
},
"adaptiveQuantizationStrength": {
"description": "Values greater than 1 reduce blocking and blurring in flat and textured areas. Values less than 1 reduces ringing artifacts at the cost of more banding artifacts. Negative values are not allowed",
"format": "double",
"type": "number"
},
"mixedReferences": {
"type": "boolean",
"description": "Allow references on a per partition basis, rather than per-macroblock basis"
},
"adaptiveSpatialTransform": {
"type": "boolean",
"description": "Enables adaptive spatial transform (high profile 8x8 transform)"
},
"fastSkipDetectionPFrames": {
"type": "boolean",
"description": "Enables fast skip detection on P-frames. Disabling this very slightly increases quality but at a large speed loss"
},
"weightedPredictionBFrames": {
"type": "boolean",
"description": "Enable open-gop, allows referencing frames from a previous gop"
},
"weightedPredictionPFrames": {
"description": "Defines the mode for weighted prediction for P-frames",
"enum": ["DISABLED", "SIMPLE", "SMART"],
"type": "string"
},
"macroblockTreeRatecontrol": {
"type": "boolean",
"description": "Enable macroblock tree ratecontrol. Macroblock tree rate control tracks how often blocks of the frame are used for prediciting future frames"
},
"quantizerCurveCompression": {
"description": "Ratio between constant bitrate (0.0) and constant quantizer (1.0). Valid range 0.0 - 1.0",
"format": "double",
"type": "number"
},
"psyRateDistortionOptimization": {
"description": "Psychovisual Rate Distortion retains fine details like film grain at the expense of more blocking artifacts. Higher values make the video appear sharper and more detailed but with a higher risk of blocking artifacts. Needs to have subMe with RD_IP, RD_ALL, RD_REF_IP or RD_REF_ALL",
"format": "double",
"type": "number"
},
"psyTrellis": {
"description": "Higher values will improve sharpness and detail retention but might come at costs of artifacts. Needs to have trellis enabled",
"format": "double",
"type": "number"
},
"autoLevelSetup": {
"description": "Enable/disable automatic calculation of level, maxBitrate, and bufsize based on the least level that satisfies maximum property values for picture resolution, frame rate, and bit rate. In the case the target level is set explicitly, the maximum bitrate and buffer size are calculated based on the defined level. Explicitly setting maxBitrate, or bufsize properties will disable the automatic calculation.",
"enum": ["ENABLED", "DISABLED"],
"type": "string"
},
"hardwareEncodingMode": {
"description": "Hardware encoding mode. Not set means no hardware encoding.",
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
},
"h265": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "H265VideoConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"width": {
"description": "Width of the encoded video in pixels",
"type": "integer"
},
"height": {
"description": "Height of the encoded video in pixels",
"type": "integer"
},
"bitrate": {
"description": "Target bitrate for the encoded video in bps. Either bitrate or crf is required.",
"type": "integer"
},
"rate": {
"description": "Target frame rate of the encoded video. Must be set for live encodings",
"format": "double",
"type": "number"
},
"pixelFormat": {
"description": "Describes the color encoding, bit depth, and chroma subsampling of each pixel in the output image.",
"enum": [
"YUV410P",
"YUV411P",
"YUV420P",
"YUV422P",
"YUV440P",
"YUV444P",
"YUVJ411P",
"YUVJ420P",
"YUVJ422P",
"YUVJ440P",
"YUVJ444P",
"YUV420P10LE",
"YUV422P10LE",
"YUV440P10LE",
"YUV444P10LE",
"YUV420P12LE",
"YUV422P12LE",
"YUV440P12LE",
"YUV444P12LE",
"YUV420P10BE",
"YUV422P10BE",
"YUV440P10BE",
"YUV444P10BE",
"YUV420P12BE",
"YUV422P12BE",
"YUV440P12BE",
"YUV444P12BE"
],
"type": "string"
},
"colorConfig": {
"type": "object",
"properties": {
"copyChromaLocationFlag": {
"type": "boolean",
"description": "Copy the chroma location setting from the input source"
},
"copyColorSpaceFlag": {
"type": "boolean",
"description": "Copy the color space setting from the input source"
},
"copyColorPrimariesFlag": {
"type": "boolean",
"description": "Copy the color primaries setting from the input source"
},
"copyColorRangeFlag": {
"type": "boolean",
"description": "Copy the color range setting from the input source"
},
"copyColorTransferFlag": {
"type": "boolean",
"description": "Copy the color transfer setting from the input source"
},
"chromaLocation": {
"description": "The chroma location to be applied",
"enum": [
"UNSPECIFIED",
"LEFT",
"CENTER",
"TOPLEFT",
"TOP",
"BOTTOMLEFT",
"BOTTOM"
],
"type": "string"
},
"colorSpace": {
"description": "The color space to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"RGB",
"BT709",
"FCC",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"YCGCO",
"YCOCG",
"BT2020_NCL",
"BT2020_CL",
"SMPTE2085"
],
"type": "string"
},
"colorPrimaries": {
"description": "The color primaries to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"BT709",
"BT470M",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"FILM",
"BT2020",
"SMPTE428",
"SMPTEST428_1",
"SMPTE431",
"SMPTE432",
"JEDEC_P22"
],
"type": "string"
},
"colorRange": {
"description": "The color range to be applied. If used on a Dolby Vision stream, this value must be set to JPEG.",
"enum": ["UNSPECIFIED", "MPEG", "JPEG"],
"type": "string"
},
"colorTransfer": {
"description": "The color transfer to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"BT709",
"GAMMA22",
"GAMMA28",
"SMPTE170M",
"SMPTE240M",
"LINEAR",
"LOG",
"LOG_SQRT",
"IEC61966_2_4",
"BT1361_ECG",
"IEC61966_2_1",
"BT2020_10",
"BT2020_12",
"SMPTE2084",
"SMPTE428",
"ARIB_STD_B67"
],
"type": "string"
},
"inputColorSpace": {
"description": "Override the color space detected in the input file. If not set the input color space will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"RGB",
"BT709",
"FCC",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"YCGCO",
"YCOCG",
"BT2020_NCL",
"BT2020_CL",
"SMPTE2085"
],
"type": "string"
},
"inputColorRange": {
"description": "Override the color range detected in the input file. If not set the input color range will be automatically detected if possible.",
"enum": ["UNSPECIFIED", "MPEG", "JPEG"],
"type": "string"
},
"inputColorPrimaries": {
"description": "Override the color primaries detected in the input file. If not set the input color primaries will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"BT709",
"BT470M",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"FILM",
"BT2020",
"SMPTE428",
"SMPTEST428_1",
"SMPTE431",
"SMPTE432",
"JEDEC_P22"
],
"type": "string"
},
"inputColorTransfer": {
"description": "Override the color transfer detected in the input file. If not set the input color transfer will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"BT709",
"GAMMA22",
"GAMMA28",
"SMPTE170M",
"SMPTE240M",
"LINEAR",
"LOG",
"LOG_SQRT",
"IEC61966_2_4",
"BT1361_ECG",
"IEC61966_2_1",
"BT2020_10",
"BT2020_12",
"SMPTE2084",
"SMPTE428",
"ARIB_STD_B67"
],
"type": "string"
}
}
},
"sampleAspectRatioNumerator": {
"description": "The numerator of the sample aspect ratio (also known as pixel aspect ratio). Must be set if sampleAspectRatioDenominator is set. If set then displayAspectRatio is not allowed.",
"type": "integer"
},
"sampleAspectRatioDenominator": {
"description": "The denominator of the sample aspect ratio (also known as pixel aspect ratio). Must be set if sampleAspectRatioNumerator is set. If set then displayAspectRatio is not allowed.",
"type": "integer"
},
"displayAspectRatio": {
"type": "object",
"description": "Specifies a display aspect ratio (DAR) to be enforced. The sample aspect ratio (SAR) will be adjusted accordingly. If set then sampleAspectRatioNumerator and sampleAspectRatioDenominator are not allowed.",
"properties": {
"numerator": {
"description": "The numerator of the display aspect ratio (DAR). For example for a DAR of 16:9, the value 16 must be used.",
"minimum": 1,
"type": "integer"
},
"denominator": {
"description": "The denominator of the display aspect ratio (DAR). For example for a DAR of 16:9, the value 9 must be used.",
"minimum": 1,
"type": "integer"
}
},
"required": ["denominator", "numerator"]
},
"encodingMode": {
"description": "The mode of the encoding. When this is set, `encodingMode` (`liveEncodingMode`) must not be set in the (live) encoding start request.",
"enum": [
"STANDARD",
"SINGLE_PASS",
"TWO_PASS",
"THREE_PASS"
],
"type": "string"
},
"presetConfiguration": {
"description": "Choose from a set of preset configurations tailored for common use cases. Check out [H265 Presets](https://bitmovin.com/docs/encoding/tutorials/h265-presets) to see which values get applied by each preset. Explicitly setting a property to a different value will override the preset's value for that property.",
"enum": [
"LIVE_ULTRAHIGH_QUALITY",
"LIVE_VERYHIGH_QUALITY",
"LIVE_HIGH_QUALITY",
"LIVE_STANDARD",
"LIVE_LOW_LATENCY",
"LIVE_LOWER_LATENCY",
"LIVE_VERYLOW_LATENCY",
"VOD_HIGH_QUALITY",
"VOD_QUALITY",
"VOD_STANDARD",
"VOD_SPEED",
"VOD_HIGH_SPEED",
"VOD_VERYHIGH_SPEED",
"VOD_EXTRAHIGH_SPEED",
"VOD_SUPERHIGH_SPEED",
"VOD_ULTRAHIGH_SPEED",
"VOD_HARDWARE_SHORTFORM"
],
"type": "string"
},
"dynamicRangeFormat": {
"description": "Automatically configures the H265 Video Codec to be compatible with the given SDR/HDR format. Bitmovin recommends to use the dynamic range format together with a preset configuration to achieve good results.\nExplicitly configured properties will take precedence over dynamic range format settings, which in turn will take precedence over preset configurations.",
"enum": [
"DOLBY_VISION",
"DOLBY_VISION_PROFILE_5",
"DOLBY_VISION_PROFILE_8_1",
"HDR10",
"HLG",
"SDR"
],
"type": "string"
},
"crf": {
"description": "Constant rate factor for quality-based variable bitrate. Either bitrate or crf is required.",
"minimum": 0,
"maximum": 51,
"format": "double",
"type": "number"
},
"profile": {
"enum": ["main", "main10"],
"type": "string"
},
"bframes": {
"description": "Amount of b frames",
"minimum": 0,
"maximum": 16,
"type": "integer"
},
"refFrames": {
"description": "Amount of reference frames",
"minimum": 0,
"maximum": 16,
"type": "integer"
},
"qp": {
"description": "Quantization factor",
"minimum": 0,
"maximum": 51,
"type": "integer"
},
"maxBitrate": {
"description": "Maximum Bitrate (bps)",
"type": "integer"
},
"minBitrate": {
"description": "Minimum Bitrate (bps)",
"type": "integer"
},
"bufsize": {
"description": "Size of the VBV buffer (bits)",
"type": "integer"
},
"minGop": {
"description": "Minimum GOP length, the minimum distance between I-frames",
"type": "integer"
},
"maxGop": {
"description": "Maximum GOP length, the maximum distance between I-frames",
"type": "integer"
},
"openGop": {
"type": "boolean",
"description": "Enable open-gop, allows referencing frames from a previous gop"
},
"minKeyframeInterval": {
"description": "Minimum interval in seconds between key frames",
"format": "double",
"type": "number"
},
"maxKeyframeInterval": {
"description": "Maximum interval in seconds between key frames",
"format": "double",
"type": "number"
},
"level": {
"enum": [
"1",
"2",
"2.1",
"3",
"3.1",
"4",
"4.1",
"5",
"5.1",
"5.2",
"6",
"6.1",
"6.2"
],
"type": "string"
},
"rcLookahead": {
"description": "Number of frames for slice-type decision lookahead",
"minimum": 1,
"maximum": 250,
"type": "integer"
},
"bAdapt": {
"description": "Set the level of effort in determining B frame placement",
"enum": ["NONE", "FAST", "FULL"],
"type": "string"
},
"maxCTUSize": {
"enum": ["16", "32", "64"],
"type": "string"
},
"tuIntraDepth": {
"enum": ["1", "2", "3", "4"],
"type": "string"
},
"tuInterDepth": {
"enum": ["1", "2", "3", "4"],
"type": "string"
},
"motionSearch": {
"enum": ["DIA", "HEX", "UMH", "STAR", "FULL"],
"type": "string"
},
"subMe": {
"description": "Set the amount of subpel refinement to perform.",
"minimum": 0,
"maximum": 7,
"type": "integer"
},
"motionSearchRange": {
"description": "Set the Motion search range.",
"minimum": 0,
"maximum": 32768,
"type": "integer"
},
"weightPredictionOnPSlice": {
"type": "boolean",
"description": "Enable weighted prediction in P slices"
},
"weightPredictionOnBSlice": {
"type": "boolean",
"description": "Enable weighted prediction in B slices"
},
"sao": {
"type": "boolean",
"description": "Toggle sample adaptive offset loop filter"
},
"masterDisplay": {
"description": "Set the mastering display color volume SEI info (SMPTE ST 2086). For example `G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,1)` describes a P3D65 1000-nits monitor, where G(x=0.265, y=0.690), B(x=0.150, y=0.060), R(x=0.680, y=0.320), WP(x=0.3127, y=0.3290), L(max=1000, min=0.0001). Part of HDR-10 metadata. If used on a Dolby Vision stream, this value must be set to `G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,1)`.",
"type": "string"
},
"maxContentLightLevel": {
"description": "Set the max content light level (MaxCLL). Use together with maxPictureAverageLightLevel (which will be 0 if not set). Part of HDR-10 metadata.",
"type": "integer"
},
"maxPictureAverageLightLevel": {
"description": "Set the maximum picture average light level (MaxFALL). Use together with maxContentLightLevel (which will be 0 if not set). Part of HDR-10 metadata.",
"type": "integer"
},
"hdr": {
"type": "boolean",
"description": "Force signaling of HDR parameters in SEI packets. Enabled automatically when masterDisplay or maxContentLightLevel/maxPictureAverageLightLevel are set. Useful when there is a desire to signal 0 values for maxContentLightLevel and maxPictureAverageLightLevel."
},
"sceneCutThreshold": {
"description": "Scene Change sensitivity. The higher the value, the more likely an I-Frame will be inserted. Set to 0 to disable it.",
"minimum": 0,
"type": "integer"
},
"adaptiveQuantizationMode": {
"description": "Controls the adaptive quantization algorithm",
"enum": [
"DISABLED",
"VARIANCE",
"AUTO_VARIANCE",
"AUTO_VARIANCE_DARK_SCENES"
],
"type": "string"
},
"enableHlgSignaling": {
"type": "boolean",
"description": "Enable SDR compatible HLG signaling. The container and bitstream will indicate BT.2020 but ARIB STD-B67 will be signaled in the alternative transfer characteristics SEI message."
},
"videoFormat": {
"description": "Specifies the source format of the original analog video prior to digitizing and encoding",
"enum": [
"UNDEFINED",
"COMPONENT",
"PAL",
"NTSC",
"SECAM",
"MAC"
],
"type": "string"
},
"psyRateDistortionOptimization": {
"description": "Psycho-visual rate-distortion retains fine details like film grain at the expense of more blocking artifacts. Higher values make the video appear sharper and more detailed but with a higher risk of blocking artifacts. Needs to have subMe with RD_IP, RD_ALL, RD_REF_IP, RD_REF_ALL, QPRD or FULL_RD",
"minimum": 0,
"maximum": 5,
"format": "double",
"type": "number"
},
"psyRateDistortionOptimizedQuantization": {
"description": "Strength of psycho-visual optimizations in quantization. Only has an effect in presets which use RDOQ (rd-levels 4 and 5). The value must be between 0 and 50, 1.0 is typical",
"minimum": 0,
"maximum": 50,
"format": "double",
"type": "number"
},
"enableHrdSignaling": {
"type": "boolean",
"description": "Signal hypothetical reference decoder (HRD) information"
},
"cutree": {
"type": "boolean",
"description": "Enables the use of lookahead’s lowres motion vector fields to determine the amount of reuse of each block to tune adaptive quantization factors."
},
"minCodingUnitSize": {
"description": "Minimum CU size (width and height). By using 16 or 32 the encoder will not analyze the cost of CUs below that minimum threshold, saving considerable amounts of compute with a predictable increase in bitrate. This setting has a large effect on performance on the faster presets.",
"enum": ["MCU_8x8", "MCU_16x16", "MCU_32x32"],
"type": "string"
},
"lookaheadSlices": {
"description": "Use multiple worker threads to measure the estimated cost of each frame within the lookahead. The higher this parameter, the less accurate the frame costs will be which will result in less accurate B-frame and scene-cut decisions. Valid range: 0 - 16",
"type": "integer"
},
"limitReferences": {
"description": "If enabled, limit references per depth, CU or both.",
"enum": ["DISABLED", "DEPTH", "CU", "DEPTH_AND_CU"],
"type": "string"
},
"rectangularMotionPartitionsAnalysis": {
"type": "boolean",
"description": "Enable analysis of rectangular motion partitions Nx2N and 2NxN."
},
"asymetricMotionPartitionsAnalysis": {
"type": "boolean",
"description": "Enable analysis of asymmetric motion partitions."
},
"limitModes": {
"type": "boolean",
"description": "When enabled, will limit modes analyzed for each CU using cost metrics from the 4 sub-CUs. This can significantly improve performance when `rectangularMotionPartitionsAnalysis` and/or `asymetricMotionPartitionsAnalysis` are enabled at minimal compression efficiency loss."
},
"maxMerge": {
"description": "Maximum number of neighbor (spatial and temporal) candidate blocks that the encoder may consider for merging motion predictions. Valid range: 1 - 5",
"type": "integer"
},
"earlySkip": {
"type": "boolean",
"description": "Measure 2Nx2N merge candidates first; if no residual is found, additional modes at that depth are not analysed."
},
"recursionSkip": {
"type": "boolean",
"description": "If enabled exits early from CU depth recursion. When a skip CU is found, additional heuristics are used to decide whether to terminate recursion."
},
"fastSearchForAngularIntraPredictions": {
"type": "boolean",
"description": "Enable faster search method for angular intra predictions."
},
"evaluationOfIntraModesInBSlices": {
"type": "boolean",
"description": "Enables the evaluation of intra modes in B slices."
},
"signHide": {
"type": "boolean",
"description": "Hide sign bit of one coefficient per coding tree unit."
},
"rateDistortionLevelForModeDecision": {
"description": "Level of rate-distortion optimization in mode decision. The lower the value the faster the encode, the higher the value higher the compression efficiency. Valid range: 0 - 4",
"type": "integer"
},
"rateDistortionLevelForQuantization": {
"description": "Specifies the amount of rate-distortion analysis to use within quantization.",
"enum": [
"DISABLED",
"LEVELS",
"LEVELS_AND_CODING_GROUPS"
],
"type": "string"
},
"qpMin": {
"description": "Minimum quantization factor. Valid value range: 0 - 69",
"minimum": 0,
"maximum": 69,
"type": "integer"
},
"qpMax": {
"description": "Maximum quantization factor. Valid value range: 0 - 69",
"minimum": 0,
"maximum": 69,
"type": "integer"
},
"wavefrontParallelProcessing": {
"type": "boolean",
"description": "The encoder may begin encoding a row as soon as the row above it is at least two CTUs ahead in the encode process. Default is enabled."
},
"slices": {
"description": "Encode each incoming frame as multiple parallel slices that may be decoded independently. Default is 1.",
"type": "integer"
},
"copyPicture": {
"type": "boolean",
"description": "Copy buffers of input picture in frame. Default is enabled."
},
"levelHighTier": {
"type": "boolean",
"description": "If high tier is disabled the encoder will attempt to encode only at the main tier. Default is enabled."
},
"skipSplitRateDistortionAnalysis": {
"type": "boolean",
"description": "Enable skipping split rate distortion analysis when sum of split CU RD cost larger than one split CU RD cost for intra CU. Default disabled."
},
"codingUnitLossless": {
"type": "boolean",
"description": "If enabled, consider lossless mode in CU RDO decisions. Default is disabled."
},
"transformSkip": {
"description": "Enable evaluation of transform skip (bypass DCT but still use quantization) coding for 4x4 TU coded blocks. Default is NONE.",
"enum": ["NONE", "NORMAL", "FAST"],
"type": "string"
},
"refineRateDistortionCost": {
"type": "boolean",
"description": "Enable QP based rate distortion refinement. Default is disabled."
},
"limitTransformUnitDepthRecursion": {
"description": "Enables early exit from transform unit depth recursion, for inter coded blocks. Default is DISABLED.",
"enum": [
"DISABLED",
"LEVEL_1",
"LEVEL_2",
"LEVEL_3",
"LEVEL_4"
],
"type": "string"
},
"noiseReductionIntra": {
"description": "An integer value, which denotes strength of noise reduction in intra CUs. Default 0.",
"minimum": 0,
"maximum": 2000,
"type": "integer"
},
"noiseReductionInter": {
"description": "An integer value, which denotes strength of noise reduction in inter CUs. Default 0.",
"minimum": 0,
"maximum": 2000,
"type": "integer"
},
"rateDistortionPenalty": {
"description": "Penalty for 32x32 intra transform units in non-I slices. Default DISABLED.",
"enum": ["DISABLED", "NORMAL", "MAXIMUM"],
"type": "string"
},
"maximumTransformUnitSize": {
"description": "Penalty for 32x32 intra transform units in non-I slices. Default DISABLED.",
"enum": [
"MTU_4x4",
"MTU_8x8",
"MTU_16x16",
"MTU_32x32"
],
"type": "string"
},
"dynamicRateDistortionStrength": {
"description": "Increases the RD level at points where quality drops due to VBV rate control enforcement. Default 0.",
"minimum": 0,
"maximum": 4,
"type": "integer"
},
"ssimRateDistortionOptimization": {
"type": "boolean",
"description": "It is used for mode selection during analysis of CTUs and can achieve significant gain in terms of objective quality metrics SSIM and PSNR. Default false."
},
"temporalMotionVectorPredictors": {
"type": "boolean",
"description": "Enable temporal motion vector predictors in P and B slices. Default true."
},
"analyzeSourceFramePixels": {
"type": "boolean",
"description": "Enable motion estimation with source frame pixels, in this mode, motion estimation can be computed independently. Default false."
},
"strongIntraSmoothing": {
"type": "boolean",
"description": "Enable strong intra smoothing for 32x32 intra blocks. Default true."
},
"constrainedIntraPrediction": {
"type": "boolean",
"description": "When generating intra predictions for blocks in inter slices, only intra-coded reference pixels are used. Default false."
},
"scenecutBias": {
"description": "This value represents the percentage difference between the inter cost and intra cost of a frame used in scenecut detection. Default 5.0.",
"minimum": 0,
"maximum": 100,
"format": "double",
"type": "number"
},
"allowedRADLBeforeIDR": {
"description": "Number of RADL pictures allowed infront of IDR. Requires fixed keyframe interval. Valid values 0 - `bframes`. Default 0.",
"type": "integer"
},
"gopLookahead": {
"description": "Number of frames for GOP boundary decision lookahead. Valid values 0 - `rcLookahead`. Default 0",
"type": "integer"
},
"bframeBias": {
"description": "Bias towards B frames in slicetype decision. The higher the bias the more likely the encoder is to use B frames. Default 0",
"minimum": -90,
"maximum": 100,
"type": "integer"
},
"forceFlush": {
"description": "Force the encoder to flush frames. Default is DISABLED.",
"enum": ["DISABLED", "ALL_FRAMES", "SLICE_TYPE"],
"type": "string"
},
"adaptiveQuantizationStrength": {
"description": "Adjust the strength of the adaptive quantization offsets. Default 1.0.",
"minimum": 0,
"maximum": 3,
"format": "double",
"type": "number"
},
"adaptiveQuantizationMotion": {
"type": "boolean",
"description": "Adjust the AQ offsets based on the relative motion of each block with respect to the motion of the frame. Default false."
},
"quantizationGroupSize": {
"description": "Enable adaptive quantization for sub-CTUs. This parameter specifies the minimum CU size at which QP can be adjusted. Default is same as `maxCTUSize`.",
"enum": [
"QGS_8x8",
"QGS_16x16",
"QGS_32x32",
"QGS_64x64"
],
"type": "string"
},
"strictCbr": {
"type": "boolean",
"description": "Enables stricter conditions to control bitrate deviance from the target bitrate in ABR mode. Bit rate adherence is prioritised over quality. Default false."
},
"qpOffsetChromaCb": {
"description": "Offset of Cb chroma QP from the luma QP selected by rate control. This is a general way to spend more or less bits on the chroma channel. Default 0",
"minimum": -12,
"maximum": 12,
"type": "integer"
},
"qpOffsetChromaCr": {
"description": "Offset of Cr chroma QP from the luma QP selected by rate control. This is a general way to spend more or less bits on the chroma channel. Default 0",
"minimum": -12,
"maximum": 12,
"type": "integer"
},
"ipRatio": {
"description": "QP ratio factor between I and P slices. This ratio is used in all of the rate control modes. Default 1.4",
"format": "double",
"type": "number"
},
"pbRatio": {
"description": "QP ratio factor between P and B slices. This ratio is used in all of the rate control modes. Default 1.3",
"format": "double",
"type": "number"
},
"quantizerCurveCompressionFactor": {
"description": "Quantizer curve compression factor. It weights the frame quantizer based on the complexity of residual (measured by lookahead). Default 0.6",
"minimum": 0.5,
"maximum": 1,
"format": "double",
"type": "number"
},
"qpStep": {
"description": "The maximum single adjustment in QP allowed to rate control. Default 4",
"type": "integer"
},
"grainOptimizedRateControl": {
"type": "boolean",
"description": "Enables a specialised ratecontrol algorithm for film grain content. Default false."
},
"blurQuants": {
"description": "Temporally blur quants. Default 0.5",
"format": "double",
"type": "number"
},
"blurComplexity": {
"description": "Temporally blur complexity. Default 20.0",
"format": "double",
"type": "number"
},
"saoNonDeblock": {
"type": "boolean",
"description": "Specify how to handle depencency between SAO and deblocking filter. When enabled, non-deblocked pixels are used for SAO analysis. When disabled, SAO analysis skips the right/bottom boundary areas. Default false."
},
"limitSao": {
"type": "boolean",
"description": "Limit SAO filter computation by early terminating SAO process based on inter prediction mode, CTU spatial-domain correlations, and relations between luma and chroma. Default false."
},
"lowpassDct": {
"type": "boolean",
"description": "Will use low-pass subband dct approximation instead of the standard dct for 16x16 and 32x32 blocks. Default false."
},
"cea608708SubtitleConfig": {
"type": "object",
"description": "Defines whether CEA 608/708 subtitles are extracted from the input video stream",
"properties": {
"passthroughActivated": {
"type": "boolean",
"description": "If enabled, CEA 608 an CEA 708 subtitles will be copied from the input video stream to the output video stream. Note: This does not work, if the output framerate is different than the input framerate (except doubling the framerate with deinterlacing per field)"
},
"passthroughMode": {
"enum": [
"VIDEO_STREAM",
"CAPTION_STREAM",
"VIDEO_CAPTION_STREAM"
],
"type": "string"
}
}
},
"autoLevelSetup": {
"description": "Enable/disable automatic calculation of level, maxBitrate, and bufsize based on the least level that satisfies maximum property values for picture resolution, frame rate, and bit rate. In the case the target level is set explicitly, the maximum bitrate and buffer size are calculated based on the defined level. Explicitly setting maxBitrate, or bufsize properties will disable the automatic calculation.",
"enum": ["ENABLED", "DISABLED"],
"type": "string"
},
"hardwareEncodingMode": {
"description": "Hardware encoding mode. Not set means no hardware encoding.",
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
},
"h266": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "H266VideoConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"width": {
"description": "Width of the encoded video in pixels",
"type": "integer"
},
"height": {
"description": "Height of the encoded video in pixels",
"type": "integer"
},
"bitrate": {
"description": "Target bitrate for the encoded video in bps. Either bitrate or crf is required.",
"type": "integer"
},
"rate": {
"description": "Target frame rate of the encoded video. Must be set for live encodings",
"format": "double",
"type": "number"
},
"pixelFormat": {
"description": "Describes the color encoding, bit depth, and chroma subsampling of each pixel in the output image.",
"enum": [
"YUV410P",
"YUV411P",
"YUV420P",
"YUV422P",
"YUV440P",
"YUV444P",
"YUVJ411P",
"YUVJ420P",
"YUVJ422P",
"YUVJ440P",
"YUVJ444P",
"YUV420P10LE",
"YUV422P10LE",
"YUV440P10LE",
"YUV444P10LE",
"YUV420P12LE",
"YUV422P12LE",
"YUV440P12LE",
"YUV444P12LE",
"YUV420P10BE",
"YUV422P10BE",
"YUV440P10BE",
"YUV444P10BE",
"YUV420P12BE",
"YUV422P12BE",
"YUV440P12BE",
"YUV444P12BE"
],
"type": "string"
},
"colorConfig": {
"type": "object",
"properties": {
"copyChromaLocationFlag": {
"type": "boolean",
"description": "Copy the chroma location setting from the input source"
},
"copyColorSpaceFlag": {
"type": "boolean",
"description": "Copy the color space setting from the input source"
},
"copyColorPrimariesFlag": {
"type": "boolean",
"description": "Copy the color primaries setting from the input source"
},
"copyColorRangeFlag": {
"type": "boolean",
"description": "Copy the color range setting from the input source"
},
"copyColorTransferFlag": {
"type": "boolean",
"description": "Copy the color transfer setting from the input source"
},
"chromaLocation": {
"description": "The chroma location to be applied",
"enum": [
"UNSPECIFIED",
"LEFT",
"CENTER",
"TOPLEFT",
"TOP",
"BOTTOMLEFT",
"BOTTOM"
],
"type": "string"
},
"colorSpace": {
"description": "The color space to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"RGB",
"BT709",
"FCC",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"YCGCO",
"YCOCG",
"BT2020_NCL",
"BT2020_CL",
"SMPTE2085"
],
"type": "string"
},
"colorPrimaries": {
"description": "The color primaries to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"BT709",
"BT470M",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"FILM",
"BT2020",
"SMPTE428",
"SMPTEST428_1",
"SMPTE431",
"SMPTE432",
"JEDEC_P22"
],
"type": "string"
},
"colorRange": {
"description": "The color range to be applied. If used on a Dolby Vision stream, this value must be set to JPEG.",
"enum": ["UNSPECIFIED", "MPEG", "JPEG"],
"type": "string"
},
"colorTransfer": {
"description": "The color transfer to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"BT709",
"GAMMA22",
"GAMMA28",
"SMPTE170M",
"SMPTE240M",
"LINEAR",
"LOG",
"LOG_SQRT",
"IEC61966_2_4",
"BT1361_ECG",
"IEC61966_2_1",
"BT2020_10",
"BT2020_12",
"SMPTE2084",
"SMPTE428",
"ARIB_STD_B67"
],
"type": "string"
},
"inputColorSpace": {
"description": "Override the color space detected in the input file. If not set the input color space will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"RGB",
"BT709",
"FCC",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"YCGCO",
"YCOCG",
"BT2020_NCL",
"BT2020_CL",
"SMPTE2085"
],
"type": "string"
},
"inputColorRange": {
"description": "Override the color range detected in the input file. If not set the input color range will be automatically detected if possible.",
"enum": ["UNSPECIFIED", "MPEG", "JPEG"],
"type": "string"
},
"inputColorPrimaries": {
"description": "Override the color primaries detected in the input file. If not set the input color primaries will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"BT709",
"BT470M",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"FILM",
"BT2020",
"SMPTE428",
"SMPTEST428_1",
"SMPTE431",
"SMPTE432",
"JEDEC_P22"
],
"type": "string"
},
"inputColorTransfer": {
"description": "Override the color transfer detected in the input file. If not set the input color transfer will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"BT709",
"GAMMA22",
"GAMMA28",
"SMPTE170M",
"SMPTE240M",
"LINEAR",
"LOG",
"LOG_SQRT",
"IEC61966_2_4",
"BT1361_ECG",
"IEC61966_2_1",
"BT2020_10",
"BT2020_12",
"SMPTE2084",
"SMPTE428",
"ARIB_STD_B67"
],
"type": "string"
}
}
},
"sampleAspectRatioNumerator": {
"description": "The numerator of the sample aspect ratio (also known as pixel aspect ratio). Must be set if sampleAspectRatioDenominator is set. If set then displayAspectRatio is not allowed.",
"type": "integer"
},
"sampleAspectRatioDenominator": {
"description": "The denominator of the sample aspect ratio (also known as pixel aspect ratio). Must be set if sampleAspectRatioNumerator is set. If set then displayAspectRatio is not allowed.",
"type": "integer"
},
"displayAspectRatio": {
"type": "object",
"description": "Specifies a display aspect ratio (DAR) to be enforced. The sample aspect ratio (SAR) will be adjusted accordingly. If set then sampleAspectRatioNumerator and sampleAspectRatioDenominator are not allowed.",
"properties": {
"numerator": {
"description": "The numerator of the display aspect ratio (DAR). For example for a DAR of 16:9, the value 16 must be used.",
"minimum": 1,
"type": "integer"
},
"denominator": {
"description": "The denominator of the display aspect ratio (DAR). For example for a DAR of 16:9, the value 9 must be used.",
"minimum": 1,
"type": "integer"
}
},
"required": ["denominator", "numerator"]
},
"encodingMode": {
"description": "The mode of the encoding. When this is set, `encodingMode` (`liveEncodingMode`) must not be set in the (live) encoding start request.",
"enum": [
"STANDARD",
"SINGLE_PASS",
"TWO_PASS",
"THREE_PASS"
],
"type": "string"
},
"presetConfiguration": {
"enum": [
"LIVE_ULTRAHIGH_QUALITY",
"LIVE_VERYHIGH_QUALITY",
"LIVE_HIGH_QUALITY",
"LIVE_STANDARD",
"LIVE_LOW_LATENCY",
"LIVE_LOWER_LATENCY",
"LIVE_VERYLOW_LATENCY",
"VOD_HIGH_QUALITY",
"VOD_QUALITY",
"VOD_STANDARD",
"VOD_SPEED",
"VOD_HIGH_SPEED",
"VOD_VERYHIGH_SPEED",
"VOD_EXTRAHIGH_SPEED",
"VOD_SUPERHIGH_SPEED",
"VOD_ULTRAHIGH_SPEED",
"VOD_HARDWARE_SHORTFORM"
],
"type": "string"
},
"crf": {
"description": "Constant rate factor for quality-based variable bitrate. Either bitrate or crf is required.",
"minimum": 0,
"maximum": 51,
"format": "double",
"type": "number"
},
"maxBitrate": {
"description": "Maximum Bitrate",
"type": "integer"
},
"minBitrate": {
"description": "Minimum Bitrate",
"type": "integer"
}
}
}
},
"required": ["properties"]
}
}
},
"vp8": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Vp8VideoConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"width": {
"description": "Width of the encoded video in pixels",
"type": "integer"
},
"height": {
"description": "Height of the encoded video in pixels",
"type": "integer"
},
"bitrate": {
"description": "Target bitrate for the encoded video in bps. Either bitrate or crf is required.",
"type": "integer"
},
"rate": {
"description": "Target frame rate of the encoded video. Must be set for live encodings",
"format": "double",
"type": "number"
},
"pixelFormat": {
"description": "Describes the color encoding, bit depth, and chroma subsampling of each pixel in the output image.",
"enum": [
"YUV410P",
"YUV411P",
"YUV420P",
"YUV422P",
"YUV440P",
"YUV444P",
"YUVJ411P",
"YUVJ420P",
"YUVJ422P",
"YUVJ440P",
"YUVJ444P",
"YUV420P10LE",
"YUV422P10LE",
"YUV440P10LE",
"YUV444P10LE",
"YUV420P12LE",
"YUV422P12LE",
"YUV440P12LE",
"YUV444P12LE",
"YUV420P10BE",
"YUV422P10BE",
"YUV440P10BE",
"YUV444P10BE",
"YUV420P12BE",
"YUV422P12BE",
"YUV440P12BE",
"YUV444P12BE"
],
"type": "string"
},
"colorConfig": {
"type": "object",
"properties": {
"copyChromaLocationFlag": {
"type": "boolean",
"description": "Copy the chroma location setting from the input source"
},
"copyColorSpaceFlag": {
"type": "boolean",
"description": "Copy the color space setting from the input source"
},
"copyColorPrimariesFlag": {
"type": "boolean",
"description": "Copy the color primaries setting from the input source"
},
"copyColorRangeFlag": {
"type": "boolean",
"description": "Copy the color range setting from the input source"
},
"copyColorTransferFlag": {
"type": "boolean",
"description": "Copy the color transfer setting from the input source"
},
"chromaLocation": {
"description": "The chroma location to be applied",
"enum": [
"UNSPECIFIED",
"LEFT",
"CENTER",
"TOPLEFT",
"TOP",
"BOTTOMLEFT",
"BOTTOM"
],
"type": "string"
},
"colorSpace": {
"description": "The color space to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"RGB",
"BT709",
"FCC",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"YCGCO",
"YCOCG",
"BT2020_NCL",
"BT2020_CL",
"SMPTE2085"
],
"type": "string"
},
"colorPrimaries": {
"description": "The color primaries to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"BT709",
"BT470M",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"FILM",
"BT2020",
"SMPTE428",
"SMPTEST428_1",
"SMPTE431",
"SMPTE432",
"JEDEC_P22"
],
"type": "string"
},
"colorRange": {
"description": "The color range to be applied. If used on a Dolby Vision stream, this value must be set to JPEG.",
"enum": ["UNSPECIFIED", "MPEG", "JPEG"],
"type": "string"
},
"colorTransfer": {
"description": "The color transfer to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"BT709",
"GAMMA22",
"GAMMA28",
"SMPTE170M",
"SMPTE240M",
"LINEAR",
"LOG",
"LOG_SQRT",
"IEC61966_2_4",
"BT1361_ECG",
"IEC61966_2_1",
"BT2020_10",
"BT2020_12",
"SMPTE2084",
"SMPTE428",
"ARIB_STD_B67"
],
"type": "string"
},
"inputColorSpace": {
"description": "Override the color space detected in the input file. If not set the input color space will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"RGB",
"BT709",
"FCC",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"YCGCO",
"YCOCG",
"BT2020_NCL",
"BT2020_CL",
"SMPTE2085"
],
"type": "string"
},
"inputColorRange": {
"description": "Override the color range detected in the input file. If not set the input color range will be automatically detected if possible.",
"enum": ["UNSPECIFIED", "MPEG", "JPEG"],
"type": "string"
},
"inputColorPrimaries": {
"description": "Override the color primaries detected in the input file. If not set the input color primaries will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"BT709",
"BT470M",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"FILM",
"BT2020",
"SMPTE428",
"SMPTEST428_1",
"SMPTE431",
"SMPTE432",
"JEDEC_P22"
],
"type": "string"
},
"inputColorTransfer": {
"description": "Override the color transfer detected in the input file. If not set the input color transfer will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"BT709",
"GAMMA22",
"GAMMA28",
"SMPTE170M",
"SMPTE240M",
"LINEAR",
"LOG",
"LOG_SQRT",
"IEC61966_2_4",
"BT1361_ECG",
"IEC61966_2_1",
"BT2020_10",
"BT2020_12",
"SMPTE2084",
"SMPTE428",
"ARIB_STD_B67"
],
"type": "string"
}
}
},
"sampleAspectRatioNumerator": {
"description": "The numerator of the sample aspect ratio (also known as pixel aspect ratio). Must be set if sampleAspectRatioDenominator is set. If set then displayAspectRatio is not allowed.",
"type": "integer"
},
"sampleAspectRatioDenominator": {
"description": "The denominator of the sample aspect ratio (also known as pixel aspect ratio). Must be set if sampleAspectRatioNumerator is set. If set then displayAspectRatio is not allowed.",
"type": "integer"
},
"displayAspectRatio": {
"type": "object",
"description": "Specifies a display aspect ratio (DAR) to be enforced. The sample aspect ratio (SAR) will be adjusted accordingly. If set then sampleAspectRatioNumerator and sampleAspectRatioDenominator are not allowed.",
"properties": {
"numerator": {
"description": "The numerator of the display aspect ratio (DAR). For example for a DAR of 16:9, the value 16 must be used.",
"minimum": 1,
"type": "integer"
},
"denominator": {
"description": "The denominator of the display aspect ratio (DAR). For example for a DAR of 16:9, the value 9 must be used.",
"minimum": 1,
"type": "integer"
}
},
"required": ["denominator", "numerator"]
},
"encodingMode": {
"description": "The mode of the encoding. When this is set, `encodingMode` (`liveEncodingMode`) must not be set in the (live) encoding start request.",
"enum": [
"STANDARD",
"SINGLE_PASS",
"TWO_PASS",
"THREE_PASS"
],
"type": "string"
},
"crf": {
"description": "Constant rate factor for quality-based variable bitrate. Either bitrate or crf is required.",
"minimum": 0,
"maximum": 63,
"type": "integer"
},
"lagInFrames": {
"description": "Number of frames to look ahead for alternate reference frame selection.",
"minimum": 0,
"maximum": 25,
"type": "integer"
},
"maxIntraRate": {
"description": "Maximum I-frame bitrate (percentage) 0=unlimited",
"type": "integer"
},
"qpMin": {
"description": "Minimum quantization factor.",
"minimum": 0,
"maximum": 63,
"type": "integer"
},
"qpMax": {
"description": "Maximum quantization factor.",
"minimum": 0,
"maximum": 63,
"type": "integer"
},
"rateUndershootPct": {
"description": "Datarate undershoot (min) target (percentage).",
"minimum": 0,
"maximum": 100,
"type": "integer"
},
"rateOvershootPct": {
"description": "Datarate overshoot (max) target (percentage).",
"minimum": 0,
"maximum": 100,
"type": "integer"
},
"noiseSensitivity": {
"enum": [
"OFF",
"ON_Y_ONLY",
"ON_YUV",
"ON_YUV_AGGRESSIVE",
"ADAPTIVE"
],
"type": "string"
},
"sharpness": {
"description": "Loop filter sharpness.",
"minimum": 0,
"maximum": 7,
"type": "integer"
},
"minGop": {
"description": "Minimum GOP length, the minimum distance between I-frames.",
"type": "integer"
},
"maxGop": {
"description": "Maximum GOP length, the maximum distance between I-frames",
"type": "integer"
},
"minKeyframeInterval": {
"description": "Minimum interval in seconds between key frames",
"format": "double",
"type": "number"
},
"maxKeyframeInterval": {
"description": "Maximum interval in seconds between key frames",
"format": "double",
"type": "number"
},
"quality": {
"enum": ["REALTIME", "GOOD", "BEST"],
"type": "string"
},
"staticThresh": {
"description": "A change threshold on blocks below which they will be skipped by the encoder.",
"minimum": 0,
"type": "integer"
},
"arnrMaxFrames": {
"description": "altref noise reduction max frame count.",
"minimum": 0,
"maximum": 15,
"type": "integer"
},
"arnrStrength": {
"description": "altref noise reduction filter strength.",
"minimum": 0,
"maximum": 6,
"type": "integer"
},
"arnrType": {
"enum": ["BACKWARD", "FORWARD", "CENTERED"],
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
},
"vp9": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Vp9VideoConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"width": {
"description": "Width of the encoded video in pixels",
"type": "integer"
},
"height": {
"description": "Height of the encoded video in pixels",
"type": "integer"
},
"bitrate": {
"description": "Target bitrate for the encoded video in bps. Either bitrate or crf is required.",
"type": "integer"
},
"rate": {
"description": "Target frame rate of the encoded video. Must be set for live encodings",
"format": "double",
"type": "number"
},
"pixelFormat": {
"description": "Describes the color encoding, bit depth, and chroma subsampling of each pixel in the output image.",
"enum": [
"YUV410P",
"YUV411P",
"YUV420P",
"YUV422P",
"YUV440P",
"YUV444P",
"YUVJ411P",
"YUVJ420P",
"YUVJ422P",
"YUVJ440P",
"YUVJ444P",
"YUV420P10LE",
"YUV422P10LE",
"YUV440P10LE",
"YUV444P10LE",
"YUV420P12LE",
"YUV422P12LE",
"YUV440P12LE",
"YUV444P12LE",
"YUV420P10BE",
"YUV422P10BE",
"YUV440P10BE",
"YUV444P10BE",
"YUV420P12BE",
"YUV422P12BE",
"YUV440P12BE",
"YUV444P12BE"
],
"type": "string"
},
"colorConfig": {
"type": "object",
"properties": {
"copyChromaLocationFlag": {
"type": "boolean",
"description": "Copy the chroma location setting from the input source"
},
"copyColorSpaceFlag": {
"type": "boolean",
"description": "Copy the color space setting from the input source"
},
"copyColorPrimariesFlag": {
"type": "boolean",
"description": "Copy the color primaries setting from the input source"
},
"copyColorRangeFlag": {
"type": "boolean",
"description": "Copy the color range setting from the input source"
},
"copyColorTransferFlag": {
"type": "boolean",
"description": "Copy the color transfer setting from the input source"
},
"chromaLocation": {
"description": "The chroma location to be applied",
"enum": [
"UNSPECIFIED",
"LEFT",
"CENTER",
"TOPLEFT",
"TOP",
"BOTTOMLEFT",
"BOTTOM"
],
"type": "string"
},
"colorSpace": {
"description": "The color space to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"RGB",
"BT709",
"FCC",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"YCGCO",
"YCOCG",
"BT2020_NCL",
"BT2020_CL",
"SMPTE2085"
],
"type": "string"
},
"colorPrimaries": {
"description": "The color primaries to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"BT709",
"BT470M",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"FILM",
"BT2020",
"SMPTE428",
"SMPTEST428_1",
"SMPTE431",
"SMPTE432",
"JEDEC_P22"
],
"type": "string"
},
"colorRange": {
"description": "The color range to be applied. If used on a Dolby Vision stream, this value must be set to JPEG.",
"enum": ["UNSPECIFIED", "MPEG", "JPEG"],
"type": "string"
},
"colorTransfer": {
"description": "The color transfer to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"BT709",
"GAMMA22",
"GAMMA28",
"SMPTE170M",
"SMPTE240M",
"LINEAR",
"LOG",
"LOG_SQRT",
"IEC61966_2_4",
"BT1361_ECG",
"IEC61966_2_1",
"BT2020_10",
"BT2020_12",
"SMPTE2084",
"SMPTE428",
"ARIB_STD_B67"
],
"type": "string"
},
"inputColorSpace": {
"description": "Override the color space detected in the input file. If not set the input color space will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"RGB",
"BT709",
"FCC",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"YCGCO",
"YCOCG",
"BT2020_NCL",
"BT2020_CL",
"SMPTE2085"
],
"type": "string"
},
"inputColorRange": {
"description": "Override the color range detected in the input file. If not set the input color range will be automatically detected if possible.",
"enum": ["UNSPECIFIED", "MPEG", "JPEG"],
"type": "string"
},
"inputColorPrimaries": {
"description": "Override the color primaries detected in the input file. If not set the input color primaries will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"BT709",
"BT470M",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"FILM",
"BT2020",
"SMPTE428",
"SMPTEST428_1",
"SMPTE431",
"SMPTE432",
"JEDEC_P22"
],
"type": "string"
},
"inputColorTransfer": {
"description": "Override the color transfer detected in the input file. If not set the input color transfer will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"BT709",
"GAMMA22",
"GAMMA28",
"SMPTE170M",
"SMPTE240M",
"LINEAR",
"LOG",
"LOG_SQRT",
"IEC61966_2_4",
"BT1361_ECG",
"IEC61966_2_1",
"BT2020_10",
"BT2020_12",
"SMPTE2084",
"SMPTE428",
"ARIB_STD_B67"
],
"type": "string"
}
}
},
"sampleAspectRatioNumerator": {
"description": "The numerator of the sample aspect ratio (also known as pixel aspect ratio). Must be set if sampleAspectRatioDenominator is set. If set then displayAspectRatio is not allowed.",
"type": "integer"
},
"sampleAspectRatioDenominator": {
"description": "The denominator of the sample aspect ratio (also known as pixel aspect ratio). Must be set if sampleAspectRatioNumerator is set. If set then displayAspectRatio is not allowed.",
"type": "integer"
},
"displayAspectRatio": {
"type": "object",
"description": "Specifies a display aspect ratio (DAR) to be enforced. The sample aspect ratio (SAR) will be adjusted accordingly. If set then sampleAspectRatioNumerator and sampleAspectRatioDenominator are not allowed.",
"properties": {
"numerator": {
"description": "The numerator of the display aspect ratio (DAR). For example for a DAR of 16:9, the value 16 must be used.",
"minimum": 1,
"type": "integer"
},
"denominator": {
"description": "The denominator of the display aspect ratio (DAR). For example for a DAR of 16:9, the value 9 must be used.",
"minimum": 1,
"type": "integer"
}
},
"required": ["denominator", "numerator"]
},
"encodingMode": {
"description": "The mode of the encoding. When this is set, `encodingMode` (`liveEncodingMode`) must not be set in the (live) encoding start request.",
"enum": [
"STANDARD",
"SINGLE_PASS",
"TWO_PASS",
"THREE_PASS"
],
"type": "string"
},
"presetConfiguration": {
"description": "Choose from a set of preset configurations tailored for common use cases. Check out [VP9 Presets](https://bitmovin.com/docs/encoding/tutorials/vp9-presets) to see which values get applied by each preset. Explicitly setting a property to a different value will override the preset's value for that property.",
"enum": [
"LIVE_ULTRAHIGH_QUALITY",
"LIVE_VERYHIGH_QUALITY",
"LIVE_HIGH_QUALITY",
"LIVE_STANDARD",
"LIVE_LOW_LATENCY",
"LIVE_LOWER_LATENCY",
"LIVE_VERYLOW_LATENCY",
"VOD_HIGH_QUALITY",
"VOD_QUALITY",
"VOD_STANDARD",
"VOD_SPEED",
"VOD_HIGH_SPEED",
"VOD_VERYHIGH_SPEED",
"VOD_EXTRAHIGH_SPEED",
"VOD_SUPERHIGH_SPEED",
"VOD_ULTRAHIGH_SPEED",
"VOD_HARDWARE_SHORTFORM"
],
"type": "string"
},
"dynamicRangeFormat": {
"description": "Automatically configures the VP9 Video Codec to be compatible with the given SDR/HLG format. Bitmovin recommends to use the dynamic range format together with a preset configuration to achieve good results.\nExplicitly configured properties will take precedence over dynamic range format settings, which in turn will take precedence over preset configurations.",
"enum": ["HLG", "SDR"],
"type": "string"
},
"crf": {
"description": "Constant rate factor for quality-based variable bitrate. Either bitrate or crf is required.",
"minimum": 0,
"maximum": 63,
"type": "integer"
},
"lagInFrames": {
"description": "Number of frames to look ahead for alternate reference frame selection.",
"minimum": 0,
"maximum": 25,
"type": "integer"
},
"errorResiliencyEnabled": {
"type": "boolean",
"description": "Enables error resiliency feature"
},
"tileColumns": {
"description": "Number of tile columns to use, log2. Depending on the encoding width there are limitations on this value. The minimum values are 2 for width >= 1920 and 1 for width >= 1280. The minimum width of each tile is 256 pixels so the maximum values are 0 for width < 256, 1 for width < 512, 2 for width < 1024, 3 for width < 2048, 4 for width < 4096, 5 for width < 8192. If the value is too high or too low it will be overridden.",
"minimum": 0,
"maximum": 6,
"type": "integer"
},
"tileRows": {
"description": "Number of tile rows to use, log2.",
"minimum": 0,
"maximum": 2,
"type": "integer"
},
"frameParallel": {
"type": "boolean",
"description": "Enable frame parallel decodability features"
},
"maxIntraRate": {
"description": "Maximum I-frame bitrate (percentage) 0=unlimited",
"type": "integer"
},
"qpMin": {
"description": "Minimum quantization factor.",
"minimum": 0,
"maximum": 63,
"type": "integer"
},
"qpMax": {
"description": "Maximum quantization factor.",
"minimum": 0,
"maximum": 63,
"type": "integer"
},
"rateUndershootPct": {
"description": "Datarate undershoot (min) target (percentage).",
"minimum": 0,
"maximum": 100,
"type": "integer"
},
"rateOvershootPct": {
"description": "Datarate overshoot (max) target (percentage).",
"minimum": 0,
"maximum": 100,
"type": "integer"
},
"clientBufferSize": {
"description": "Client buffer size (ms)",
"minimum": 0,
"type": "integer"
},
"clientInitialBufferSize": {
"description": "Client initial buffer size (ms)",
"minimum": 0,
"type": "integer"
},
"biasPct": {
"description": "CBR/VBR bias (0=CBR, 100=VBR)",
"minimum": 0,
"maximum": 100,
"type": "integer"
},
"noiseSensitivity": {
"type": "boolean",
"description": "Enable noise sensitivity on Y channel"
},
"cpuUsed": {
"description": "Controls the tradeoff between compression efficiency and encoding speed. Higher values indicate a faster encoding. The minimum value for width * height >= 1280 * 720 is 2. If the value is too low it will be overridden.",
"minimum": 1,
"maximum": 8,
"type": "integer"
},
"automaticAltRefFramesEnabled": {
"type": "boolean",
"description": "Enable automatic alternate reference frames (2pass only)"
},
"targetLevel": {
"description": "Target level (255: off, 0: only keep level stats; 10: level 1.0; 11: level 1.1; ... 62: level 6.2)",
"minimum": 0,
"maximum": 255,
"type": "integer"
},
"rowMultiThreadingEnabled": {
"type": "boolean",
"description": "Enable row based non-deterministic multi-threading"
},
"sharpness": {
"description": "Loop filter sharpness.",
"minimum": 0,
"maximum": 7,
"type": "integer"
},
"minGop": {
"description": "Minimum GOP length, the minimum distance between I-frames.",
"type": "integer"
},
"maxGop": {
"description": "Maximum GOP length, the maximum distance between I-frames",
"type": "integer"
},
"minKeyframeInterval": {
"description": "Minimum interval in seconds between key frames",
"format": "double",
"type": "number"
},
"maxKeyframeInterval": {
"description": "Maximum interval in seconds between key frames",
"format": "double",
"type": "number"
},
"quality": {
"enum": ["REALTIME", "GOOD", "BEST"],
"type": "string"
},
"lossless": {
"type": "boolean",
"description": "Lossless mode"
},
"staticThresh": {
"description": "A change threshold on blocks below which they will be skipped by the encoder.",
"minimum": 0,
"type": "integer"
},
"aqMode": {
"enum": ["NONE", "VARIANCE", "COMPLEXITY", "CYCLIC"],
"type": "string"
},
"arnrMaxFrames": {
"description": "altref noise reduction max frame count.",
"minimum": 0,
"maximum": 15,
"type": "integer"
},
"arnrStrength": {
"description": "altref noise reduction filter strength.",
"minimum": 0,
"maximum": 6,
"type": "integer"
},
"arnrType": {
"enum": ["BACKWARD", "FORWARD", "CENTERED"],
"type": "string"
},
"autoLevelSetup": {
"description": "Enable/disable automatic calculation of level, maxBitrate, and bufsize based on the least level that satisfies maximum property values for picture resolution, frame rate, and bit rate. In the case the target level is set explicitly, the maximum bitrate and buffer size are calculated based on the defined level. Explicitly setting rateOvershootPct, or clientBufferSize properties will disable the automatic calculation.",
"enum": ["ENABLED", "DISABLED"],
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
},
"av1": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Av1VideoConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"width": {
"description": "Width of the encoded video in pixels",
"type": "integer"
},
"height": {
"description": "Height of the encoded video in pixels",
"type": "integer"
},
"bitrate": {
"description": "Target bitrate for the encoded video in bps. Either bitrate or crf is required.",
"type": "integer"
},
"rate": {
"description": "Target frame rate of the encoded video. Must be set for live encodings",
"format": "double",
"type": "number"
},
"pixelFormat": {
"description": "Describes the color encoding, bit depth, and chroma subsampling of each pixel in the output image.",
"enum": [
"YUV410P",
"YUV411P",
"YUV420P",
"YUV422P",
"YUV440P",
"YUV444P",
"YUVJ411P",
"YUVJ420P",
"YUVJ422P",
"YUVJ440P",
"YUVJ444P",
"YUV420P10LE",
"YUV422P10LE",
"YUV440P10LE",
"YUV444P10LE",
"YUV420P12LE",
"YUV422P12LE",
"YUV440P12LE",
"YUV444P12LE",
"YUV420P10BE",
"YUV422P10BE",
"YUV440P10BE",
"YUV444P10BE",
"YUV420P12BE",
"YUV422P12BE",
"YUV440P12BE",
"YUV444P12BE"
],
"type": "string"
},
"colorConfig": {
"type": "object",
"properties": {
"copyChromaLocationFlag": {
"type": "boolean",
"description": "Copy the chroma location setting from the input source"
},
"copyColorSpaceFlag": {
"type": "boolean",
"description": "Copy the color space setting from the input source"
},
"copyColorPrimariesFlag": {
"type": "boolean",
"description": "Copy the color primaries setting from the input source"
},
"copyColorRangeFlag": {
"type": "boolean",
"description": "Copy the color range setting from the input source"
},
"copyColorTransferFlag": {
"type": "boolean",
"description": "Copy the color transfer setting from the input source"
},
"chromaLocation": {
"description": "The chroma location to be applied",
"enum": [
"UNSPECIFIED",
"LEFT",
"CENTER",
"TOPLEFT",
"TOP",
"BOTTOMLEFT",
"BOTTOM"
],
"type": "string"
},
"colorSpace": {
"description": "The color space to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"RGB",
"BT709",
"FCC",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"YCGCO",
"YCOCG",
"BT2020_NCL",
"BT2020_CL",
"SMPTE2085"
],
"type": "string"
},
"colorPrimaries": {
"description": "The color primaries to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"BT709",
"BT470M",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"FILM",
"BT2020",
"SMPTE428",
"SMPTEST428_1",
"SMPTE431",
"SMPTE432",
"JEDEC_P22"
],
"type": "string"
},
"colorRange": {
"description": "The color range to be applied. If used on a Dolby Vision stream, this value must be set to JPEG.",
"enum": ["UNSPECIFIED", "MPEG", "JPEG"],
"type": "string"
},
"colorTransfer": {
"description": "The color transfer to be applied. If used on a Dolby Vision stream, this value must be set to UNSPECIFIED.",
"enum": [
"UNSPECIFIED",
"BT709",
"GAMMA22",
"GAMMA28",
"SMPTE170M",
"SMPTE240M",
"LINEAR",
"LOG",
"LOG_SQRT",
"IEC61966_2_4",
"BT1361_ECG",
"IEC61966_2_1",
"BT2020_10",
"BT2020_12",
"SMPTE2084",
"SMPTE428",
"ARIB_STD_B67"
],
"type": "string"
},
"inputColorSpace": {
"description": "Override the color space detected in the input file. If not set the input color space will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"RGB",
"BT709",
"FCC",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"YCGCO",
"YCOCG",
"BT2020_NCL",
"BT2020_CL",
"SMPTE2085"
],
"type": "string"
},
"inputColorRange": {
"description": "Override the color range detected in the input file. If not set the input color range will be automatically detected if possible.",
"enum": ["UNSPECIFIED", "MPEG", "JPEG"],
"type": "string"
},
"inputColorPrimaries": {
"description": "Override the color primaries detected in the input file. If not set the input color primaries will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"BT709",
"BT470M",
"BT470BG",
"SMPTE170M",
"SMPTE240M",
"FILM",
"BT2020",
"SMPTE428",
"SMPTEST428_1",
"SMPTE431",
"SMPTE432",
"JEDEC_P22"
],
"type": "string"
},
"inputColorTransfer": {
"description": "Override the color transfer detected in the input file. If not set the input color transfer will be automatically detected if possible.",
"enum": [
"UNSPECIFIED",
"BT709",
"GAMMA22",
"GAMMA28",
"SMPTE170M",
"SMPTE240M",
"LINEAR",
"LOG",
"LOG_SQRT",
"IEC61966_2_4",
"BT1361_ECG",
"IEC61966_2_1",
"BT2020_10",
"BT2020_12",
"SMPTE2084",
"SMPTE428",
"ARIB_STD_B67"
],
"type": "string"
}
}
},
"sampleAspectRatioNumerator": {
"description": "The numerator of the sample aspect ratio (also known as pixel aspect ratio). Must be set if sampleAspectRatioDenominator is set. If set then displayAspectRatio is not allowed.",
"type": "integer"
},
"sampleAspectRatioDenominator": {
"description": "The denominator of the sample aspect ratio (also known as pixel aspect ratio). Must be set if sampleAspectRatioNumerator is set. If set then displayAspectRatio is not allowed.",
"type": "integer"
},
"displayAspectRatio": {
"type": "object",
"description": "Specifies a display aspect ratio (DAR) to be enforced. The sample aspect ratio (SAR) will be adjusted accordingly. If set then sampleAspectRatioNumerator and sampleAspectRatioDenominator are not allowed.",
"properties": {
"numerator": {
"description": "The numerator of the display aspect ratio (DAR). For example for a DAR of 16:9, the value 16 must be used.",
"minimum": 1,
"type": "integer"
},
"denominator": {
"description": "The denominator of the display aspect ratio (DAR). For example for a DAR of 16:9, the value 9 must be used.",
"minimum": 1,
"type": "integer"
}
},
"required": ["denominator", "numerator"]
},
"encodingMode": {
"description": "The mode of the encoding. When this is set, `encodingMode` (`liveEncodingMode`) must not be set in the (live) encoding start request.",
"enum": [
"STANDARD",
"SINGLE_PASS",
"TWO_PASS",
"THREE_PASS"
],
"type": "string"
},
"presetConfiguration": {
"description": "Use a set of well defined configurations preset to support certain use cases. Can be overwritten with more specific values.",
"enum": ["VOD_QUALITY", "VOD_STANDARD", "VOD_SPEED"],
"type": "string"
},
"autoLevelSetup": {
"description": "Enable/disable automatic calculation of level, maxBitrate, and bufsize based on the least level that satisfies maximum property values for picture resolution, frame rate, and bit rate. In the case the target level is set explicitly, the maximum bitrate and buffer size are calculated based on the defined level. Explicitly setting maxBitrate, or bufsize properties will disable the automatic calculation.",
"enum": ["ENABLED", "DISABLED"],
"type": "string"
},
"keyPlacementMode": {
"enum": ["AUTO", "FIXED", "DISABLED"],
"type": "string"
},
"adaptiveQuantMode": {
"enum": [
"OFF",
"VARIANCE",
"COMPLEXITY",
"CYCLIC_REFRESH",
"DELTA_QUANT"
],
"type": "string"
},
"lagInFrames": {
"description": "Number of frames to look ahead for alternate reference frame selection",
"minimum": 0,
"maximum": 25,
"type": "integer"
},
"minQ": {
"description": "Minimum (best quality) quantizer",
"type": "integer"
},
"maxQ": {
"description": "Maximum (worst quality) quantizer",
"type": "integer"
},
"undershootPct": {
"description": "Rate control adaptation undershoot control",
"minimum": 0,
"maximum": 1000,
"type": "integer"
},
"overshootPct": {
"description": "Rate control adaptation overshoot control",
"minimum": 0,
"maximum": 1000,
"type": "integer"
},
"clientBufferSize": {
"description": "Decoder buffer size in milliseconds",
"type": "integer"
},
"clientInitialBufferSize": {
"description": "Decoder buffer initial size in milliseconds",
"type": "integer"
},
"clientOptimalBufferSize": {
"description": "Decoder buffer optimal size in milliseconds",
"type": "integer"
},
"tileColumns": {
"description": "Number of tile columns to use, log2",
"minimum": 0,
"maximum": 6,
"type": "integer"
},
"tileRows": {
"description": "Number of tile rows to use, log2",
"minimum": 0,
"maximum": 2,
"type": "integer"
},
"isAutomaticAltRefFramesEnabled": {
"type": "boolean",
"description": "Enable automatic set and use alf frames"
},
"arnrMaxFrames": {
"description": "The max number of frames to create arf",
"type": "integer"
},
"arnrStrength": {
"description": "The filter strength for the arf",
"type": "integer"
},
"maxIntraRate": {
"description": "Maximum data rate for intra frames, expressed as a percentage of the average per-frame bitrate. Default value 0 meaning unlimited",
"type": "integer"
},
"isLossless": {
"type": "boolean",
"description": "Lossless encoding mode"
},
"isFrameParallel": {
"type": "boolean",
"description": "Enable frame parallel decoding feature"
},
"sharpness": {
"description": "Sharpness",
"type": "integer"
},
"isFrameBoostEnabled": {
"type": "boolean",
"description": "Enable quality boost by lowering frame level Q periodically"
},
"noiseSensitivity": {
"type": "boolean",
"description": "Enable noise sensitivity on Y channel"
},
"minGfInterval": {
"description": "Minimum interval between GF/ARF frames",
"type": "integer"
},
"maxGfInterval": {
"description": "Maximum interval between GF/ARF frames",
"type": "integer"
},
"numTileGroups": {
"description": "Maximum number of tile groups",
"type": "integer"
},
"mtuSize": {
"description": "Maximum number of bytes in a tile group",
"type": "integer"
}
}
}
},
"required": ["properties"]
}
}
},
"mjpeg": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "MjpegVideoConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"width": {
"description": "Width of the encoded video",
"type": "integer"
},
"height": {
"description": "Height of the encoded video",
"type": "integer"
},
"rate": {
"description": "Target frame rate of the encoded video!",
"format": "double",
"type": "number"
},
"qScale": {
"description": "The quality scale parameter",
"type": "integer"
},
"pixelFormat": {
"enum": [
"YUV410P",
"YUV411P",
"YUV420P",
"YUV422P",
"YUV440P",
"YUV444P",
"YUVJ411P",
"YUVJ420P",
"YUVJ422P",
"YUVJ440P",
"YUVJ444P",
"YUV420P10LE",
"YUV422P10LE",
"YUV440P10LE",
"YUV444P10LE",
"YUV420P12LE",
"YUV422P12LE",
"YUV440P12LE",
"YUV444P12LE",
"YUV420P10BE",
"YUV422P10BE",
"YUV440P10BE",
"YUV444P10BE",
"YUV420P12BE",
"YUV422P12BE",
"YUV440P12BE",
"YUV444P12BE"
],
"type": "string"
}
},
"required": ["qScale", "rate"]
}
},
"required": ["properties"]
}
}
}
}
},
"audio": {
"type": "object",
"properties": {
"aac": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "AacAudioConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bitrate": {
"description": "Target bitrate for the encoded audio in bps",
"type": "integer"
},
"rate": {
"description": "Audio sampling rate in Hz",
"format": "double",
"type": "number"
},
"channelLayout": {
"description": "Channel layout of the audio codec configuration",
"enum": [
"NONE",
"MONO",
"STEREO",
"SURROUND",
"4.0",
"5.0_BACK",
"5.1_BACK",
"7.1",
"7.1_WIDE_BACK"
],
"type": "string"
},
"cutoffFrequency": {
"description": "The highest frequency that will pass the audio encoder. This value is optional.",
"type": "integer"
}
},
"required": ["bitrate"]
}
},
"required": ["properties"]
}
}
},
"dtsPassthrough": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DtsPassthroughAudioConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
}
}
}
},
"required": ["properties"]
}
}
},
"dts": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DtsAudioConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bitrate": {
"description": "Target bitrate for the encoded audio in bps. Allowed values are: 255000, 384000, for DTS Express Audio. For DTS Digital Surround only 768000 is allowed.",
"type": "integer"
},
"rate": {
"description": "Audio sampling rate in Hz. Only 48000 is allowed.",
"format": "double",
"type": "number"
},
"mode": {
"description": "There are two DTS modes available: DTS Express Audio (EXPRESS_AUDIO) and DTS Digital Surround (DIGITAL_SURROUND)",
"enum": ["EXPRESS_AUDIO", "DIGITAL_SURROUND"],
"type": "string"
}
},
"required": ["bitrate"]
}
},
"required": ["properties"]
}
}
},
"dtsx": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DtsXAudioConfiguration",
"description": "The configuration for the DTS:X",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bitrate": {
"enum": [
"160000",
"192000",
"224000",
"256000",
"288000",
"320000",
"384000",
"448000"
],
"type": "string"
},
"rate": {
"description": "Audio sampling rate in Hz. Must be 48000",
"format": "double",
"type": "number"
},
"channelLayout": {
"enum": ["5.1", "5.1.4"],
"type": "string"
},
"lkfsValue": {
"description": "Loudness relative to full scale (K-weighted).",
"minimum": -40,
"maximum": 0,
"format": "double",
"type": "number"
},
"ottLoudnessMode": {
"enum": [
"DTSX_OTT_LOUDNESS_DETECT",
"DTSX_OTT_LOUDNESS_INPUT",
"DTSX_OTT_LOUDNESS_TARGET"
],
"type": "string"
},
"syncInterval": {
"description": "Specifies the sync interval which ranges from 1 to 10",
"minimum": 1,
"maximum": 10,
"type": "integer"
}
},
"required": [
"channelLayout",
"ottLoudnessMode",
"bitrate"
]
}
},
"required": ["properties"]
}
}
},
"dolbyAtmos": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DolbyAtmosAudioConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bitrate": {
"description": "Target bitrate for the encoded audio in bps. Allowed values are: 384000, 448000, 576000, 640000, 768000, 1024000",
"type": "integer"
},
"rate": {
"description": "Audio sampling rate in Hz. Only 48000 is allowed.",
"format": "double",
"type": "number"
},
"loudnessControl": {
"type": "object",
"description": "Settings for loudness control",
"properties": {
"meteringMode": {
"description": "Algorithm to be used for measuring loudness. Recommended value is \"ITU_R_BS_1770_4\"",
"enum": [
"ITU-R BS.1770-1",
"ITU-R BS.1770-2",
"ITU-R BS.1770-3",
"ITU-R BS.1770-4",
"Leq (A)"
],
"type": "string"
},
"dialogueIntelligence": {
"description": "Whether to use the Dialogue Intelligence feature, which identifies and analyzes dialogue segments within audio as a basis for speech gating. Must not be \"DISABLED\" for meteringMode \"ITU-R BS.1770-1\" or \"Leq (A)\", otherwise recommended value is \"ENABLED\"",
"enum": ["ENABLED", "DISABLED"],
"type": "string"
},
"speechThreshold": {
"description": "Specifies the percentage of speech that must be detected in the metered content before using the measured speech loudness as the overall program loudness. Given as an integer percentage between 0 and 100 (0% to 100%). Recommended value is 15",
"minimum": 0,
"maximum": 100,
"type": "integer"
}
},
"required": [
"dialogueIntelligence",
"meteringMode",
"speechThreshold"
]
}
},
"required": ["loudnessControl", "bitrate"]
}
},
"required": ["properties"]
}
}
},
"heAacV1": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "HeAacV1AudioConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bitrate": {
"description": "Target bitrate for the encoded audio in bps",
"type": "integer"
},
"rate": {
"description": "Audio sampling rate in Hz",
"format": "double",
"type": "number"
},
"channelLayout": {
"description": "Channel layout of the audio codec configuration",
"enum": [
"NONE",
"MONO",
"STEREO",
"SURROUND",
"4.0",
"5.0_BACK",
"5.1_BACK",
"7.1",
"7.1_WIDE_BACK"
],
"type": "string"
},
"signaling": {
"description": "Spectral Band Replication (SBR) and Parameteric Stereo (PS) signaling style.",
"enum": [
"IMPLICIT",
"EXPLICIT_SBR",
"EXPLICIT_HIERARCHICAL"
],
"type": "string"
}
},
"required": ["bitrate"]
}
},
"required": ["properties"]
}
}
},
"heAacV2": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "HeAacV2AudioConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bitrate": {
"description": "Target bitrate for the encoded audio in bps",
"type": "integer"
},
"rate": {
"description": "Audio sampling rate in Hz",
"format": "double",
"type": "number"
},
"channelLayout": {
"description": "Channel layout of the audio codec configuration",
"enum": [
"NONE",
"MONO",
"STEREO",
"SURROUND",
"4.0",
"5.0_BACK",
"5.1_BACK",
"7.1",
"7.1_WIDE_BACK"
],
"type": "string"
},
"signaling": {
"description": "Spectral Band Replication (SBR) and Parameteric Stereo (PS) signaling style.",
"enum": [
"IMPLICIT",
"EXPLICIT_SBR",
"EXPLICIT_PS",
"EXPLICIT_HIERARCHICAL"
],
"type": "string"
}
},
"required": ["bitrate"]
}
},
"required": ["properties"]
}
}
},
"passthrough": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "PassthroughAudioConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
}
}
}
},
"required": ["properties"]
}
}
},
"vorbis": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "VorbisAudioConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bitrate": {
"description": "Target bitrate for the encoded audio in bps",
"type": "integer"
},
"rate": {
"description": "Audio sampling rate in Hz",
"format": "double",
"type": "number"
},
"channelLayout": {
"description": "Channel layout of the audio codec configuration",
"enum": [
"NONE",
"MONO",
"STEREO",
"SURROUND",
"QUAD",
"2.1",
"2.2",
"3.1",
"4.0",
"5.1",
"5.1_BACK"
],
"type": "string"
}
},
"required": ["bitrate"]
}
},
"required": ["properties"]
}
}
},
"opus": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "OpusAudioConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bitrate": {
"description": "Target bitrate for the encoded audio in bps",
"type": "integer"
},
"rate": {
"description": "Audio sampling rate in Hz",
"format": "double",
"type": "number"
},
"channelLayout": {
"description": "Channel layout of the audio codec configuration",
"enum": [
"NONE",
"MONO",
"STEREO",
"SURROUND",
"QUAD",
"4.1",
"5.0_BACK",
"5.1_BACK",
"6.1",
"7.1"
],
"type": "string"
}
},
"required": ["bitrate"]
}
},
"required": ["properties"]
}
}
},
"pcm": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "PcmAudioConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bitrate": {
"description": "Target bitrate for the encoded audio in bps",
"type": "integer"
},
"rate": {
"description": "Audio sampling rate in Hz",
"format": "double",
"type": "number"
},
"presetConfiguration": {
"description": "Use a set of well defined configurations preset to support certain use cases. Can be overwritten with more specific values.",
"enum": ["XDCAM"],
"type": "string"
},
"channelLayout": {
"description": "Channel layout of the audio codec configuration",
"enum": ["MONO", "STEREO"],
"type": "string"
},
"sampleFormat": {
"description": "Sampling format of the audio codec configuration",
"enum": ["S16LE", "S24LE", "S32LE"],
"type": "string"
}
},
"required": ["bitrate"]
}
},
"required": ["properties"]
}
}
},
"ac3": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Ac3AudioConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bitrate": {
"description": "Target bitrate for the encoded audio in bps",
"type": "integer"
},
"rate": {
"description": "Audio sampling rate in Hz",
"format": "double",
"type": "number"
},
"channelLayout": {
"description": "Channel layout of the audio codec configuration",
"enum": [
"NONE",
"MONO",
"STEREO",
"SURROUND",
"QUAD",
"2.1",
"2.2",
"3.1",
"4.0",
"4.1",
"5.0",
"5.0_BACK",
"5.1",
"5.1_BACK"
],
"type": "string"
},
"cutoffFrequency": {
"description": "The highest frequency that will pass the audio encoder. This value is optional.",
"type": "integer"
}
},
"required": ["bitrate"]
}
},
"required": ["properties"]
}
}
},
"dolbyDigital": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DolbyDigitalAudioConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bitrate": {
"description": "Target bitrate for the encoded audio in bps",
"type": "integer"
},
"rate": {
"description": "Audio sampling rate in Hz",
"format": "double",
"type": "number"
},
"bitstreamInfo": {
"type": "object",
"description": "BitstreamInfo defines metadata parameters contained in the Dolby Digital audio bitstream",
"properties": {
"surroundMode": {
"description": "This parameter indicates to a decoder whether the two‐channel encoded bitstream contains a Dolby Surround (Lt/Rt) program that requires Dolby Pro Logic decoding.\n\nWhen downmixing to stereo from a multichannel input, set this value according to the type of downmix performed (Lt/Rt: `ENABLED`, Lo/Ro: `DISABLED`).\nWhen transcoding a stereo Dolby Digital, Dolby Digital Plus, or Dolby E input, the value must be passed through from the input bitstream to the output bitstream.\nWhen transcoding a third-party stereo input to stereo Dolby Digital set the value to `NOT_INDICATED`.\n",
"enum": ["ENABLED", "DISABLED", "NOT_INDICATED"],
"type": "string"
},
"surroundExMode": {
"description": "This is used to identify the encoded audio as material encoded in Dolby Digital Surround EX.\nThis parameter is used only if the encoded audio has two surround channels.\n\nAn amplifier or receiver with Dolby Digital Surround EX decoding can use this parameter as a flag to switch the decoding on or off automatically.\nThe behavior is similar to that of the `surroundMode` parameter.\n",
"enum": ["ENABLED", "DISABLED", "NOT_INDICATED"],
"type": "string"
}
}
},
"channelLayout": {
"description": "Channel layout of the audio codec configuration.",
"enum": [
"NONE",
"MONO",
"STEREO",
"SURROUND",
"3.1",
"BACK_SURROUND",
"BACK_SURROUND_LFE",
"QUAD",
"QUAD_LFE",
"4.0",
"4.1",
"5.0",
"5.1"
],
"type": "string"
},
"downmixing": {
"type": "object",
"properties": {
"loRoCenterMixLevel": {
"description": "The level shift applied to the C channel when adding to the L and R outputs as a result of downmixing to one Lo/Ro output.",
"enum": [
"PLUS_3_DB",
"PLUS_1_5_DB",
"ZERO_DB",
"MINUS_1_5_DB",
"MINUS_3_DB",
"MINUS_4_5_DB",
"MINUS_6_DB",
"MINUS_INFINITY_DB"
],
"type": "string"
},
"ltRtCenterMixLevel": {
"description": "The level shift applied to the C channel when adding to the L and R outputs as a result of downmixing to one Lt/Rt output.",
"enum": [
"PLUS_3_DB",
"PLUS_1_5_DB",
"ZERO_DB",
"MINUS_1_5_DB",
"MINUS_3_DB",
"MINUS_4_5_DB",
"MINUS_6_DB",
"MINUS_INFINITY_DB"
],
"type": "string"
},
"loRoSurroundMixLevel": {
"description": "The level shift applied to the surround channels when downmixing to one Lo/Ro output.",
"enum": [
"MINUS_1_5_DB",
"MINUS_3_DB",
"MINUS_4_5_DB",
"MINUS_6_DB",
"MINUS_INFINITY_DB"
],
"type": "string"
},
"ltRtSurroundMixLevel": {
"description": "The level shift applied to the surround channels when downmixing to one Lt/Rt output.",
"enum": [
"MINUS_1_5_DB",
"MINUS_3_DB",
"MINUS_4_5_DB",
"MINUS_6_DB",
"MINUS_INFINITY_DB"
],
"type": "string"
},
"preferredMode": {
"enum": ["LO_RO", "LT_RT", "PRO_LOGIC_II"],
"type": "string"
}
}
},
"evolutionFrameworkControl": {
"description": "It provides a framework for signaling new evolution framework applications, such as Intelligent Loudness, in each Dolby codec.\n",
"enum": ["ENABLED", "DISABLED"],
"type": "string"
},
"loudnessControl": {
"type": "object",
"description": "Settings for loudness control",
"properties": {
"dialnorm": {
"description": "Dialogue Normalization value to be set on the bitstream metadata. Required if the mode is `PASSTHROUGH`, or if the mode is `CORRECTION` and regulationType is `MANUAL`. For all other combinations dialnorm must not be set.",
"minimum": -31,
"maximum": -1,
"type": "integer"
},
"dialogueIntelligence": {
"description": "This may only be set if the mode is `PASSTHROUGH`, or if the mode is `CORRECTION` and regulationType is `MANUAL`. For all other combinations dialogueIntelligence must not be set.",
"enum": ["ENABLED", "DISABLED"],
"type": "string"
},
"mode": {
"enum": ["PASSTHROUGH", "CORRECTION"],
"type": "string"
},
"peakLimit": {
"description": "The peak value in dB to use for loudness correction. This may only be set if the mode is `PASSTHROUGH`, or if the mode is `CORRECTION` and regulationType is `MANUAL`. For all other combinations peakLimit must not be set.",
"minimum": -8,
"maximum": -0.1,
"format": "double",
"type": "number"
},
"regulationType": {
"description": "This is only allowed if the mode is CORRECTION.
Predefined values for each regulation type: |
Regulation Type | EBU R128 | ATSC A/85 Fixed | ATSC A/85 Agile |
Limit Mode | `True Peak` | `True Peak` | `True Peak` |
Correction Mode | `PCM Normalization` | `PCM Normalization` | `Metadata Update` |
Peak Limit | `–3 dBTP` | `–2 dBTP` | `N/A` |
Dialogue Intelligence | `Off` | `On` | `On` |
Meter Mode | `ITU-R BS.1770-3` | `ITU-R BS.1770-3` | `ITU-R BS.1770-3` |
Speech Threshold | `20` | `20` | `20` |
Dialogue Normalization | `-23 dB` | `-24 dB` | `Set to measured loudness` |
\n",
"enum": [
"EBU_R128",
"ATSC_A85_FIXED",
"ATSC_A85_AGILE",
"MANUAL"
],
"type": "string"
}
}
},
"preprocessing": {
"type": "object",
"properties": {
"dynamicRangeCompression": {
"type": "object",
"description": "It indicates a gain change to be applied in the Dolby Digital decoder in order to implement dynamic range compression.\n\nThe values typically indicate gain reductions (cut) during loud passages and gain increases (boost) during quiet passages based on desired compression characteristics.\n",
"properties": {
"lineMode": {
"description": "Line mode is intended for use in products providing line‐level or speaker‐level outputs, and is applicable to the widest range of products.\nProducts such as set‐top boxes, DVD players, DTVs, A/V surround decoders, and outboard Dolby Digital decoders typically use this mode.",
"enum": [
"NONE",
"FILM_STANDARD",
"FILM_LIGHT",
"MUSIC_STANDARD",
"MUSIC_LIGHT",
"SPEECH"
],
"type": "string"
},
"rfMode": {
"description": "RF mode is intended for products such as a low‐cost television receivers.",
"enum": [
"NONE",
"FILM_STANDARD",
"FILM_LIGHT",
"MUSIC_STANDARD",
"MUSIC_LIGHT",
"SPEECH"
],
"type": "string"
}
}
},
"lfeLowPassFilter": {
"description": "It applies a 120 Hz low-pass filter to the low-frequency effects (LFE) channel.\n\nThis is only allowed if the `channelLayout` contains a LFE channel.\n",
"enum": ["ENABLED", "DISABLED"],
"type": "string"
},
"ninetyDegreePhaseShift": {
"enum": ["ENABLED", "DISABLED"],
"type": "string"
},
"threeDbAttenuation": {
"enum": ["ENABLED", "DISABLED"],
"type": "string"
}
}
}
},
"required": ["loudnessControl", "bitrate"]
}
},
"required": ["properties"]
}
}
},
"dolbyDigitalPlus": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DolbyDigitalPlusAudioConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bitrate": {
"description": "Target bitrate for the encoded audio in bps",
"type": "integer"
},
"rate": {
"description": "Audio sampling rate in Hz",
"format": "double",
"type": "number"
},
"bitstreamInfo": {
"type": "object",
"description": "BitstreamInfo defines metadata parameters contained in the Dolby Digital Plus audio bitstream",
"properties": {
"surroundMode": {
"description": "This parameter indicates to a decoder whether the two‐channel encoded bitstream contains a Dolby Surround (Lt/Rt) program that requires Dolby Pro Logic decoding.\n\nWhen downmixing to stereo from a multichannel input, set this value according to the type of downmix performed (Lt/Rt: `ENABLED`, Lo/Ro: `DISABLED`).\nWhen transcoding a stereo Dolby Digital, Dolby Digital Plus, or Dolby E input, the value must be passed through from the input bitstream to the output bitstream.\nWhen transcoding a third-party stereo input to stereo Dolby Digital set the value to `NOT_INDICATED`.\n",
"enum": ["ENABLED", "DISABLED", "NOT_INDICATED"],
"type": "string"
},
"surroundExMode": {
"description": "This is used to identify the encoded audio as material encoded in Dolby Digital Surround EX.\nThis parameter is used only if the encoded audio has two surround channels.\n\nAn amplifier or receiver with Dolby Digital Surround EX decoding can use this parameter as a flag to switch the decoding on or off automatically.\nThe behavior is similar to that of the `surroundMode` parameter.\n",
"enum": ["ENABLED", "DISABLED", "NOT_INDICATED"],
"type": "string"
}
}
},
"channelLayout": {
"description": "Channel layout of the audio codec configuration.",
"enum": [
"NONE",
"MONO",
"STEREO",
"SURROUND",
"3.1",
"BACK_SURROUND",
"BACK_SURROUND_LFE",
"QUAD",
"QUAD_LFE",
"4.0",
"4.1",
"5.0",
"5.1"
],
"type": "string"
},
"downmixing": {
"type": "object",
"properties": {
"loRoCenterMixLevel": {
"description": "The level shift applied to the C channel when adding to the L and R outputs as a result of downmixing to one Lo/Ro output.",
"enum": [
"PLUS_3_DB",
"PLUS_1_5_DB",
"ZERO_DB",
"MINUS_1_5_DB",
"MINUS_3_DB",
"MINUS_4_5_DB",
"MINUS_6_DB",
"MINUS_INFINITY_DB"
],
"type": "string"
},
"ltRtCenterMixLevel": {
"description": "The level shift applied to the C channel when adding to the L and R outputs as a result of downmixing to one Lt/Rt output.",
"enum": [
"PLUS_3_DB",
"PLUS_1_5_DB",
"ZERO_DB",
"MINUS_1_5_DB",
"MINUS_3_DB",
"MINUS_4_5_DB",
"MINUS_6_DB",
"MINUS_INFINITY_DB"
],
"type": "string"
},
"loRoSurroundMixLevel": {
"description": "The level shift applied to the surround channels when downmixing to one Lo/Ro output.",
"enum": [
"MINUS_1_5_DB",
"MINUS_3_DB",
"MINUS_4_5_DB",
"MINUS_6_DB",
"MINUS_INFINITY_DB"
],
"type": "string"
},
"ltRtSurroundMixLevel": {
"description": "The level shift applied to the surround channels when downmixing to one Lt/Rt output.",
"enum": [
"MINUS_1_5_DB",
"MINUS_3_DB",
"MINUS_4_5_DB",
"MINUS_6_DB",
"MINUS_INFINITY_DB"
],
"type": "string"
},
"preferredMode": {
"enum": ["LO_RO", "LT_RT", "PRO_LOGIC_II"],
"type": "string"
}
}
},
"evolutionFrameworkControl": {
"description": "It provides a framework for signaling new evolution framework applications, such as Intelligent Loudness, in each Dolby codec.\n",
"enum": ["ENABLED", "DISABLED"],
"type": "string"
},
"loudnessControl": {
"type": "object",
"description": "Settings for loudness control",
"properties": {
"dialnorm": {
"description": "Dialogue Normalization value to be set on the bitstream metadata. Required if the mode is `PASSTHROUGH`, or if the mode is `CORRECTION` and regulationType is `MANUAL`. For all other combinations dialnorm must not be set.",
"minimum": -31,
"maximum": -1,
"type": "integer"
},
"dialogueIntelligence": {
"description": "This may only be set if the mode is `PASSTHROUGH`, or if the mode is `CORRECTION` and regulationType is `MANUAL`. For all other regulationType values dialogueIntelligence must not be set.",
"enum": ["ENABLED", "DISABLED"],
"type": "string"
},
"mode": {
"enum": ["PASSTHROUGH", "CORRECTION"],
"type": "string"
},
"peakLimit": {
"description": "The peak value in dB to use for loudness correction. This may only be set if the mode is `PASSTHROUGH`, or if the mode is `CORRECTION` and regulationType is `MANUAL`. For all other regulationType values peakLimit must not be set.",
"minimum": -8,
"maximum": -0.1,
"format": "double",
"type": "number"
},
"regulationType": {
"description": "This is only allowed if the mode is CORRECTION. Predefined values for each regulation type: |
Regulation Type | EBU R128 | ATSC A/85 Fixed | ATSC A/85 Agile |
Limit Mode | `True Peak` | `True Peak` | `True Peak` |
Correction Mode | `PCM Normalization` | `PCM Normalization` | `Metadata Update` |
Peak Limit | `–3 dBTP` | `–2 dBTP` | `N/A` |
Dialogue Intelligence | `Off` | `On` | `On` |
Meter Mode | `ITU-R BS.1770-3` | `ITU-R BS.1770-3` | `ITU-R BS.1770-3` |
Speech Threshold | `20` | `20` | `20` |
Dialogue Normalization | `-23 dB` | `-24 dB` | `Set to measured loudness` |
\n",
"enum": [
"EBU_R128",
"ATSC_A85_FIXED",
"ATSC_A85_AGILE",
"MANUAL"
],
"type": "string"
}
}
},
"preprocessing": {
"type": "object",
"properties": {
"dynamicRangeCompression": {
"type": "object",
"description": "It indicates a gain change to be applied in the Dolby Digital decoder in order to implement dynamic range compression.\n\nThe values typically indicate gain reductions (cut) during loud passages and gain increases (boost) during quiet passages based on desired compression characteristics.\n",
"properties": {
"lineMode": {
"description": "Line mode is intended for use in products providing line‐level or speaker‐level outputs, and is applicable to the widest range of products.\n\nProducts such as set‐top boxes, DVD players, DTVs, A/V surround decoders, and outboard Dolby Digital decoders typically use this mode.\n",
"enum": [
"NONE",
"FILM_STANDARD",
"FILM_LIGHT",
"MUSIC_STANDARD",
"MUSIC_LIGHT",
"SPEECH"
],
"type": "string"
},
"rfMode": {
"description": "RF mode is intended for products such as a low‐cost television receiver.",
"enum": [
"NONE",
"FILM_STANDARD",
"FILM_LIGHT",
"MUSIC_STANDARD",
"MUSIC_LIGHT",
"SPEECH"
],
"type": "string"
}
}
},
"lfeLowPassFilter": {
"description": "It applies a 120 Hz low-pass filter to the low-frequency effects (LFE) channel.\n\nThis is only allowed if the `channelLayout` contains a LFE channel.\n",
"enum": ["ENABLED", "DISABLED"],
"type": "string"
},
"ninetyDegreePhaseShift": {
"enum": ["ENABLED", "DISABLED"],
"type": "string"
},
"threeDbAttenuation": {
"enum": ["ENABLED", "DISABLED"],
"type": "string"
}
}
}
},
"required": ["loudnessControl", "bitrate"]
}
},
"required": ["properties"]
}
}
},
"eac3": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Eac3AudioConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bitrate": {
"description": "Target bitrate for the encoded audio in bps",
"type": "integer"
},
"rate": {
"description": "Audio sampling rate in Hz",
"format": "double",
"type": "number"
},
"channelLayout": {
"description": "Channel layout of the audio codec configuration",
"enum": [
"NONE",
"MONO",
"STEREO",
"SURROUND",
"QUAD",
"2.1",
"2.2",
"3.1",
"4.0",
"4.1",
"5.0",
"5.0_BACK",
"5.1",
"5.1_BACK"
],
"type": "string"
},
"cutoffFrequency": {
"description": "The highest frequency that will pass the audio encoder. This value is optional.",
"type": "integer"
}
},
"required": ["bitrate"]
}
},
"required": ["properties"]
}
}
},
"mp2": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Mp2AudioConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bitrate": {
"description": "Target bitrate for the encoded audio in bps",
"type": "integer"
},
"rate": {
"description": "Audio sampling rate in Hz",
"format": "double",
"type": "number"
},
"channelLayout": {
"description": "Channel layout of the audio codec configuration",
"enum": ["NONE", "MONO", "STEREO"],
"type": "string"
}
},
"required": ["bitrate"]
}
},
"required": ["properties"]
}
}
},
"mp3": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Mp3AudioConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"bitrate": {
"description": "Target bitrate for the encoded audio in bps",
"type": "integer"
},
"rate": {
"description": "Audio sampling rate in Hz",
"format": "double",
"type": "number"
},
"channelLayout": {
"description": "Channel layout of the audio codec configuration",
"enum": ["NONE", "MONO", "STEREO"],
"type": "string"
}
},
"required": ["bitrate"]
}
},
"required": ["properties"]
}
}
}
}
},
"subtitles": {
"type": "object",
"properties": {
"dvbSubtitle": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DvbSubtitleConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
}
}
}
},
"required": ["properties"]
}
}
},
"webvtt": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "WebVttConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"appendOptionalZeroHour": {
"type": "boolean",
"description": "If set to true, the hours section on webvtt timestamp values will explicitely have zeroes instead of being omitted for values where hours = 0."
},
"ignoreRegion": {
"type": "boolean",
"description": "If set to true, the region information of the resulting webvtt file will be omitted. Defaults to false."
},
"cueIdentifierPolicy": {
"enum": ["INCLUDE_IDENTIFIERS", "OMIT_IDENTIFIERS"],
"type": "string"
},
"styling": {
"type": "object",
"properties": {
"mode": {
"enum": ["PASSTHROUGH", "DROP_STYLING"],
"type": "string"
}
}
}
}
}
},
"required": ["properties"]
}
}
},
"imsc": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ImscConfiguration",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"styling": {
"type": "object",
"properties": {
"mode": {
"enum": ["PASSTHROUGH", "DROP_STYLING"],
"type": "string"
}
}
}
}
}
},
"required": ["properties"]
}
}
}
}
}
}
},
"filters": {
"type": "object",
"properties": {
"conform": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ConformFilter",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"targetFps": {
"description": "The FPS the input should be changed to.",
"format": "double",
"type": "number"
}
}
}
},
"required": ["properties"]
}
}
},
"watermark": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "WatermarkFilter",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"image": {
"description": "URL of the file to be used as watermark image. Supported image formats: PNG, JPEG, BMP, GIF",
"type": "string"
},
"left": {
"description": "Distance from the left edge of the input video to the left edge of the watermark image. May not be set if 'right' is set.",
"type": "integer"
},
"right": {
"description": "Distance from the right edge of the input video to the right edge of the watermark image . May not be set if 'left' is set.",
"type": "integer"
},
"top": {
"description": "Distance from the top edge of the input video to the top edge of the watermark image. May not be set if 'bottom' is set.",
"type": "integer"
},
"bottom": {
"description": "Distance from the bottom edge of the input video to the bottom edge of the watermark image. May not be set if 'top' is set.",
"type": "integer"
},
"unit": {
"description": "Specifies if the values of 'left', 'right', 'top' and 'bottom' are interpreted as pixels or as a percentage of the input video's dimensions.",
"enum": ["PIXELS", "PERCENTS"],
"type": "string"
}
},
"required": ["image"]
}
},
"required": ["properties"]
}
}
},
"audioVolume": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "AudioVolumeFilter",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"volume": {
"description": "Audio volume value",
"format": "double",
"type": "number"
},
"unit": {
"enum": ["PERCENT", "DB"],
"type": "string"
},
"format": {
"enum": [
"U8",
"S16",
"S32",
"U8P",
"S16P",
"S32P",
"S64",
"S64P",
"FLT",
"FLTP",
"NONE",
"DBL",
"DBLP"
],
"type": "string"
}
},
"required": ["unit", "volume"]
}
},
"required": ["properties"]
}
}
},
"azureSpeechToCaptions": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "AzureSpeechToCaptionsFilter",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"azureSpeechToCaptionsSettings": {
"type": "object",
"properties": {
"azureSpeechServicesCredentials": {
"type": "object",
"description": "Credential settings to access Azure Speech Services\n",
"properties": {
"subscriptionKey": {
"description": "Azure Speech Services resource key\n",
"type": "string"
}
},
"required": ["subscriptionKey"]
},
"region": {
"description": "Azure Speech Services Region Identifier. The list of speech service supported regions can be\nfound at Azure's official documentation.\n",
"type": "string"
},
"apiEndpoint": {
"description": "Azure Speech Services API endpoint. This information can be found in Azure's Speech resource data.\n",
"type": "string"
},
"language": {
"description": "Azure Speech to captions supported language (IETF BCP 47 language tag).\nThe list of supported languages can be found at Azure's official documentation.\n",
"type": "string"
},
"captionDelay": {
"description": "How many MILLISECONDS to delay the display of each caption, to mimic a real-time experience.\nThe minimum value is 0.\n",
"type": "integer"
},
"captionRemainTime": {
"description": "How many MILLISECONDS a caption should remain on screen if it is not replaced by another.\nThe minimum value is 0.\n",
"type": "integer"
},
"captionMaxLineLength": {
"description": "The maximum number of characters per line for a caption. \nThe minimum value is 20.\n",
"type": "integer"
},
"captionLines": {
"description": "The number of lines for a caption.\nThe minimum value is 1.\n",
"type": "integer"
},
"profanityOption": {
"description": "The profanity filter options are:\n\n- Masked: Replaces letters in profane words with asterisk (*) characters.\n- Raw: Include the profane words verbatim.\n- Removed: Removes profane words.\n",
"enum": ["MASKED", "REMOVED", "RAW"],
"type": "string"
}
}
}
},
"required": ["azureSpeechToCaptionsSettings"]
}
},
"required": ["properties"]
}
}
},
"enhancedWatermark": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "EnhancedWatermarkFilter",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"image": {
"description": "URL of the file to be used as watermark image. Supported image formats: PNG, JPEG, BMP, GIF",
"type": "string"
},
"left": {
"description": "Distance from the left edge of the input video to the left edge of the watermark image. May not be set if 'right' is set.",
"format": "double",
"type": "number"
},
"right": {
"description": "Distance from the right edge of the input video to the right edge of the watermark image . May not be set if 'left' is set.",
"format": "double",
"type": "number"
},
"top": {
"description": "Distance from the top edge of the input video to the top edge of the watermark image. May not be set if 'bottom' is set.",
"format": "double",
"type": "number"
},
"bottom": {
"description": "Distance from the bottom edge of the input video to the bottom edge of the watermark image. May not be set if 'top' is set.",
"format": "double",
"type": "number"
},
"unit": {
"enum": ["PIXELS", "PERCENTS"],
"type": "string"
},
"opacity": {
"description": "Opacity to apply on the watermark image. Valid values are from 0.0 (completely transparent) to 1.0 (not transparent at all)",
"format": "double",
"type": "number"
},
"width": {
"description": "Desired width of the watermark image, the unit of the parameter is specified separately by the parameter 'unit'. If both width and height are set the watermark size is fixed. If only one is set the aspect ratio of the image will be used to rescale it",
"format": "double",
"type": "number"
},
"height": {
"description": "Desired height of the watermark image, the unit of the parameter is specified separately by the parameter 'unit'. If both width and height are set the watermark size is fixed. If only one is set the aspect ratio of the image will be used to rescale it",
"format": "double",
"type": "number"
}
},
"required": ["image"]
}
},
"required": ["properties"]
}
}
},
"crop": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "CropFilter",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"left": {
"description": "Amount of pixels that will be cropped of the input video from the left side. Must be zero or a positive value.",
"type": "integer"
},
"right": {
"description": "Amount of pixels that will be cropped of the input video from the right side. Must be zero or a positive value.",
"type": "integer"
},
"top": {
"description": "Amount of pixels that will be cropped of the input video from the top. Must be zero or a positive value.",
"type": "integer"
},
"bottom": {
"description": "Amount of pixels that will be cropped of the input video from the bottom. Must be zero or a positive value.",
"type": "integer"
},
"unit": {
"enum": ["PIXELS", "PERCENTS"],
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
},
"rotate": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "RotateFilter",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"rotation": {
"description": "Rotation of the video in degrees. A positive value will rotate the video clockwise and a negative one counter clockwise.",
"type": "integer"
}
},
"required": ["rotation"]
}
},
"required": ["properties"]
}
}
},
"deinterlace": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DeinterlaceFilter",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"parity": {
"enum": ["AUTO", "TOP_FIELD_FIRST", "BOTTOM_FIELD_FIRST"],
"type": "string"
},
"mode": {
"enum": [
"FRAME",
"FIELD",
"FRAME_NOSPATIAL",
"FIELD_NOSPATIAL"
],
"type": "string"
},
"frameSelectionMode": {
"enum": ["ALL", "INTERLACED"],
"type": "string"
},
"autoEnable": {
"enum": [
"ALWAYS_ON",
"META_DATA_BASED",
"META_DATA_AND_CONTENT_BASED"
],
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
},
"enhancedDeinterlace": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "EnhancedDeinterlaceFilter",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"parity": {
"enum": ["AUTO", "TOP_FIELD_FIRST", "BOTTOM_FIELD_FIRST"],
"type": "string"
},
"mode": {
"enum": ["FRAME", "FIELD"],
"type": "string"
},
"autoEnable": {
"enum": ["ALWAYS_ON", "META_DATA_BASED"],
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
},
"audioMix": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "AudioMixFilter",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"channelLayout": {
"description": "Channel layout of the audio codec configuration",
"enum": [
"NONE",
"MONO",
"STEREO",
"SURROUND",
"QUAD",
"OCTAGONAL",
"HEXAGONAL",
"STEREO_DOWNMIX",
"2.1",
"2.2",
"3.1",
"4.0",
"4.1",
"5.0",
"5.1",
"5.0_BACK",
"5.1_BACK",
"6.0",
"6.0_FRONT",
"6.1",
"6.1_BACK",
"6.1_FRONT",
"7.0",
"7.0_FRONT",
"7.1",
"7.1_WIDE",
"7.1_WIDE_BACK"
],
"type": "string"
},
"audioMixChannels": {
"description": "List of mixed channels that matches the channel layout",
"items": {
"type": "object",
"title": "AudioMixChannel",
"properties": {
"channelNumber": {
"description": "Channel number of this mix (starting with 0)",
"type": "integer"
},
"sourceChannels": {
"description": "List of source channels to be mixed",
"items": {
"type": "object",
"title": "SourceChannel",
"properties": {
"gain": {
"description": "Gain for this source channel. Default is 1.0.",
"format": "double",
"type": "number"
},
"type": {
"enum": [
"CHANNEL_NUMBER",
"FRONT_LEFT",
"FRONT_RIGHT",
"CENTER",
"LOW_FREQUENCY",
"BACK_LEFT",
"BACK_RIGHT",
"SURROUND_LEFT",
"SURROUND_RIGHT"
],
"type": "string"
},
"channelNumber": {
"description": "Number of this source channel. If type is 'CHANNEL_NUMBER', this must be set.",
"type": "integer"
}
},
"required": ["type"]
},
"type": "array"
}
},
"required": ["channelNumber", "sourceChannels"]
},
"type": "array"
}
},
"required": ["audioMixChannels", "channelLayout"]
}
},
"required": ["properties"]
}
}
},
"denoiseHqdn3d": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DenoiseHqdn3dFilter",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"lumaSpatial": {
"description": "A non-negative floating point number which specifies spatial luma strength. It defaults to 4.0.",
"format": "double",
"type": "number"
},
"chromaSpatial": {
"description": "A non-negative floating point number which specifies spatial chroma strength. It defaults to 3.0*luma_spatial/4.0.",
"format": "double",
"type": "number"
},
"lumaTmp": {
"description": "A floating point number which specifies luma temporal strength. It defaults to 6.0*luma_spatial/4.0.",
"format": "double",
"type": "number"
},
"chromaTmp": {
"description": "A floating point number which specifies chroma temporal strength. It defaults to luma_tmp*chroma_spatial/luma_spatial.",
"format": "double",
"type": "number"
}
}
}
},
"required": ["properties"]
}
}
},
"ebuR128SinglePass": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "EbuR128SinglePassFilter",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"integratedLoudness": {
"description": "Set the targeted integrated loudness value. Range is from '-70.0' to '-5.0'. Default value is '-24.0'. Value is measured in LUFS (Loudness Units, referenced to Full Scale)",
"format": "double",
"type": "number"
},
"loudnessRange": {
"description": "Set the targeted loudness range target. Range is from '1.0' to '20.0'. Default value is '7.0'. Loudness range measures the variation of loudness on a macroscopic time-scale in units of LU (Loudness Units). For programmes shorter than 1 minute, the use of the measure Loudness Range is not recommended due to too few data points (Loudness Range is based on the Short-term-Loudness values (3-seconds-window)).",
"format": "double",
"type": "number"
},
"maximumTruePeakLevel": {
"description": "Set maximum true peak. Range is from '-9.0' to '0.0'. Default value is '-2.0'. Values are measured in dBTP (db True Peak)",
"format": "double",
"type": "number"
}
}
}
},
"required": ["properties"]
}
}
},
"text": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "TextFilter",
"description": "Only one of those properties may be set: fontSize, fontSizeExpression.",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"font": {
"enum": [
"DEJAVUSANS",
"DEJAVUSERIF",
"DEJAVUSANSMONO",
"ROBOTOMONO",
"ROBOTOBLACK",
"ROBOTO",
"ROBOTOCONDENSED"
],
"type": "string"
},
"box": {
"type": "boolean",
"description": "If set to true a box is drawn around the text using the background color."
},
"boxBorderWidth": {
"description": "The width of the box drawn around the text.",
"type": "integer"
},
"boxColor": {
"description": "The background color to be used for drawing the box.",
"type": "string"
},
"lineSpacing": {
"description": "Line spacing of the border around the box in pixels",
"type": "integer"
},
"borderWidth": {
"description": "Width of the border around the text",
"type": "integer"
},
"fixBounds": {
"type": "boolean",
"description": "If set to true, it will fix text coordinates to avoid clipping if necessary"
},
"fontColor": {
"description": "The color to be used to draw the text",
"type": "string"
},
"fontSize": {
"description": "Font size to be used to draw the text",
"type": "integer"
},
"fontSizeExpression": {
"description": "An expression for the Font size. Either fontSize or fontSizeExpression can be set at the same time. The following variables are valid: main_h, h, H for input height and main_w, w, W for the input_width",
"type": "string"
},
"alpha": {
"description": "If set, alpha blending for the text is applied. Values are valid between 0.0 and 1.0.",
"format": "double",
"type": "number"
},
"shadowColor": {
"description": "Color of the shadow",
"type": "string"
},
"shadowX": {
"description": "X offset of the shadow",
"type": "integer"
},
"shadowY": {
"description": "Y offset of the shadow",
"type": "integer"
},
"timecode": {
"description": "If set, the timecode representation in \"hh:mm:ss[:;.]ff\" format will be applied. Drop-frame timecodes (containing \";\" or \".\") must only be used with video frame rates of 29.97, 30, 59.94 or 60 FPS, according to the SMPTE standard",
"type": "string"
},
"text": {
"description": "String to be drawn",
"type": "string"
},
"x": {
"description": "X position of the text. Also an expression can be used. The following variables are valid: line_h - height of each text line; main_h - input height; main_w - input width; n - number of input frame; text_h - Text height; text_w - Text width",
"type": "string"
},
"y": {
"description": "Y position of the text. Also an expression can be used. The following variables are valid: line_h - height of each text line; main_h - input height; main_w - input width; n - number of input frame; text_h - Text height; text_w - Text width",
"type": "string"
},
"rate": {
"description": "Video frame rate",
"type": "string"
}
},
"required": ["x", "y"]
}
},
"required": ["properties"]
}
}
},
"interlace": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "InterlaceFilter",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"mode": {
"enum": [
"TOP",
"BOTTOM",
"DROP_EVEN",
"DROP_ODD",
"PAD",
"INTERLACE_X2",
"MERGE",
"MERGE_X2"
],
"type": "string"
},
"verticalLowPassFilteringMode": {
"enum": ["DISABLED", "LOW_PASS", "COMPLEX"],
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
},
"unsharp": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "UnsharpFilter",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"lumaMatrixHorizontalSize": {
"description": "Must be an odd integer between 3 and 23",
"type": "integer"
},
"lumaMatrixVerticalSize": {
"description": "Must be an odd integer between 3 and 23",
"type": "integer"
},
"lumaEffectStrength": {
"description": "Negative value: blur, positive value: sharpen, floating point number, valid value range: -1.5 - 1.5",
"format": "double",
"type": "number"
},
"chromaMatrixHorizontalSize": {
"description": "Must be an odd integer between 3 and 23",
"type": "integer"
},
"chromaMatrixVerticalSize": {
"description": "Must be an odd integer between 3 and 23",
"type": "integer"
},
"chromaEffectStrength": {
"description": "Negative value: blur, positive value: sharpen, floating point number, valid value range: -1.5 - 1.5",
"format": "double",
"type": "number"
}
}
}
},
"required": ["properties"]
}
}
},
"scale": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ScaleFilter",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"width": {
"description": "The width of the output frame in pixels. If not set it will be based on the configured height by maintaining the original aspect ratio. If height is also not set, the original source dimensions will be applied.",
"type": "integer"
},
"height": {
"description": "The height of the output frame in pixels. If not set it will be based on the configured width by maintaining the original aspect ratio. If width is also not set, the original source dimensions will be applied.",
"type": "integer"
},
"scalingAlgorithm": {
"enum": [
"FAST_BILINEAR",
"BILINEAR",
"BICUBIC",
"EXPERIMENTAL",
"NEAREST_NEIGHBOR",
"AVERAGING_AREA",
"BICUBIC_LUMA_BILINEAR_CHROMA",
"GAUSS",
"SINC",
"LANCZOS",
"SPLINE"
],
"type": "string"
},
"sampleAspectRatioNumerator": {
"description": "The numerator of the sample aspect ratio (also known as pixel aspect ratio). Must be set if sampleAspectRatioDenominator is set.",
"type": "integer"
},
"sampleAspectRatioDenominator": {
"description": "The denominator of the sample aspect ratio (also known as pixel aspect ratio). Must be set if sampleAspectRatioNumerator is set.",
"type": "integer"
}
}
}
},
"required": ["properties"]
}
}
}
}
},
"encodings": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Encoding",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"type": {
"description": "Type of the encoding",
"enum": ["LIVE", "VOD", "NONE"],
"type": "string"
},
"cloudRegion": {
"enum": [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_US_WEST_1",
"AWS_US_WEST_2",
"AWS_EU_WEST_1",
"AWS_EU_CENTRAL_1",
"AWS_AP_SOUTHEAST_1",
"AWS_AP_SOUTHEAST_2",
"AWS_AP_NORTHEAST_1",
"AWS_AP_NORTHEAST_2",
"AWS_AP_SOUTH_1",
"AWS_SA_EAST_1",
"AWS_EU_WEST_2",
"AWS_EU_WEST_3",
"AWS_CA_CENTRAL_1",
"AWS_EU_NORTH_1",
"GOOGLE_US_CENTRAL_1",
"GOOGLE_US_EAST_1",
"GOOGLE_ASIA_EAST_1",
"GOOGLE_EUROPE_WEST_1",
"GOOGLE_US_WEST_1",
"GOOGLE_ASIA_EAST_2",
"GOOGLE_ASIA_NORTHEAST_1",
"GOOGLE_ASIA_SOUTH_1",
"GOOGLE_ASIA_SOUTHEAST_1",
"GOOGLE_AUSTRALIA_SOUTHEAST_1",
"GOOGLE_EUROPE_NORTH_1",
"GOOGLE_EUROPE_WEST_2",
"GOOGLE_EUROPE_WEST_3",
"GOOGLE_EUROPE_WEST_4",
"GOOGLE_NORTHAMERICA_NORTHEAST_1",
"GOOGLE_SOUTHAMERICA_EAST_1",
"GOOGLE_US_EAST_4",
"GOOGLE_US_WEST_2",
"GOOGLE_ME_CENTRAL_2",
"AZURE_ASIA_EAST",
"AZURE_ASIA_SOUTHEAST",
"AZURE_AUSTRALIA_EAST",
"AZURE_AUSTRALIA_SOUTHEAST",
"AZURE_BRAZIL_SOUTH",
"AZURE_CANADA_CENTRAL",
"AZURE_EUROPE_NORTH",
"AZURE_EUROPE_WEST",
"AZURE_FRANCE_CENTRAL",
"AZURE_GERMANY_WESTCENTRAL",
"AZURE_INDIA_CENTRAL",
"AZURE_INDIA_SOUTH",
"AZURE_JAPAN_EAST",
"AZURE_JAPAN_WEST",
"AZURE_KOREA_CENTRAL",
"AZURE_UAE_NORTH",
"AZURE_US_CENTRAL",
"AZURE_US_EAST",
"AZURE_US_EAST2",
"AZURE_US_WEST",
"AZURE_US_WEST2",
"AZURE_US_SOUTH_CENTRAL",
"AZURE_US_NORTH_CENTRAL",
"AZURE_UK_SOUTH",
"AKAMAI_BR_GRU",
"AKAMAI_FR_PAR",
"AKAMAI_JP_OSA",
"AKAMAI_US_SEA",
"OCI_EU_FRANKFURT_1",
"OCI_US_ASHBURN_1",
"NORTH_AMERICA",
"SOUTH_AMERICA",
"EUROPE",
"AFRICA",
"ASIA",
"AUSTRALIA",
"AWS",
"GOOGLE",
"KUBERNETES",
"EXTERNAL",
"AUTO"
],
"type": "string"
},
"fallbackCloudRegions": {
"description": "Specify a list of regions which are used in case the preferred region is down. Currently there are several restrictions.\n- The region has to be specific or AUTO\n- The region has to be for the same cloud provider as the default one\n- You can only configure at most 3 fallback regions\n",
"items": {
"type": "string",
"title": "CloudRegion"
},
"type": "array"
},
"encoderVersion": {
"description": "Version of the encoder",
"type": "string"
},
"infrastructureId": {
"description": "Define an external infrastructure to run the encoding on. Note If you set this value, the `cloudRegion` must be 'EXTERNAL'.",
"type": "string"
},
"infrastructure": {
"type": "object",
"properties": {
"infrastructureId": {
"description": "Id of a custom infrastructure, e.g., AWS Cloud Connect",
"type": "string"
},
"cloudRegion": {
"enum": [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_US_WEST_1",
"AWS_US_WEST_2",
"AWS_EU_WEST_1",
"AWS_EU_CENTRAL_1",
"AWS_AP_SOUTHEAST_1",
"AWS_AP_SOUTHEAST_2",
"AWS_AP_NORTHEAST_1",
"AWS_AP_NORTHEAST_2",
"AWS_AP_SOUTH_1",
"AWS_SA_EAST_1",
"AWS_EU_WEST_2",
"AWS_EU_WEST_3",
"AWS_CA_CENTRAL_1",
"AWS_EU_NORTH_1",
"GOOGLE_US_CENTRAL_1",
"GOOGLE_US_EAST_1",
"GOOGLE_ASIA_EAST_1",
"GOOGLE_EUROPE_WEST_1",
"GOOGLE_US_WEST_1",
"GOOGLE_ASIA_EAST_2",
"GOOGLE_ASIA_NORTHEAST_1",
"GOOGLE_ASIA_SOUTH_1",
"GOOGLE_ASIA_SOUTHEAST_1",
"GOOGLE_AUSTRALIA_SOUTHEAST_1",
"GOOGLE_EUROPE_NORTH_1",
"GOOGLE_EUROPE_WEST_2",
"GOOGLE_EUROPE_WEST_3",
"GOOGLE_EUROPE_WEST_4",
"GOOGLE_NORTHAMERICA_NORTHEAST_1",
"GOOGLE_SOUTHAMERICA_EAST_1",
"GOOGLE_US_EAST_4",
"GOOGLE_US_WEST_2",
"GOOGLE_ME_CENTRAL_2",
"AZURE_ASIA_EAST",
"AZURE_ASIA_SOUTHEAST",
"AZURE_AUSTRALIA_EAST",
"AZURE_AUSTRALIA_SOUTHEAST",
"AZURE_BRAZIL_SOUTH",
"AZURE_CANADA_CENTRAL",
"AZURE_EUROPE_NORTH",
"AZURE_EUROPE_WEST",
"AZURE_FRANCE_CENTRAL",
"AZURE_GERMANY_WESTCENTRAL",
"AZURE_INDIA_CENTRAL",
"AZURE_INDIA_SOUTH",
"AZURE_JAPAN_EAST",
"AZURE_JAPAN_WEST",
"AZURE_KOREA_CENTRAL",
"AZURE_UAE_NORTH",
"AZURE_US_CENTRAL",
"AZURE_US_EAST",
"AZURE_US_EAST2",
"AZURE_US_WEST",
"AZURE_US_WEST2",
"AZURE_US_SOUTH_CENTRAL",
"AZURE_US_NORTH_CENTRAL",
"AZURE_UK_SOUTH",
"AKAMAI_BR_GRU",
"AKAMAI_FR_PAR",
"AKAMAI_JP_OSA",
"AKAMAI_US_SEA",
"OCI_EU_FRANKFURT_1",
"OCI_US_ASHBURN_1",
"NORTH_AMERICA",
"SOUTH_AMERICA",
"EUROPE",
"AFRICA",
"ASIA",
"AUSTRALIA",
"AWS",
"GOOGLE",
"KUBERNETES",
"EXTERNAL",
"AUTO"
],
"type": "string"
}
}
},
"staticIpId": {
"description": "Specify an ID of a Static IP infrastructure resource this encoding should use. A Static IP cannot be used by multiple encodings at once. The encoding will go to an error state if the Static IP is already in use. This is currently only supported for live encodings.",
"type": "string"
},
"selectedEncodingMode": {
"description": "After the encoding has been started, this will contain the encoding mode that was actually used. Especially useful when `encodingMode` was not set explicitly or set to STANDARD (which translates to one of the other possible values on encoding start).",
"enum": ["STANDARD", "SINGLE_PASS", "TWO_PASS", "THREE_PASS"],
"type": "string"
},
"selectedCloudRegion": {
"description": "After the encoding has been started, this will contain the cloud region that was actually used. This will differ from cloudRegion if cloudRegion was set to an unspecific region (e.g. 'AUTO')",
"enum": [
"AWS_US_EAST_1",
"AWS_US_EAST_2",
"AWS_US_WEST_1",
"AWS_US_WEST_2",
"AWS_EU_WEST_1",
"AWS_EU_CENTRAL_1",
"AWS_AP_SOUTHEAST_1",
"AWS_AP_SOUTHEAST_2",
"AWS_AP_NORTHEAST_1",
"AWS_AP_NORTHEAST_2",
"AWS_AP_SOUTH_1",
"AWS_SA_EAST_1",
"AWS_EU_WEST_2",
"AWS_EU_WEST_3",
"AWS_CA_CENTRAL_1",
"AWS_EU_NORTH_1",
"GOOGLE_US_CENTRAL_1",
"GOOGLE_US_EAST_1",
"GOOGLE_ASIA_EAST_1",
"GOOGLE_EUROPE_WEST_1",
"GOOGLE_US_WEST_1",
"GOOGLE_ASIA_EAST_2",
"GOOGLE_ASIA_NORTHEAST_1",
"GOOGLE_ASIA_SOUTH_1",
"GOOGLE_ASIA_SOUTHEAST_1",
"GOOGLE_AUSTRALIA_SOUTHEAST_1",
"GOOGLE_EUROPE_NORTH_1",
"GOOGLE_EUROPE_WEST_2",
"GOOGLE_EUROPE_WEST_3",
"GOOGLE_EUROPE_WEST_4",
"GOOGLE_NORTHAMERICA_NORTHEAST_1",
"GOOGLE_SOUTHAMERICA_EAST_1",
"GOOGLE_US_EAST_4",
"GOOGLE_US_WEST_2",
"GOOGLE_ME_CENTRAL_2",
"AZURE_ASIA_EAST",
"AZURE_ASIA_SOUTHEAST",
"AZURE_AUSTRALIA_EAST",
"AZURE_AUSTRALIA_SOUTHEAST",
"AZURE_BRAZIL_SOUTH",
"AZURE_CANADA_CENTRAL",
"AZURE_EUROPE_NORTH",
"AZURE_EUROPE_WEST",
"AZURE_FRANCE_CENTRAL",
"AZURE_GERMANY_WESTCENTRAL",
"AZURE_INDIA_CENTRAL",
"AZURE_INDIA_SOUTH",
"AZURE_JAPAN_EAST",
"AZURE_JAPAN_WEST",
"AZURE_KOREA_CENTRAL",
"AZURE_UAE_NORTH",
"AZURE_US_CENTRAL",
"AZURE_US_EAST",
"AZURE_US_EAST2",
"AZURE_US_WEST",
"AZURE_US_WEST2",
"AZURE_US_SOUTH_CENTRAL",
"AZURE_US_NORTH_CENTRAL",
"AZURE_UK_SOUTH",
"AKAMAI_BR_GRU",
"AKAMAI_FR_PAR",
"AKAMAI_JP_OSA",
"AKAMAI_US_SEA",
"OCI_EU_FRANKFURT_1",
"OCI_US_ASHBURN_1",
"NORTH_AMERICA",
"SOUTH_AMERICA",
"EUROPE",
"AFRICA",
"ASIA",
"AUSTRALIA",
"AWS",
"GOOGLE",
"KUBERNETES",
"EXTERNAL",
"AUTO"
],
"type": "string"
},
"status": {
"description": "The current status of the encoding.",
"enum": [
"CREATED",
"QUEUED",
"RUNNING",
"FINISHED",
"ERROR",
"CANCELED",
"TRANSFER_ERROR"
],
"type": "string"
},
"labels": {
"description": "You may pass a list of groups associated with this encoding. This will enable you to group results in the statistics resource",
"items": {
"type": "string"
},
"type": "array"
},
"liveOptionsType": {
"description": "The chosen live option type of the live encoding",
"enum": ["HD"],
"type": "string"
}
}
},
"streams": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Stream",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"inputStreams": {
"description": "Determines the input source(s) for the stream. All video streams of an encoding need to have identical input configurations",
"items": {
"type": "object",
"title": "StreamInput",
"properties": {
"inputId": {
"description": "ID of an Input resource defining the input storage. Required if 'inputStreamId' is not set.",
"type": "string"
},
"inputPath": {
"description": "Path to an input media file. Required if 'inputStreamId' is not set.",
"type": "string"
},
"selectionMode": {
"description": "Specifies the strategy for selecting a stream from the input file. Must not be set when 'inputStreamId' is set.",
"enum": [
"AUTO",
"POSITION_ABSOLUTE",
"VIDEO_RELATIVE",
"AUDIO_RELATIVE",
"SUBTITLE_RELATIVE"
],
"type": "string"
},
"position": {
"description": "Position of the stream to be selected from the input file (zero-based). Must not be set in combination with selectionMode 'AUTO', defaults to 0 for any other selectionMode.",
"minimum": 0,
"type": "integer"
},
"inputStreamId": {
"description": "Set this property instead of all others to reference an InputStream resource (e.g. an Ingest-, Trimming- or ConcatenationInputStream)",
"type": "string"
},
"analysisDetails": {
"type": "object",
"description": "Input analysis details\n\nThis property is populated after the encoding has finished\n",
"properties": {
"tags": {
"type": "object",
"description": "Additional metadata saved in the input file"
}
}
}
}
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"createQualityMetaData": {
"type": "boolean",
"description": "Set true to create quality metadata for this stream"
},
"codecConfigId": {
"description": "Id of the codec configuration",
"type": "string"
},
"conditions": {
"type": "object",
"description": "Defines a condition that is evaluated against the input of the Stream. If the condition is not fulfilled, the Stream will be ignored during the encoding process. The 'streamConditionMode' of a Muxing allows to control how ignored Streams affect the Muxing. When retrieving the resource after the analysis step of the encoding has finished, 'ignoredBy' will indicate if and why it has been ignored. See [Stream Conditions](https://bitmovin.com/docs/encoding/articles/stream-conditions) for more information"
},
"mode": {
"description": "Mode of the stream",
"enum": [
"STANDARD",
"PER_TITLE_TEMPLATE",
"PER_TITLE_TEMPLATE_FIXED_RESOLUTION",
"PER_TITLE_TEMPLATE_FIXED_RESOLUTION_AND_BITRATE",
"PER_TITLE_RESULT"
],
"type": "string"
},
"selectedEncodingMode": {
"description": "The encoding mode that was used for this stream. This is derived from `encodingMode`, which can be specified in the codec configuration or in the encoding start request. Note that all streams of an encoding need to use the same encoding mode. This will therefore always match `selectedEncodingMode` of the related Encoding resource. Especially useful when `encodingMode` was not set explicitly or set to STANDARD (which translates to one of the other possible values on encoding start).",
"enum": [
"STANDARD",
"SINGLE_PASS",
"TWO_PASS",
"THREE_PASS"
],
"type": "string"
},
"perTitleSettings": {
"type": "object",
"description": "Settings to configure Per-Title on stream level",
"properties": {
"fixedResolutionAndBitrateSettings": {
"type": "object",
"description": "Settings for PER_TITLE_TEMPLATE_FIXED_RESOLUTION_AND_BITRATE mode",
"properties": {
"minBitrate": {
"description": "The minimum bitrate that will be used for that template.",
"type": "integer"
},
"maxBitrate": {
"description": "The maximum bitrate that will be used for that template.",
"type": "integer"
},
"bitrateSelectionMode": {
"description": "Bitrate selection mode",
"enum": ["OPTIMIZED", "COMPLEXITY_RANGE"],
"type": "string"
},
"lowComplexityBoundaryForMaxBitrate": {
"description": "Low complexity boundary for max bitrate",
"type": "integer"
},
"highComplexityBoundaryForMaxBitrate": {
"description": "High complexity boundary for max bitrate",
"type": "integer"
}
}
}
}
},
"metadata": {
"type": "object",
"properties": {
"language": {
"description": "Language of the media contained in the stream. If the value is not set, then no metadata tag is set for the media stream.",
"type": "string"
}
}
},
"decodingErrorMode": {
"description": "Determines how to react to errors during decoding",
"enum": ["FAIL_ON_ERROR", "DUPLICATE_FRAMES"],
"type": "string"
},
"appliedSettings": {
"type": "object",
"description": "Contains stream properties which may not have been defined in the configuration",
"properties": {
"width": {
"description": "The applied width. Useful if the width in the configuration was undefined",
"type": "integer"
},
"height": {
"description": "The applied height. Useful if the height in the configuration was undefined",
"type": "integer"
}
}
}
},
"required": ["codecConfigId", "inputStreams"]
},
"filters": {
"type": "object",
"properties": {
"properties": {
"items": {
"type": "object",
"title": "StreamFilter",
"properties": {
"id": {
"description": "The id of the filter that should be used in the stream",
"type": "string"
},
"position": {
"description": "Defines the order in which filters are applied. Filters are applied in ascending order.",
"type": "integer"
}
},
"required": ["id", "position"]
},
"type": "array"
}
},
"required": ["properties"]
},
"burnInSubtitles": {
"type": "object",
"properties": {
"dvbsub": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "BurnInSubtitleDvbSub",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"inputStreamId": {
"description": "Id of an IngestInputStream which specifies the stream of the DVB-SUB subtitles",
"type": "string"
}
},
"required": ["inputStreamId"]
}
},
"required": ["properties"]
}
}
},
"srt": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "BurnInSubtitleSrt",
"properties": {
"id": {
"type": "object",
"description": "Id of the burn-in SRT subtitle"
},
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"characterEncoding": {
"description": "Character encoding of the SRT file",
"enum": [
"ANSI_X3.4-1968",
"ANSI_X3.4-1986",
"ARABIC",
"ARMSCII-8",
"ASCII",
"ASMO-708",
"BIG-5",
"BIG-FIVE",
"BIG5",
"BIG5-HKSCS",
"BIG5-HKSCS:1999",
"BIG5-HKSCS:2001",
"BIG5-HKSCS:2004",
"BIG5-HKSCS:2008",
"BIG5HKSCS",
"BIGFIVE",
"C99",
"CHAR",
"CHINESE",
"CN",
"CN-BIG5",
"CN-GB",
"CN-GB-ISOIR165",
"CP1131",
"CP1133",
"CP1250",
"CP1251",
"CP1252",
"CP1253",
"CP1254",
"CP1255",
"CP1256",
"CP1257",
"CP1258",
"CP1361",
"CP154",
"CP367",
"CP819",
"CP850",
"CP862",
"CP866",
"CP874",
"CP932",
"CP936",
"CP949",
"CP950",
"CSASCII",
"CSBIG5",
"CSEUCKR",
"CSEUCPKDFMTJAPANESE",
"CSEUCTW",
"CSGB2312",
"CSHALFWIDTHKATAKANA",
"CSHPROMAN8",
"CSIBM866",
"CSISO14JISC6220RO",
"CSISO159JISX02121990",
"CSISO2022CN",
"CSISO2022JP",
"CSISO2022JP2",
"CSISO2022KR",
"CSISO57GB1988",
"CSISO58GB231280",
"CSISO87JISX0208",
"CSISOLATIN1",
"CSISOLATIN2",
"CSISOLATIN3",
"CSISOLATIN4",
"CSISOLATIN5",
"CSISOLATIN6",
"CSISOLATINARABIC",
"CSISOLATINCYRILLIC",
"CSISOLATINGREEK",
"CSISOLATINHEBREW",
"CSKOI8R",
"CSKSC56011987",
"CSKZ1048",
"CSMACINTOSH",
"CSPC850MULTILINGUAL",
"CSPC862LATINHEBREW",
"CSPTCP154",
"CSSHIFTJIS",
"CSUCS4",
"CSUNICODE",
"CSUNICODE11",
"CSUNICODE11UTF7",
"CSVISCII",
"CYRILLIC",
"CYRILLIC-ASIAN",
"ECMA-114",
"ECMA-118",
"ELOT_928",
"EUC-CN",
"EUC-JP",
"EUC-KR",
"EUC-TW",
"EUCCN",
"EUCJP",
"EUCKR",
"EUCTW",
"EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE",
"GB_1988-80",
"GB_2312-80",
"GB18030",
"GB2312",
"GBK",
"GEORGIAN-ACADEMY",
"GEORGIAN-PS",
"GREEK",
"GREEK8",
"HEBREW",
"HP-ROMAN8",
"HZ",
"HZ-GB-2312",
"IBM-CP1133",
"IBM367",
"IBM819",
"IBM850",
"IBM862",
"IBM866",
"ISO-10646-UCS-2",
"ISO-10646-UCS-4",
"ISO-2022-CN",
"ISO-2022-CN-EXT",
"ISO-2022-JP",
"ISO-2022-JP-1",
"ISO-2022-JP-2",
"ISO-2022-KR",
"ISO-8859-1",
"ISO-8859-10",
"ISO-8859-11",
"ISO-8859-13",
"ISO-8859-14",
"ISO-8859-15",
"ISO-8859-16",
"ISO-8859-2",
"ISO-8859-3",
"ISO-8859-4",
"ISO-8859-5",
"ISO-8859-6",
"ISO-8859-7",
"ISO-8859-8",
"ISO-8859-9",
"ISO-CELTIC",
"ISO-IR-100",
"ISO-IR-101",
"ISO-IR-109",
"ISO-IR-110",
"ISO-IR-126",
"ISO-IR-127",
"ISO-IR-138",
"ISO-IR-14",
"ISO-IR-144",
"ISO-IR-148",
"ISO-IR-149",
"ISO-IR-157",
"ISO-IR-159",
"ISO-IR-165",
"ISO-IR-166",
"ISO-IR-179",
"ISO-IR-199",
"ISO-IR-203",
"ISO-IR-226",
"ISO-IR-57",
"ISO-IR-58",
"ISO-IR-6",
"ISO-IR-87",
"ISO_646.IRV:1991",
"ISO_8859-1:1987",
"ISO_8859-10:1992",
"ISO_8859-14:1998",
"ISO_8859-15:1998",
"ISO_8859-16:2001",
"ISO_8859-2:1987",
"ISO_8859-3:1988",
"ISO_8859-4:1988",
"ISO_8859-5:1988",
"ISO_8859-6:1987",
"ISO_8859-7:1987",
"ISO_8859-7:2003",
"ISO_8859-8:1988",
"ISO_8859-9:1989",
"ISO646-CN",
"ISO646-JP",
"ISO646-US",
"ISO8859-1",
"ISO8859-10",
"ISO8859-11",
"ISO8859-13",
"ISO8859-14",
"ISO8859-15",
"ISO8859-16",
"ISO8859-2",
"ISO8859-3",
"ISO8859-4",
"ISO8859-5",
"ISO8859-6",
"ISO8859-7",
"ISO8859-8",
"ISO8859-9",
"JAVA",
"JIS_C6220-1969-RO",
"JIS_C6226-1983",
"JIS_X0201",
"JIS_X0208",
"JIS_X0208-1983",
"JIS_X0208-1990",
"JIS_X0212",
"JIS_X0212-1990",
"JIS_X0212.1990-0",
"JIS0208",
"JISX0201-1976",
"JOHAB",
"JP",
"KOI8-R",
"KOI8-RU",
"KOI8-T",
"KOI8-U",
"KOREAN",
"KS_C_5601-1987",
"KS_C_5601-1989",
"KSC_5601",
"KZ-1048",
"L1",
"L10",
"L2",
"L3",
"L4",
"L5",
"L6",
"L7",
"L8",
"LATIN-9",
"LATIN1",
"LATIN10",
"LATIN2",
"LATIN3",
"LATIN4",
"LATIN5",
"LATIN6",
"LATIN7",
"LATIN8",
"MAC",
"MACARABIC",
"MACCENTRALEUROPE",
"MACCROATIAN",
"MACCYRILLIC",
"MACGREEK",
"MACHEBREW",
"MACICELAND",
"MACINTOSH",
"MACROMAN",
"MACROMANIA",
"MACTHAI",
"MACTURKISH",
"MACUKRAINE",
"MS-ANSI",
"MS-ARAB",
"MS-CYRL",
"MS-EE",
"MS-GREEK",
"MS-HEBR",
"MS-TURK",
"MS_KANJI",
"MS936",
"MULELAO-1",
"NEXTSTEP",
"PT154",
"PTCP154",
"R8",
"RK1048",
"ROMAN8",
"SHIFT-JIS",
"SJIS",
"STRK1048-2002",
"TCVN",
"TCVN-5712",
"TCVN5712-1",
"TCVN5712-1:1993",
"TIS-620",
"TIS620",
"TIS620-0",
"TIS620.2529-1",
"TIS620.2533-0",
"TIS620.2533-1",
"UCS-2",
"UCS-2-INTERNAL",
"UCS-2-SWAPPED",
"UCS-2BE",
"UCS-2LE",
"UCS-4",
"UCS-4-INTERNAL",
"UCS-4-SWAPPED",
"UCS-4BE",
"UCS-4LE",
"UHC",
"UNICODE-1-1",
"UNICODE-1-1-UTF-7",
"UNICODEBIG",
"UNICODELITTLE",
"US",
"US-ASCII",
"UTF-16",
"UTF-16BE",
"UTF-16LE",
"UTF-32",
"UTF-32BE",
"UTF-32LE",
"UTF-7",
"UTF-8",
"VISCII",
"VISCII1.1-1",
"WCHAR_T",
"WINBALTRIM",
"WINDOWS-1250",
"WINDOWS-1251",
"WINDOWS-1252",
"WINDOWS-1253",
"WINDOWS-1254",
"WINDOWS-1255",
"WINDOWS-1256",
"WINDOWS-1257",
"WINDOWS-1258",
"WINDOWS-874",
"WINDOWS-936",
"X0201",
"X0208",
"X0212"
],
"type": "string"
},
"input": {
"type": "object",
"description": "The input location to get the SRT file from",
"properties": {
"inputId": {
"description": "Id of input",
"type": "string"
},
"inputPath": {
"description": "Path to media file",
"type": "string"
}
},
"required": ["inputId", "inputPath"]
}
},
"required": [
"characterEncoding",
"id",
"input"
]
}
},
"required": ["properties"]
}
}
}
}
},
"watermarking": {
"type": "object",
"properties": {
"nexguardFileMarker": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "NexGuardFileMarker",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"license": {
"description": "Use the base64 license string that Nagra provides you.",
"type": "string"
},
"watermarkType": {
"description": "The type of watermarking to be used: * `OTT` - A/B watermarking (for video streams only) * `DUPLICATED` - Stream duplication to match A/B video streams in CDN delivery (for audio streams only)\n",
"enum": ["OTT", "DUPLICATED"],
"type": "string"
},
"payload": {
"description": "Specify the payload ID that you want to be associated with this output. Valid values vary depending on your Nagra NexGuard forensic watermarking workflow. For PreRelease Content (NGPR), specify an integer from 1 through 4,194,303. You must generate a unique ID for each asset you watermark, and keep a record of th ID. Neither Nagra nor Bitmovin keep track of this for you.",
"type": "integer"
},
"preset": {
"description": "Enter one of the watermarking preset strings that Nagra provides you.",
"type": "string"
},
"strength": {
"description": "Optional. Ignore this setting unless Nagra support directs you to specify a value. When you don't specify a value here, the Nagra NexGuard library uses its default value.",
"enum": [
"LIGHTEST",
"LIGHTER",
"DEFAULT",
"STRONGER",
"STRONGEST"
],
"type": "string"
}
},
"required": ["license"]
}
},
"required": ["properties"]
}
}
}
}
},
"decodingConfigurations": {
"type": "object",
"properties": {
"watermarking": {
"type": "object",
"properties": {
"audio": {
"type": "object",
"properties": {
"nielsen": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DecodingConfigurationWatermarkingAudioNielsen",
"properties": {
"id": {
"type": "object",
"description": "ID of the Nielsen Audio Watermarking decoding-configuration"
},
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"distributorId": {
"type": "object",
"description": "The Distributor ID identifies the end-user of the transcoder, i.e. the final distributor of the media content. It is recommended to set this value to DNS domain name of your company or entity. The Distributor ID string should be less than or equal to 48 characters. If a longer value is provided it will be truncated at the 48th character."
}
},
"required": ["distributorId", "id"]
}
},
"required": ["properties"]
}
}
}
}
}
}
}
}
},
"captions": {
"type": "object",
"properties": {
"cea": {
"type": "object",
"properties": {
"scc": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SccCaption",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"input": {
"type": "object",
"description": "Input location of the SCC file",
"properties": {
"inputId": {
"description": "Id of input",
"type": "string"
},
"inputPath": {
"description": "Path to media file",
"type": "string"
}
},
"required": ["inputId", "inputPath"]
},
"smpteTimecodeFlavor": {
"description": "Flavor of SMPTE timecodes in the SCC file (drop-frame or non-drop)",
"enum": [
"AUTO",
"NON_DROP_FRAME",
"DROP_FRAME"
],
"type": "string"
}
},
"required": ["input"]
}
},
"required": ["properties"]
}
}
},
"srt": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SrtToCea608708Caption",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"input": {
"type": "object",
"description": "Input location of the SRT file",
"properties": {
"inputId": {
"description": "Id of input",
"type": "string"
},
"inputPath": {
"description": "Path to media file",
"type": "string"
}
},
"required": ["inputId", "inputPath"]
},
"ccChannel": {
"description": "The channel number to embed the CEA subtitles in",
"enum": ["CC1", "CC3"],
"type": "string"
},
"characterEncoding": {
"description": "Character encoding of the input SRT file",
"enum": [
"ANSI_X3.4-1968",
"ANSI_X3.4-1986",
"ARABIC",
"ARMSCII-8",
"ASCII",
"ASMO-708",
"BIG-5",
"BIG-FIVE",
"BIG5",
"BIG5-HKSCS",
"BIG5-HKSCS:1999",
"BIG5-HKSCS:2001",
"BIG5-HKSCS:2004",
"BIG5-HKSCS:2008",
"BIG5HKSCS",
"BIGFIVE",
"C99",
"CHAR",
"CHINESE",
"CN",
"CN-BIG5",
"CN-GB",
"CN-GB-ISOIR165",
"CP1131",
"CP1133",
"CP1250",
"CP1251",
"CP1252",
"CP1253",
"CP1254",
"CP1255",
"CP1256",
"CP1257",
"CP1258",
"CP1361",
"CP154",
"CP367",
"CP819",
"CP850",
"CP862",
"CP866",
"CP874",
"CP932",
"CP936",
"CP949",
"CP950",
"CSASCII",
"CSBIG5",
"CSEUCKR",
"CSEUCPKDFMTJAPANESE",
"CSEUCTW",
"CSGB2312",
"CSHALFWIDTHKATAKANA",
"CSHPROMAN8",
"CSIBM866",
"CSISO14JISC6220RO",
"CSISO159JISX02121990",
"CSISO2022CN",
"CSISO2022JP",
"CSISO2022JP2",
"CSISO2022KR",
"CSISO57GB1988",
"CSISO58GB231280",
"CSISO87JISX0208",
"CSISOLATIN1",
"CSISOLATIN2",
"CSISOLATIN3",
"CSISOLATIN4",
"CSISOLATIN5",
"CSISOLATIN6",
"CSISOLATINARABIC",
"CSISOLATINCYRILLIC",
"CSISOLATINGREEK",
"CSISOLATINHEBREW",
"CSKOI8R",
"CSKSC56011987",
"CSKZ1048",
"CSMACINTOSH",
"CSPC850MULTILINGUAL",
"CSPC862LATINHEBREW",
"CSPTCP154",
"CSSHIFTJIS",
"CSUCS4",
"CSUNICODE",
"CSUNICODE11",
"CSUNICODE11UTF7",
"CSVISCII",
"CYRILLIC",
"CYRILLIC-ASIAN",
"ECMA-114",
"ECMA-118",
"ELOT_928",
"EUC-CN",
"EUC-JP",
"EUC-KR",
"EUC-TW",
"EUCCN",
"EUCJP",
"EUCKR",
"EUCTW",
"EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE",
"GB_1988-80",
"GB_2312-80",
"GB18030",
"GB2312",
"GBK",
"GEORGIAN-ACADEMY",
"GEORGIAN-PS",
"GREEK",
"GREEK8",
"HEBREW",
"HP-ROMAN8",
"HZ",
"HZ-GB-2312",
"IBM-CP1133",
"IBM367",
"IBM819",
"IBM850",
"IBM862",
"IBM866",
"ISO-10646-UCS-2",
"ISO-10646-UCS-4",
"ISO-2022-CN",
"ISO-2022-CN-EXT",
"ISO-2022-JP",
"ISO-2022-JP-1",
"ISO-2022-JP-2",
"ISO-2022-KR",
"ISO-8859-1",
"ISO-8859-10",
"ISO-8859-11",
"ISO-8859-13",
"ISO-8859-14",
"ISO-8859-15",
"ISO-8859-16",
"ISO-8859-2",
"ISO-8859-3",
"ISO-8859-4",
"ISO-8859-5",
"ISO-8859-6",
"ISO-8859-7",
"ISO-8859-8",
"ISO-8859-9",
"ISO-CELTIC",
"ISO-IR-100",
"ISO-IR-101",
"ISO-IR-109",
"ISO-IR-110",
"ISO-IR-126",
"ISO-IR-127",
"ISO-IR-138",
"ISO-IR-14",
"ISO-IR-144",
"ISO-IR-148",
"ISO-IR-149",
"ISO-IR-157",
"ISO-IR-159",
"ISO-IR-165",
"ISO-IR-166",
"ISO-IR-179",
"ISO-IR-199",
"ISO-IR-203",
"ISO-IR-226",
"ISO-IR-57",
"ISO-IR-58",
"ISO-IR-6",
"ISO-IR-87",
"ISO_646.IRV:1991",
"ISO_8859-1:1987",
"ISO_8859-10:1992",
"ISO_8859-14:1998",
"ISO_8859-15:1998",
"ISO_8859-16:2001",
"ISO_8859-2:1987",
"ISO_8859-3:1988",
"ISO_8859-4:1988",
"ISO_8859-5:1988",
"ISO_8859-6:1987",
"ISO_8859-7:1987",
"ISO_8859-7:2003",
"ISO_8859-8:1988",
"ISO_8859-9:1989",
"ISO646-CN",
"ISO646-JP",
"ISO646-US",
"ISO8859-1",
"ISO8859-10",
"ISO8859-11",
"ISO8859-13",
"ISO8859-14",
"ISO8859-15",
"ISO8859-16",
"ISO8859-2",
"ISO8859-3",
"ISO8859-4",
"ISO8859-5",
"ISO8859-6",
"ISO8859-7",
"ISO8859-8",
"ISO8859-9",
"JAVA",
"JIS_C6220-1969-RO",
"JIS_C6226-1983",
"JIS_X0201",
"JIS_X0208",
"JIS_X0208-1983",
"JIS_X0208-1990",
"JIS_X0212",
"JIS_X0212-1990",
"JIS_X0212.1990-0",
"JIS0208",
"JISX0201-1976",
"JOHAB",
"JP",
"KOI8-R",
"KOI8-RU",
"KOI8-T",
"KOI8-U",
"KOREAN",
"KS_C_5601-1987",
"KS_C_5601-1989",
"KSC_5601",
"KZ-1048",
"L1",
"L10",
"L2",
"L3",
"L4",
"L5",
"L6",
"L7",
"L8",
"LATIN-9",
"LATIN1",
"LATIN10",
"LATIN2",
"LATIN3",
"LATIN4",
"LATIN5",
"LATIN6",
"LATIN7",
"LATIN8",
"MAC",
"MACARABIC",
"MACCENTRALEUROPE",
"MACCROATIAN",
"MACCYRILLIC",
"MACGREEK",
"MACHEBREW",
"MACICELAND",
"MACINTOSH",
"MACROMAN",
"MACROMANIA",
"MACTHAI",
"MACTURKISH",
"MACUKRAINE",
"MS-ANSI",
"MS-ARAB",
"MS-CYRL",
"MS-EE",
"MS-GREEK",
"MS-HEBR",
"MS-TURK",
"MS_KANJI",
"MS936",
"MULELAO-1",
"NEXTSTEP",
"PT154",
"PTCP154",
"R8",
"RK1048",
"ROMAN8",
"SHIFT-JIS",
"SJIS",
"STRK1048-2002",
"TCVN",
"TCVN-5712",
"TCVN5712-1",
"TCVN5712-1:1993",
"TIS-620",
"TIS620",
"TIS620-0",
"TIS620.2529-1",
"TIS620.2533-0",
"TIS620.2533-1",
"UCS-2",
"UCS-2-INTERNAL",
"UCS-2-SWAPPED",
"UCS-2BE",
"UCS-2LE",
"UCS-4",
"UCS-4-INTERNAL",
"UCS-4-SWAPPED",
"UCS-4BE",
"UCS-4LE",
"UHC",
"UNICODE-1-1",
"UNICODE-1-1-UTF-7",
"UNICODEBIG",
"UNICODELITTLE",
"US",
"US-ASCII",
"UTF-16",
"UTF-16BE",
"UTF-16LE",
"UTF-32",
"UTF-32BE",
"UTF-32LE",
"UTF-7",
"UTF-8",
"VISCII",
"VISCII1.1-1",
"WCHAR_T",
"WINBALTRIM",
"WINDOWS-1250",
"WINDOWS-1251",
"WINDOWS-1252",
"WINDOWS-1253",
"WINDOWS-1254",
"WINDOWS-1255",
"WINDOWS-1256",
"WINDOWS-1257",
"WINDOWS-1258",
"WINDOWS-874",
"WINDOWS-936",
"X0201",
"X0208",
"X0212"
],
"type": "string"
}
},
"required": [
"ccChannel",
"characterEncoding",
"input"
]
}
},
"required": ["properties"]
}
}
}
}
}
}
},
"bifs": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Bif",
"description": "Either height or width is required. It is also possible to set both properties.",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"height": {
"description": "Height of one thumbnail",
"type": "integer"
},
"width": {
"description": "Width of one thumbnail. Roku recommends a width of 240 for SD and 320 for HD.",
"type": "integer"
},
"distance": {
"description": "Distance in seconds between a screenshot",
"minimum": 0,
"format": "double",
"type": "number"
},
"filename": {
"description": "Filename of the Bif image.",
"type": "string"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"aspectMode": {
"description": "Specifies the aspect mode that is used when both height and width are specified\nOnly supported starting with encoder version `2.85.0`.\n",
"enum": ["PAD", "CROP", "STRETCH"],
"type": "string"
}
},
"required": ["distance", "filename", "outputs"]
}
},
"required": ["properties"]
}
}
},
"hdr": {
"type": "object",
"properties": {
"dolbyVision": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DolbyVisionMetadata",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"profile": {
"description": "Dolby Vision Profile",
"enum": [
"DVHE_04",
"DVHE_05",
"DVHE_07",
"HEV1_08",
"AVC3_09"
],
"type": "string"
},
"metadataSource": {
"description": "Dolby Vision Metadata Source",
"enum": ["INPUT_STREAM", "EMBEDDED"],
"type": "string"
},
"metadataInputStreamId": {
"description": "ID of the Dolby Vision Metadata Ingest Input Stream which provides the XML Metadata file. Required if metadataSource is set to INPUT_STREAM.",
"type": "string"
}
},
"required": ["metadataSource"]
}
},
"required": ["properties"]
}
}
}
}
},
"thumbnails": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Thumbnail",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"height": {
"description": "Height of the thumbnail, either height or width are required fields. If only one is given the encoder will calculate the other way value based on the aspect ratio of the video file. If the encoder version is below 2.83.0 only height is supported and mandatory.\n",
"type": "integer"
},
"width": {
"description": "Width of the thumbnail, either height or width are required fields. If only one is given the encoder will calculate the other way value based on the aspect ratio of the video file. If the encoder version is below 2.83.0 only height is supported\n",
"type": "integer"
},
"pattern": {
"description": " Pattern which describes the thumbnail filenames. For example with thumbnail-%number%.png as pattern and 3 positions: thumbnail-3_0.png, thumbnail-5_0.png and thumbnail-25_5.png. (The number represents the position in the source video in seconds, in the previous example the first filename represents the thumbnail at 3s, the second one at 5s and the third one at 25.5s).",
"type": "string"
},
"interval": {
"description": "The interval in which to create thumbnails. In seconds (E.g. a value of 4 means create a thumbnail every 4 seconds). Mutually exclusive with positions/unit. Has to be equal to or greater than 1.",
"format": "double",
"type": "number"
},
"positions": {
"description": "Position in the unit where the thumbnail should be created from. Mutually exclusive with interval.",
"items": {
"type": "number"
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"unit": {
"description": "Unit of the values in the positions array.",
"enum": ["SECONDS", "PERCENTS"],
"type": "string"
},
"aspectMode": {
"description": "Specifies the aspect mode that is used when both height and width are specified\nOnly supported starting with encoder version `2.85.0`.\n",
"enum": ["PAD", "CROP", "STRETCH"],
"type": "string"
}
},
"required": ["outputs", "pattern"]
}
},
"required": ["properties"]
}
}
},
"sprites": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Sprite",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"height": {
"description": "Height of one thumbnail, either height or width are required fields. If only one is given the encoder will calculate the other way value based on the aspect ratio of the video file. If the encoder version is below 2.83.0 both are required\n",
"type": "integer"
},
"width": {
"description": "Width of one thumbnail, either height or width are required fields. If only one is given the encoder will calculate the other way value based on the aspect ratio of the video file. If the encoder version is below 2.83.0 both are required\n",
"type": "integer"
},
"unit": {
"enum": ["SECONDS", "PERCENTS"],
"type": "string"
},
"distance": {
"description": "Distance in the given unit between a screenshot",
"format": "double",
"type": "number"
},
"spriteName": {
"description": "Name of the sprite image. File extension \".jpg\"/\".jpeg\" or \".png\" is required.",
"type": "string"
},
"filename": {
"description": "Filename of the sprite image. If not set, spriteName will be used, but without an extension.",
"type": "string"
},
"vttName": {
"description": "Filename of the vtt-file. The file-extension \".vtt\" is required.",
"type": "string"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"imagesPerFile": {
"description": "Number of images per file. If more images are generated than specified in this value, multiple sprites will be created. You can use the placeholder '%number%' in the spriteName to specify the naming policy. Either this property must be set or hTiles and vTiles.\n",
"type": "integer"
},
"hTiles": {
"description": "Number of rows of images per file.\n\nHas to be set together with vTiles. If this property and vTiles are set, the imagesPerFile property must not be set.\n\nIt is recommended to use the placeholder '%number%' in the spriteName to allow the generation of multiple sprites.\n\nOnly supported starting with encoder version `2.76.0`.\n",
"minimum": 1,
"type": "integer"
},
"vTiles": {
"description": "Number of columns of images per file.\n\nHas to be set together with hTiles. If this property and hTiles are set, the imagesPerFile property must not be set.\n\nIt is recommended to use the placeholder '%number%' in the spriteName to allow the generation of multiple sprites.\n\nOnly supported starting with encoder version `2.76.0`.\n",
"minimum": 1,
"type": "integer"
},
"jpegConfig": {
"type": "object",
"description": "Additional configuration for JPEG sprite generation.\n\nIf this property is set the extension of the file must be '.jpg.' or '.jpeg'\n\nOnly supported starting with encoder version `2.76.0`\n",
"properties": {
"quality": {
"description": "Quality of the JPEG file in percent. Allowed values 20 - 100",
"minimum": 20,
"maximum": 100,
"type": "integer"
}
},
"required": ["quality"]
},
"creationMode": {
"description": "The creation mode for the thumbnails in the Sprite.\n\nTwo possible creation modes exist: generate thumbnails starting with the beginning of the video or after the first configured period.\n\nWhen using distance=10 and unit=SECONDS and INTERVAL_END, the first image of the sprite is from the second 10 of the video.\nWhen using distance=10 and unit=SECONDS and INTERVAL_START, the first image of the sprite is from the very start of the video, while the second image is from second 10 of the video.\n\nIt is recommended to use 'INTERVAL_START' when using the sprites for trick play so that there is an additional thumbnail from the beginning of the video.\n\nOnly supported starting with encoder version `2.76.0`.\n",
"enum": ["INTERVAL_END", "INTERVAL_START"],
"type": "string"
},
"aspectMode": {
"description": "Specifies the aspect mode that is used when both height and width are specified\nOnly supported starting with encoder version `2.85.0`.\n",
"enum": ["PAD", "CROP", "STRETCH"],
"type": "string"
}
},
"required": ["spriteName"]
}
},
"required": ["properties"]
}
}
}
},
"required": ["properties"]
}
}
},
"inputStreams": {
"type": "object",
"properties": {
"audioMix": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "AudioMixInputStream",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"channelLayout": {
"description": "Channel layout of the audio mix input stream",
"enum": [
"NONE",
"MONO",
"STEREO",
"SURROUND",
"QUAD",
"HEXAGONAL",
"OCTAGONAL",
"STEREO_DOWNMIX",
"2.1",
"2.2",
"3.1",
"4.0",
"4.1",
"5.0",
"5.1",
"5.0_BACK",
"5.1_BACK",
"6.0",
"6.0_FRONT",
"6.1",
"6.1_FRONT",
"6.1_BACK",
"7.0",
"7.0_FRONT",
"7.1",
"7.1_WIDE",
"7.1_WIDE_BACK"
],
"type": "string"
},
"audioMixChannels": {
"items": {
"type": "object",
"title": "AudioMixInputStreamChannel",
"properties": {
"inputStreamId": {
"description": "The id of the input stream that should be used for mixing.",
"type": "string"
},
"outputChannelType": {
"enum": [
"CHANNEL_NUMBER",
"FRONT_LEFT",
"FRONT_RIGHT",
"CENTER",
"LOW_FREQUENCY",
"BACK_LEFT",
"BACK_RIGHT",
"SURROUND_LEFT",
"SURROUND_RIGHT"
],
"type": "string"
},
"outputChannelNumber": {
"description": "Number of this output channel. If type is 'CHANNEL_NUMBER', this must be set.",
"type": "integer"
},
"sourceChannels": {
"description": "List of source channels to be mixed",
"items": {
"type": "object",
"title": "AudioMixInputStreamSourceChannel",
"properties": {
"gain": {
"description": "Gain for this source channel. Default is 1.0.",
"format": "double",
"type": "number"
},
"type": {
"enum": [
"CHANNEL_NUMBER",
"FRONT_LEFT",
"FRONT_RIGHT",
"CENTER",
"LOW_FREQUENCY",
"BACK_LEFT",
"BACK_RIGHT",
"SURROUND_LEFT",
"SURROUND_RIGHT"
],
"type": "string"
},
"channelNumber": {
"description": "Number of this source channel. If type is 'CHANNEL_NUMBER', this must be set.",
"type": "integer"
}
},
"required": ["type"]
},
"type": "array"
}
},
"required": ["outputChannelType"]
},
"type": "array"
}
}
}
},
"required": ["properties"]
}
}
},
"ingest": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "IngestInputStream",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"inputId": {
"description": "ID of an Input resource defining the input storage",
"type": "string"
},
"inputPath": {
"description": "Path to an input media file",
"type": "string"
},
"selectionMode": {
"description": "Specifies the strategy for selecting a stream from the input file",
"enum": [
"AUTO",
"POSITION_ABSOLUTE",
"VIDEO_RELATIVE",
"AUDIO_RELATIVE",
"SUBTITLE_RELATIVE"
],
"type": "string"
},
"position": {
"description": "Position of the stream to be selected from the input file (zero-based). Must not be set in combination with selectionMode 'AUTO', defaults to 0 for any other selectionMode.",
"minimum": 0,
"type": "integer"
}
},
"required": ["inputId", "inputPath"]
}
},
"required": ["properties"]
}
}
},
"sidecar": {
"type": "object",
"properties": {
"dolbyVisionMetadataIngest": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DolbyVisionMetadataIngestInputStream",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"inputId": {
"description": "Id of input",
"type": "string"
},
"inputPath": {
"description": "Path to Dolby Vision Metadata file",
"type": "string"
}
},
"required": ["inputId", "inputPath"]
}
},
"required": ["properties"]
}
}
}
}
},
"concatenation": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ConcatenationInputStream",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"concatenation": {
"description": "Concatenation configuration for the output of this stream",
"items": {
"type": "object",
"title": "ConcatenationInputConfiguration",
"properties": {
"inputStreamId": {
"description": "The ID of the input stream to be concatenated. This can be an ingest input stream or a trimming input stream",
"type": "string"
},
"isMain": {
"type": "boolean",
"description": "Exactly one input stream of a concatenation must have this set to true, which will be used as reference for scaling, aspect ratio, FPS, sample rate, etc. "
},
"position": {
"description": "A unique integer value that determines concatenation order",
"minimum": 0,
"type": "integer"
},
"paddingBefore": {
"type": "object",
"description": "Inserts a padding sequence (black frames and/or silent audio) before the input stream.",
"properties": {
"duration": {
"description": "Duration of the padding sequence, given in the unit specified by the `unit` property. The maximum duration is 300 frames or 10 seconds. If the unit is `FRAMES`, this needs to be an integer value and will be interpreted based on the input frame rate of the main part of the ConcatenationInputStream that is used by your video output stream(s). `FRAMES` is not allowed if the encoding does not contain a video output stream.\n",
"minimum": 0,
"format": "double",
"type": "number"
},
"unit": {
"description": "The unit of the `duration` property",
"enum": ["SECONDS", "FRAMES"],
"type": "string"
}
},
"required": ["duration"]
},
"paddingAfter": {
"type": "object",
"description": "Inserts a padding sequence (black frames and/or silent audio) after the input stream.",
"properties": {
"duration": {
"description": "Duration of the padding sequence, given in the unit specified by the `unit` property. The maximum duration is 300 frames or 10 seconds. If the unit is `FRAMES`, this needs to be an integer value and will be interpreted based on the input frame rate of the main part of the ConcatenationInputStream that is used by your video output stream(s). `FRAMES` is not allowed if the encoding does not contain a video output stream.\n",
"minimum": 0,
"format": "double",
"type": "number"
},
"unit": {
"description": "The unit of the `duration` property",
"enum": ["SECONDS", "FRAMES"],
"type": "string"
}
},
"required": ["duration"]
},
"aspectMode": {
"description": "Specifies the aspect mode that is used when adapting to the main input stream's aspect ratio",
"enum": ["PAD", "CROP", "STRETCH"],
"type": "string"
}
},
"required": ["inputStreamId", "position"]
},
"type": "array"
}
}
}
},
"required": ["properties"]
}
}
},
"file": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "FileInputStream",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"inputId": {
"description": "Id of input",
"type": "string"
},
"inputPath": {
"description": "Path to file",
"type": "string"
},
"fileType": {
"enum": ["TTML", "WEBVTT", "SRT"],
"type": "string"
}
},
"required": ["fileType", "inputId", "inputPath"]
}
},
"required": ["properties"]
}
}
},
"trimming": {
"type": "object",
"properties": {
"timeBased": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "TimeBasedTrimmingInputStream",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"inputStreamId": {
"description": "The id of the ingest input stream that should be trimmed",
"type": "string"
},
"offset": {
"description": "Defines the offset in seconds at which the encoding should start, beginning at 0. The frame indicated by this value will be included in the encoding",
"minimum": 0,
"format": "double",
"type": "number"
},
"duration": {
"description": "Defines how many seconds of the input will be encoded. Not defining or setting it to null indicates that the remaining input (considering offset) will be encoded.",
"minimum": 0,
"format": "double",
"type": "number"
}
}
}
},
"required": ["properties"]
}
}
},
"timecodeTrack": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "TimecodeTrackTrimmingInputStream",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"inputStreamId": {
"description": "The id of the ingest input stream that should be trimmed",
"type": "string"
},
"startTimeCode": {
"description": "Defines the timecode, in SMPTE-12M format, of the frame from which the encoding should start. The frame indicated by this value will be included in the encoding",
"type": "string"
},
"endTimeCode": {
"description": "Defines the timecode, in SMPTE-12M format, of the frame at which the encoding should stop. The frame indicated by this value will be included in the encoding",
"type": "string"
}
},
"required": [
"endTimeCode",
"inputStreamId",
"startTimeCode"
]
}
},
"required": ["properties"]
}
}
},
"h264PictureTiming": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "H264PictureTimingTrimmingInputStream",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"inputStreamId": {
"description": "The id of the ingest input stream that should be trimmed",
"type": "string"
},
"startPicTiming": {
"description": "Defines the H264 SEI picture timing, as specified in ISO/IEC 14496-10:2008, of the frame from which the encoding should start. The frame indicated by this value will be included in the encoding",
"type": "string"
},
"endPicTiming": {
"description": "Defines the H264 SEI picture timing, as specified in ISO/IEC 14496-10:2008, of the frame at which the encoding should stop. The frame indicated by this value will be included in the encoding",
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
}
}
},
"subtitles": {
"type": "object",
"properties": {
"dvbSubtitle": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DvbSubtitleInputStream",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"inputId": {
"description": "ID of an Input resource defining the input storage",
"type": "string"
},
"inputPath": {
"description": "Path to an input media file",
"type": "string"
},
"selectionMode": {
"description": "Specifies the strategy for selecting a stream from the input file. Supported values for VOD encodings: AUTO, POSITION_ABSOLUTE, SUBTITLE_RELATIVE. Supported values for LIVE encodings: POSITION_ABSOLUTE",
"enum": [
"AUTO",
"POSITION_ABSOLUTE",
"VIDEO_RELATIVE",
"AUDIO_RELATIVE",
"SUBTITLE_RELATIVE"
],
"type": "string"
},
"position": {
"description": "Position of the stream to be selected from the input file (zero-based). Must not be set in combination with selectionMode 'AUTO', defaults to 0 for any other selectionMode.",
"minimum": 0,
"type": "integer"
}
}
}
},
"required": ["properties"]
}
}
}
}
},
"captions": {
"type": "object",
"properties": {
"cea608": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Cea608CaptionInputStream",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"inputId": {
"description": "Id of the Input",
"type": "string"
},
"inputPath": {
"description": "Path to media file",
"type": "string"
},
"channel": {
"description": "The channel number of the subtitle on the respective stream position",
"enum": ["CC1", "CC3"],
"type": "string"
}
},
"required": ["channel", "inputId", "inputPath"]
}
},
"required": ["properties"]
}
}
},
"cea708": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Cea708CaptionInputStream",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"inputId": {
"description": "Id of the Input",
"type": "string"
},
"inputPath": {
"description": "Path to media file",
"type": "string"
},
"channel": {
"description": "The channel number of the subtitle on the respective stream position. Must not be smaller than 1",
"type": "integer"
}
},
"required": ["channel", "inputId", "inputPath"]
}
},
"required": ["properties"]
}
}
}
}
},
"dolbyAtmos": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DolbyAtmosIngestInputStream",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"inputId": {
"description": "Id of input",
"type": "string"
},
"inputPath": {
"description": "Path to the Dolby Atmos input file",
"type": "string"
},
"inputFormat": {
"description": "Input file format of the Dolby Atmos input file. Set it to DAMF if the given input file is a Dolby Atmos Master File (.atmos). Set it to ADM if the given input file is an Audio Definition Model Broadcast Wave Format file (.wav)",
"enum": ["DAMF", "ADM"],
"type": "string"
}
},
"required": ["inputFormat", "inputId", "inputPath"]
}
},
"required": ["properties"]
}
}
},
"dolbyVision": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DolbyVisionInputStream",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"inputId": {
"description": "Id of input",
"type": "string"
},
"videoInputPath": {
"description": "Path to Dolby Vision input video file.",
"type": "string"
},
"metadataInputPath": {
"description": "Path to Dolby Vision Metadata file. This field is required when the metadata is not embedded in the video input file.",
"type": "string"
}
},
"required": ["inputId", "videoInputPath"]
}
},
"required": ["properties"]
}
}
}
}
},
"live": {
"type": "object",
"properties": {
"insertableContent": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "InsertableContent",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"inputs": {
"description": "Either a list of movie files to be inserted in the live stream or a single image file. The movie files must have a video stream at stream position 0, which matches the codec, resolution and framerate of the livestream. The number of audio streams must also be the same and they have to match the sample format, number of channels and sample rate of the audio streams of the livestream. Supported image formats are: `.Y.U.V`, `Alias PIX`, `animated GIF`, `APNG`, `BMP`, `DPX`, `FITS`, `JPEG`, `JPEG 2000`, `JPEG-LS`, `PAM`, `PBM`, `PCX`, `PGM`, `PGMYUV`, `PNG`, `PPM`, `SGI`, `Sun Rasterfile`, `TIFF`, `Truevision Targa`, `WebP`, `XBM`, `XFace`, `XPM`, `XWD`",
"items": {
"type": "object",
"title": "InsertableContentInput",
"properties": {
"inputId": {
"description": "Id of the input hosting the video file",
"type": "string"
},
"inputPath": {
"description": "Path to the file on the input",
"type": "string"
},
"description": {
"description": "Description of this input",
"type": "string"
}
},
"required": ["inputId", "inputPath"]
},
"type": "array"
},
"status": {
"description": "Status of the insertable content.",
"enum": [
"CREATED",
"DOWNLOADING",
"READY",
"ERROR"
],
"type": "string"
}
}
},
"schedule": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ScheduledInsertableContent",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"contentId": {
"description": "Id of the insertable content to play instead of the live stream",
"type": "string"
},
"runAt": {
"type": "object",
"description": "Time to play the content in UTC: YYYY-MM-DDThh:mm:ssZ, if this property is not set the content will be played as soon as possible."
},
"durationInSeconds": {
"description": "Duration for how long to play the content. Cut off if shorter, loop if longer than actual duration. This property is required if the insertable content is an image.",
"format": "double",
"type": "number"
},
"status": {
"description": "Status of the scheduled insertable content.",
"enum": [
"CREATED",
"SCHEDULED",
"TO_BE_DESCHEDULED",
"DESCHEDULED",
"ERROR"
],
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
}
},
"required": ["properties"]
}
}
},
"scte35Cue": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Scte35Cue",
"properties": {
"cueDuration": {
"description": "Cue out duration in seconds.",
"format": "double",
"type": "number"
},
"manifestIds": {
"description": "The ids of the manifests to update. If this property is not set, all the manifests tied to the encoding are updated.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": ["cueDuration"]
}
},
"required": ["properties"]
}
}
},
"resetLiveManifestTimeshift": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ResetLiveManifestTimeShift",
"properties": {
"residualPeriodInSeconds": {
"description": "Determines how many seconds will be left in the manifest after segments are removed.\nIf this is not set, all but one segment will be removed.\n",
"format": "double",
"type": "number"
},
"offsetInSeconds": {
"description": "Offset in seconds from the start of the live event, defining the point from which all segments within that duration will be removed from the given manifests.\nE.g.: The segment length is 2 seconds and a timeshift of 120 seconds (2 minutes) is configured. \nThe manifest contains 60 segments with the last segment number being 80 (`segment_80.ts`). \nThis means the manifest contains `segment_20.ts` to `segment_80.ts` (timeshift of 2 minutes equals 60 segments in manifest)\nIf you set `offsetInSeconds` to `120`, all segments below segment number 60 (`segment_60.ts`) will be removed. (`targetSegmentNumber = offsetInSeconds / segmentLength`)\nThe manifests will then contain `segment_60.ts` to `segment_80.ts`\n*Note:* Only `offsetInSeconds` or `residualPeriodInSeconds` can be set.\n",
"format": "double",
"type": "number"
},
"manifestIds": {
"description": "The ids of the manifests to update. If this property is not set, all manifests tied to the encoding are updated.",
"items": {
"type": "string"
},
"type": "array"
},
"shiftProgressiveMuxingStartPosition": {
"type": "boolean",
"description": "If set to true, the Progressive muxing start position will be shifted to the start of the first remaining segment after the removal. NOTE: This only works for Progressive MP4 muxings."
}
}
}
},
"required": ["properties"]
}
}
},
"start": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "StartLiveEncodingRequest",
"properties": {
"streamKey": {
"description": "Key for the stream. (a-zA-Z, 3-20 characters)",
"type": "string"
},
"hlsManifests": {
"description": "HLS manifests to be generated during the encoding. See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)",
"items": {
"type": "object",
"title": "LiveHlsManifest",
"properties": {
"manifestId": {
"description": "HLS manifest id",
"type": "string"
},
"timeshift": {
"description": "Timeshift in seconds. We recommend to use a timeshift value not greater than 3 hours (10800.0 seconds). Longer values could negatively impact the manifest update frequency.\n",
"format": "double",
"type": "number"
},
"liveEdgeOffset": {
"description": "Live edge offset in seconds",
"format": "double",
"type": "number"
},
"insertProgramDateTime": {
"type": "boolean",
"description": "Specifies if the EXT-X-PROGRAM-DATETIME tag will be included"
},
"programDateTimeSettings": {
"type": "object",
"description": "Configuration for the EXT-X-PROGRAM-DATETIME tag",
"properties": {
"programDateTimeSource": {
"title": "ProgramDateTimeSource",
"description": "Source for the EXT-X-PROGRAM-DATETIME tag",
"enum": ["SYSTEM_CLOCK", "EMBEDDED"],
"type": "string"
}
}
},
"adMarkerSettings": {
"type": "object",
"description": "Configuration for tags related to ad markers (e.g. Scte35)",
"properties": {
"enabledMarkerTypes": {
"description": "Ad marker types that will be inserted. More than one type is possible.\n\n- EXT_X_CUE_OUT_IN: Ad markers will be inserted using `#EXT-X-CUE-OUT` and `#EXT-X-CUE-IN` tags\n- EXT_OATCLS_SCTE35: Ad markers will be inserted using `#EXT-OATCLS-SCTE35` tags. They contain the base64 encoded raw bytes of the original SCTE-35 trigger.\n- EXT_X_SPLICEPOINT_SCTE35: Ad markers will be inserted using `#EXT-X-SPLICEPOINT-SCTE35` tags. They contain the base64 encoded raw bytes of the original SCTE-35 trigger.\n- EXT_X_DATERANGE: Ad markers will be inserted using `#EXT-X-DATERANGE` tags. They contain the ID, start timestamp and hex encoded raw bytes of the original SCTE-35 trigger.\n- EXT_X_SCTE35: Ad markers will be inserted using `#EXT-X-SCTE35` tags. They contain the base64 encoded raw bytes of the original SCTE-35 trigger.\n",
"items": {
"type": "string",
"title": "HlsManifestAdMarkerType"
},
"type": "array"
}
}
}
},
"required": ["manifestId"]
},
"type": "array"
},
"dashManifests": {
"description": "DASH manifests to be generated during the encoding. See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)",
"items": {
"type": "object",
"title": "LiveDashManifest",
"properties": {
"manifestId": {
"description": "Dash manifest id",
"type": "string"
},
"timeshift": {
"description": "Timeshift in seconds",
"format": "double",
"type": "number"
},
"liveEdgeOffset": {
"description": "Live edge offset in seconds",
"format": "double",
"type": "number"
},
"suggestedPresentationDelay": {
"description": "The suggestedPresentationDelay to be set in the DASH manifest. If nothing is set, no value will be set.",
"format": "double",
"type": "number"
},
"minimumUpdatePeriod": {
"description": "The minimumUpdatePeriod to be set in the DASH manifest. If nothing is set, the segment duration will be set.",
"format": "double",
"type": "number"
},
"availabilityStartTimeMode": {
"description": "The mode to trigger the availabilityStartTime initialization.",
"enum": [
"ON_FIRST_SEGMENT",
"ON_STREAM_INGEST"
],
"type": "string"
}
},
"required": ["manifestId"]
},
"type": "array"
},
"liveEncodingMode": {
"description": "The pass mode of the encoding. Must only be set when `encodingMode` is not set on any codec configuration used by this encoding.",
"enum": [
"STANDARD",
"SINGLE_PASS",
"TWO_PASS",
"THREE_PASS"
],
"type": "string"
},
"reuploadSettings": {
"type": "object",
"description": "Reupload specific files during a live encoding. This can be helpful if an automatic life cycle policy is enabled on the output storage",
"properties": {
"dashManifestInterval": {
"description": "Interval in seconds to reupload the DASH manifest. Valid values are either `null` to never reupload the dash manifest or at least `30`.",
"minimum": 30,
"format": "double",
"type": "number"
},
"hlsManifestInterval": {
"description": "Interval in seconds to reupload the HLS master file. Valid values are either `0` to never reupload the hls manifest or at least `30`. This is currently not used, as the master file will always be uploaded when one of the playlist files has changed.",
"format": "double",
"type": "number"
},
"muxingInitFileInterval": {
"description": "The interval in seconds to reupload the init file for segmented muxings, e.g. fMP4, WebM. Valid values are either `null` to never reupload the init file for segmented muxings or at least `30`.",
"minimum": 30,
"format": "double",
"type": "number"
}
}
},
"manifestGenerator": {
"description": "Major version of the manifest generator to be used for manifests referenced in this request (by properties dashManifests, dashManifests). `V2` is available for encoder versions 2.70.0 and above and is the recommended option. The default value depends on the sign-up date of your organization. See [documentation](https://developer.bitmovin.com/encoding/docs/manifest-generator-v2) page for a detailed explanation.\n",
"enum": ["LEGACY", "V2"],
"type": "string"
},
"autoRestartConfiguration": {
"type": "object",
"description": "Configuration for auto restarting the live encoding",
"properties": {
"segmentsWrittenTimeout": {
"description": "If no segments were generated for the given number of seconds, a restart is triggered. Minimum: 30.0",
"minimum": 30,
"format": "double",
"type": "number"
},
"bytesWrittenTimeout": {
"description": "If no data was written for the given number of seconds, a restart is triggered. Minimum: 30.0",
"minimum": 30,
"format": "double",
"type": "number"
},
"framesWrittenTimeout": {
"description": "If no frames were generated for the given number of seconds, a restart is triggered. Minimum: 30.0",
"minimum": 30,
"format": "double",
"type": "number"
},
"hlsManifestsUpdateTimeout": {
"description": "If HLS manifests were not updated for the given number of seconds, a restart is triggered. Minimum: 30.0",
"minimum": 30,
"format": "double",
"type": "number"
},
"dashManifestsUpdateTimeout": {
"description": "If DASH manifests were not updated for the given number of seconds, a restart is triggered. Minimum: 30.0",
"minimum": 30,
"format": "double",
"type": "number"
},
"scheduleExpression": {
"description": "Defines a schedule for restarts using the unix crontab syntax. This example would trigger a restart every monday at 05:30 (AM)",
"type": "string"
},
"restartOnEncoderError": {
"type": "boolean",
"description": "Defines if the encoding should be restarted in case of an error during encoding."
}
}
},
"autoShutdownConfiguration": {
"type": "object",
"description": "Configuration for auto shutdown of the live encoding",
"properties": {
"bytesReadTimeoutSeconds": {
"description": "Automatically shutdown the live stream if there is no input anymore for a predefined number of seconds.",
"minimum": 30,
"type": "integer"
},
"streamTimeoutMinutes": {
"description": "Automatically shutdown the live stream after a predefined runtime in minutes.",
"minimum": 5,
"type": "integer"
}
}
}
},
"required": ["streamKey"]
}
},
"required": ["properties"]
},
"hd": {
"type": "object",
"properties": {
"start": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "StartLiveChannelEncodingRequest",
"properties": {
"streamKey": {
"description": "Key for the stream. (a-zA-Z, 3-20 characters)",
"type": "string"
},
"hlsManifests": {
"description": "HLS manifests to be generated during the encoding. See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)",
"items": {
"type": "object",
"title": "LiveHlsManifest",
"properties": {
"manifestId": {
"description": "HLS manifest id",
"type": "string"
},
"timeshift": {
"description": "Timeshift in seconds. We recommend to use a timeshift value not greater than 3 hours (10800.0 seconds). Longer values could negatively impact the manifest update frequency.\n",
"format": "double",
"type": "number"
},
"liveEdgeOffset": {
"description": "Live edge offset in seconds",
"format": "double",
"type": "number"
},
"insertProgramDateTime": {
"type": "boolean",
"description": "Specifies if the EXT-X-PROGRAM-DATETIME tag will be included"
},
"programDateTimeSettings": {
"type": "object",
"description": "Configuration for the EXT-X-PROGRAM-DATETIME tag",
"properties": {
"programDateTimeSource": {
"title": "ProgramDateTimeSource",
"description": "Source for the EXT-X-PROGRAM-DATETIME tag",
"enum": [
"SYSTEM_CLOCK",
"EMBEDDED"
],
"type": "string"
}
}
},
"adMarkerSettings": {
"type": "object",
"description": "Configuration for tags related to ad markers (e.g. Scte35)",
"properties": {
"enabledMarkerTypes": {
"description": "Ad marker types that will be inserted. More than one type is possible.\n\n- EXT_X_CUE_OUT_IN: Ad markers will be inserted using `#EXT-X-CUE-OUT` and `#EXT-X-CUE-IN` tags\n- EXT_OATCLS_SCTE35: Ad markers will be inserted using `#EXT-OATCLS-SCTE35` tags. They contain the base64 encoded raw bytes of the original SCTE-35 trigger.\n- EXT_X_SPLICEPOINT_SCTE35: Ad markers will be inserted using `#EXT-X-SPLICEPOINT-SCTE35` tags. They contain the base64 encoded raw bytes of the original SCTE-35 trigger.\n- EXT_X_DATERANGE: Ad markers will be inserted using `#EXT-X-DATERANGE` tags. They contain the ID, start timestamp and hex encoded raw bytes of the original SCTE-35 trigger.\n- EXT_X_SCTE35: Ad markers will be inserted using `#EXT-X-SCTE35` tags. They contain the base64 encoded raw bytes of the original SCTE-35 trigger.\n",
"items": {
"type": "string",
"title": "HlsManifestAdMarkerType"
},
"type": "array"
}
}
}
},
"required": ["manifestId"]
},
"type": "array"
},
"dashManifests": {
"description": "DASH manifests to be generated during the encoding. See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)",
"items": {
"type": "object",
"title": "LiveDashManifest",
"properties": {
"manifestId": {
"description": "Dash manifest id",
"type": "string"
},
"timeshift": {
"description": "Timeshift in seconds",
"format": "double",
"type": "number"
},
"liveEdgeOffset": {
"description": "Live edge offset in seconds",
"format": "double",
"type": "number"
},
"suggestedPresentationDelay": {
"description": "The suggestedPresentationDelay to be set in the DASH manifest. If nothing is set, no value will be set.",
"format": "double",
"type": "number"
},
"minimumUpdatePeriod": {
"description": "The minimumUpdatePeriod to be set in the DASH manifest. If nothing is set, the segment duration will be set.",
"format": "double",
"type": "number"
},
"availabilityStartTimeMode": {
"description": "The mode to trigger the availabilityStartTime initialization.",
"enum": [
"ON_FIRST_SEGMENT",
"ON_STREAM_INGEST"
],
"type": "string"
}
},
"required": ["manifestId"]
},
"type": "array"
},
"liveEncodingMode": {
"description": "The pass mode of the encoding. Must only be set when `encodingMode` is not set on any codec configuration used by this encoding.",
"enum": [
"STANDARD",
"SINGLE_PASS",
"TWO_PASS",
"THREE_PASS"
],
"type": "string"
},
"reuploadSettings": {
"type": "object",
"description": "Reupload specific files during a live encoding. This can be helpful if an automatic life cycle policy is enabled on the output storage",
"properties": {
"dashManifestInterval": {
"description": "Interval in seconds to reupload the DASH manifest. Valid values are either `null` to never reupload the dash manifest or at least `30`.",
"minimum": 30,
"format": "double",
"type": "number"
},
"hlsManifestInterval": {
"description": "Interval in seconds to reupload the HLS master file. Valid values are either `0` to never reupload the hls manifest or at least `30`. This is currently not used, as the master file will always be uploaded when one of the playlist files has changed.",
"format": "double",
"type": "number"
},
"muxingInitFileInterval": {
"description": "The interval in seconds to reupload the init file for segmented muxings, e.g. fMP4, WebM. Valid values are either `null` to never reupload the init file for segmented muxings or at least `30`.",
"minimum": 30,
"format": "double",
"type": "number"
}
}
},
"manifestGenerator": {
"description": "Major version of the manifest generator to be used for manifests referenced in this request (by properties dashManifests, dashManifests). `V2` is available for encoder versions 2.70.0 and above and is the recommended option. The default value depends on the sign-up date of your organization. See [documentation](https://developer.bitmovin.com/encoding/docs/manifest-generator-v2) page for a detailed explanation.\n",
"enum": ["LEGACY", "V2"],
"type": "string"
},
"autoRestartConfiguration": {
"type": "object",
"description": "Configuration for auto restarting the live encoding",
"properties": {
"segmentsWrittenTimeout": {
"description": "If no segments were generated for the given number of seconds, a restart is triggered. Minimum: 30.0",
"minimum": 30,
"format": "double",
"type": "number"
},
"bytesWrittenTimeout": {
"description": "If no data was written for the given number of seconds, a restart is triggered. Minimum: 30.0",
"minimum": 30,
"format": "double",
"type": "number"
},
"framesWrittenTimeout": {
"description": "If no frames were generated for the given number of seconds, a restart is triggered. Minimum: 30.0",
"minimum": 30,
"format": "double",
"type": "number"
},
"hlsManifestsUpdateTimeout": {
"description": "If HLS manifests were not updated for the given number of seconds, a restart is triggered. Minimum: 30.0",
"minimum": 30,
"format": "double",
"type": "number"
},
"dashManifestsUpdateTimeout": {
"description": "If DASH manifests were not updated for the given number of seconds, a restart is triggered. Minimum: 30.0",
"minimum": 30,
"format": "double",
"type": "number"
},
"scheduleExpression": {
"description": "Defines a schedule for restarts using the unix crontab syntax. This example would trigger a restart every monday at 05:30 (AM)",
"type": "string"
},
"restartOnEncoderError": {
"type": "boolean",
"description": "Defines if the encoding should be restarted in case of an error during encoding."
}
}
},
"autoShutdownConfiguration": {
"type": "object",
"description": "Configuration for auto shutdown of the live encoding",
"properties": {
"bytesReadTimeoutSeconds": {
"description": "Automatically shutdown the live stream if there is no input anymore for a predefined number of seconds.",
"minimum": 30,
"type": "integer"
},
"streamTimeoutMinutes": {
"description": "Automatically shutdown the live stream after a predefined runtime in minutes.",
"minimum": 5,
"type": "integer"
}
}
}
},
"required": ["streamKey"]
}
},
"required": ["properties"]
}
}
}
}
}
}
},
"muxings": {
"type": "object",
"properties": {
"fmp4": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Fmp4Muxing",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"streams": {
"items": {
"type": "object",
"title": "MuxingStream",
"properties": {
"streamId": {
"type": "string"
}
},
"required": ["streamId"]
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"streamConditionsMode": {
"description": "Specifies how to proceed with the Muxing when some of its Streams are ignored (see 'condition' property of the Stream resource). The settings only make a difference for Muxings with more than one Stream. When retrieving the resource after the analysis step of the encoding has finished, 'ignoredBy' will indicate if and why it has been ignored.",
"enum": ["DROP_MUXING", "DROP_STREAM"],
"type": "string"
},
"segmentLength": {
"description": "Length of the fragments in seconds",
"format": "double",
"type": "number"
},
"segmentNaming": {
"description": "Segment naming policy",
"type": "string"
},
"segmentNamingTemplate": {
"description": "Segment naming policy containing one or both of the following placeholders:\n- '{rand_chars:x}', which will be replaced by a random alphanumeric string of length x (default 32)\n on each (re)start of the encoding. The resulting string will be copied to the segmentNaming property.\n Intended to avoid re-use of segment names after restarting a live encoding.\n- '{segment_rand_chars:x}', which will be replaced by a random alphanumeric string of length x (default 32)\n for each different segment. This is intended to avoid guessing segment URLs by replacing segment numbers.\n\nIf segmentNamingTemplate is set, segmentNaming must not be set.\n",
"type": "string"
},
"initSegmentName": {
"description": "Init segment name",
"type": "string"
},
"initSegmentNameTemplate": {
"description": "Segment naming policy containing a placeholder of the format '{rand_chars:x}', which will be replaced by a random alphanumeric string of length x (default 32) on each (re)start of the encoding. The resulting string will be copied to the initSegmentName property. Intended to avoid re-use of segment names after restarting a live encoding. If initSegmentNameTemplate is set, initSegmentName must not be set.",
"type": "string"
},
"writeDurationPerSample": {
"type": "boolean",
"description": "Writes the duration per sample into the sample entry in the Track Fragment Run Box. This could help to fix playback issues on legacy players. Enabling this flag increases the muxing overhead by 4 bytes per sample/frame."
},
"ptsAlignMode": {
"description": "Alignment mode for composition / presentation timestamps (CTS/PTS). Only applies to h.264 and h.265",
"enum": ["ALIGN_ZERO_NEGATIVE_CTO"],
"type": "string"
}
},
"required": ["segmentLength", "streams"]
},
"drm": {
"type": "object",
"properties": {
"widevine": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "WidevineDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte Encryption key, 32 hexadecimal characters",
"type": "string"
},
"kid": {
"description": "16 byte Key id, 32 hexadecimal characters",
"type": "string"
},
"pssh": {
"description": "Base 64 Encoded",
"type": "string"
}
},
"required": [
"key",
"kid",
"pssh",
"outputs"
]
}
},
"required": ["properties"]
}
}
},
"playready": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "PlayReadyDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte encryption key, 32 hexadecimal characters. Either key or keySeed is required",
"type": "string"
},
"keySeed": {
"description": "Key seed to generate key. Either key or keySeed is required",
"type": "string"
},
"laUrl": {
"description": "URL of the license server",
"type": "string"
},
"pssh": {
"description": "Base64 encoded pssh payload",
"type": "string"
},
"method": {
"enum": ["MPEG_CENC", "PIFF_CTR"],
"type": "string"
},
"kid": {
"description": "Key identifier",
"type": "string"
},
"additionalInformation": {
"type": "object",
"properties": {
"wrmHeaderCustomAttributes": {
"description": "Custom attributes that you want to add to the WRM header. This string must be valid xml. Some DRM providers require some information in the custom attributes of the msr:pro tag of the DASH manifest, otherwise the content does not play on certain devices.",
"type": "string"
}
}
}
},
"required": ["outputs"]
}
},
"required": ["properties"]
}
}
},
"primetime": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "PrimeTimeDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte Encryption key, 32 hexadecimal characters",
"type": "string"
},
"kid": {
"description": "16 byte Key id, 32 hexadecimal characters",
"type": "string"
},
"pssh": {
"description": "Base 64 Encoded",
"type": "string"
}
},
"required": [
"key",
"kid",
"pssh",
"outputs"
]
}
},
"required": ["properties"]
}
}
},
"fairplay": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "FairPlayDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte Encryption key, 32 hexadecimal characters",
"type": "string"
},
"iv": {
"description": "16 byte initialization vector",
"type": "string"
},
"uri": {
"description": "Url of the licensing server",
"type": "string"
}
},
"required": ["iv", "key", "outputs"]
}
},
"required": ["properties"]
}
}
},
"marlin": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "MarlinDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte key in hex (32 characters)",
"type": "string"
},
"kid": {
"description": "16 byte key in hex (32 characters)",
"type": "string"
}
},
"required": ["key", "kid", "outputs"]
}
},
"required": ["properties"]
}
}
},
"clearkey": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ClearKeyDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte encryption key, 32 hexadecimal characters",
"type": "string"
},
"kid": {
"description": "16 byte key id",
"type": "string"
}
},
"required": ["key", "kid", "outputs"]
}
},
"required": ["properties"]
}
}
},
"cenc": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "CencDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte encryption key, 32 hexadecimal characters",
"type": "string"
},
"kid": {
"description": "16 byte encryption key id. Required for any other DRM but FairPlay",
"type": "string"
},
"encryptionMode": {
"description": "The encryption method to use. Default is `CTR`",
"enum": ["CTR", "CBC"],
"type": "string"
},
"ivSize": {
"description": "Size of the initialization vector",
"enum": ["8_BYTES", "16_BYTES"],
"type": "string"
},
"enablePiffCompatibility": {
"type": "boolean",
"description": "Enables compatibility with the Protected Interoperable File Format (PIFF) specification"
},
"widevine": {
"type": "object",
"description": "Configuration for Widevine DRM",
"properties": {
"pssh": {
"description": "Base64 encoded pssh payload",
"type": "string"
}
},
"required": ["pssh"]
},
"playReady": {
"type": "object",
"description": "Configuration for PlayReady DRM",
"properties": {
"laUrl": {
"description": "Url of the license server. Either the laUrl or the pssh needs to be provided.",
"type": "string"
},
"pssh": {
"description": "Base64 encoded pssh payload.",
"type": "string"
},
"additionalInformation": {
"type": "object",
"properties": {
"wrmHeaderCustomAttributes": {
"description": "Custom attributes that you want to add to the WRM header. This string must be valid xml. Some DRM providers require some information in the custom attributes of the msr:pro tag of the DASH manifest, otherwise the content does not play on certain devices.",
"type": "string"
}
}
}
}
},
"marlin": {
"type": "object",
"description": "Configuration for Marlin DRM"
},
"fairPlay": {
"type": "object",
"description": "Configuration for FairPlay DRM",
"properties": {
"iv": {
"description": "Initialization vector as hexadecimal string",
"type": "string"
},
"uri": {
"description": "URL of the licensing server. Typically starts with a skd://. Please check with your DRM provider on their required format.",
"type": "string"
}
}
}
},
"required": [
"encryptionMode",
"key",
"outputs"
]
}
},
"required": ["properties"]
}
}
},
"aes": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "AesEncryptionDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte Encryption key, 32 hexadecimal characters",
"type": "string"
},
"iv": {
"description": "16 byte initialization vector",
"type": "string"
},
"keyFileUri": {
"description": "Path relative to the output for referencing in the manifest. If this value is not set the key file will be written automatically to the output folder.",
"type": "string"
},
"method": {
"enum": ["SAMPLE_AES", "AES_128"],
"type": "string"
}
},
"required": ["key", "method", "outputs"]
}
},
"required": ["properties"]
}
}
},
"speke": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SpekeDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"contentId": {
"description": "Unique Identifier of the content, will be generated if not set",
"type": "string"
},
"kid": {
"description": "Optional key identifier, will be generated if not set.\nFor SPEKE DRM Configurations with the same contentId and kid the key provider\nwill provide the same keys.\n",
"type": "string"
},
"iv": {
"description": "16 byte initialization vector represented by a 32-character text string.\nIt is mandatory if systemIds contains AES128 or FairPlay.\n",
"type": "string"
},
"provider": {
"type": "object",
"description": "Key provider configuration for SPEKE",
"properties": {
"url": {
"description": "URL of the endpoint",
"type": "string"
},
"username": {
"description": "Your username for Basic Authentication",
"type": "string"
},
"password": {
"description": "Your password for Basic Authentication",
"type": "string"
},
"apiKey": {
"description": "Your API key for authentication via X-API-Key HTTP Header",
"type": "string"
},
"roleArn": {
"description": "AWS role that will be assumed for the key exchange in case the provider runs on AWS.\n\nDuring the key exchange the role will be assumed to be able to access the key provider.\n\nThis role is to be created in the customer's account and must be granted access to the\nAPI Gateway of the SPEKE server. For Bitmovin to be able to assume this role, the following\nhas to be added to the trust policy of the role:\n\n```\n{\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::630681592166:user/bitmovinCustomerSpekeAccess\"\n },\n \"Action\": \"sts:AssumeRole\",\n \"Condition\": {\n \"StringEquals\": {\n \"sts:ExternalId\": \"{{externalId}}\"\n }\n }\n}\n```\nIt is recommended to also set the {{externalId}} due to security reasons but it can also be\nommitted.\n\nAdditionally the role needs a policy similar to the following to be able to invoke the API gateway:\n```\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"execute-api:Invoke\"\n ],\n \"Resource\": [\n \"arn:aws:execute-api:{{region}}:*:*/*/POST/*\"\n ]\n }\n ]\n}\n```\nwhere `{{region}}` is the region of the API gateway (for example `us-west-2`), the same has\nto be set in the property 'gatewayRegion'. It's also possible to set `{{region}` to `*` to\ngive the role access to all regions.\n",
"type": "string"
},
"externalId": {
"description": "External ID used together with the IAM role identified by `roleArn` to assume access to\nthe SPEKE server on AWS.\n",
"type": "string"
},
"externalIdMode": {
"enum": [
"CUSTOM",
"GLOBAL",
"GENERATED"
],
"type": "string"
},
"gatewayRegion": {
"description": "Describes the region of the AWS API Gateway that is used to access the SPEKE server.\nThis property is mandatory when setting 'roleArn' and has to indicate in which region\nthe AWS API Gateway is setup. This usually corresponds to the `{{region}}` one sets\nin the execute-api policy for the role as described in 'roleArn'.\n",
"type": "string"
}
},
"required": ["url"]
},
"systemIds": {
"description": "DRM system identifier of the content protection scheme. At minimum one is expected.\nNot all systemIds are currently supported, support depends on the muxing type.\n\nRelates to SPEKE implementation. See https://dashif.org/identifiers/content_protection/\n",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"provider",
"systemIds",
"outputs"
]
}
},
"required": ["properties"]
}
}
}
}
},
"id3": {
"type": "object",
"properties": {
"watermarking": {
"type": "object",
"properties": {
"audio": {
"type": "object",
"properties": {
"nielsen": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "WatermarkingAudioNielsenId3Tag",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"watermarkId": {
"description": "ID of the Nielsen Audio Watermarking decoding-configuration",
"type": "string"
}
},
"required": ["watermarkId"]
}
},
"required": ["properties"]
}
}
}
}
}
}
}
}
}
},
"required": ["properties"]
}
}
},
"chunkedText": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ChunkedTextMuxing",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"streams": {
"items": {
"type": "object",
"title": "MuxingStream",
"properties": {
"streamId": {
"type": "string"
}
},
"required": ["streamId"]
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"streamConditionsMode": {
"description": "Specifies how to proceed with the Muxing when some of its Streams are ignored (see 'condition' property of the Stream resource). The settings only make a difference for Muxings with more than one Stream. When retrieving the resource after the analysis step of the encoding has finished, 'ignoredBy' will indicate if and why it has been ignored.",
"enum": ["DROP_MUXING", "DROP_STREAM"],
"type": "string"
},
"segmentLength": {
"description": "Length of the segments in seconds",
"format": "double",
"type": "number"
},
"segmentNaming": {
"description": "Segment naming policy",
"type": "string"
},
"segmentNamingTemplate": {
"description": "Segment naming policy containing one or both of the following placeholders:\n- '{rand_chars:x}', which will be replaced by a random alphanumeric string of length x (default 32)\n on each (re)start of the encoding. The resulting string will be copied to the segmentNaming property.\n Intended to avoid re-use of segment names after restarting a live encoding.\n- '{segment_rand_chars:x}', which will be replaced by a random alphanumeric string of length x (default 32)\n for each different segment. This is intended to avoid guessing segment URLs by replacing segment numbers.\n\nIf segmentNamingTemplate is set, segmentNaming must not be set.\n",
"type": "string"
},
"startOffset": {
"description": "Offset of MPEG-TS timestamps in seconds. This only affects streams with [WebVttConfiguration](#/Encoding/PostEncodingConfigurationsSubtitlesWebVtt). If set, the X-TIMESTAMP-MAP will be added as described in the [HLS specification](https://datatracker.ietf.org/doc/html/rfc8216#section-3.5). For example, if set to 10 seconds, *X-TIMESTAMP-MAP=MPEGTS:900000,LOCAL:00:00:00.000* will be added after each *WEBVTT* header. The default for ChunkedTextMuxing is that the X-TIMESTAMP-MAP will not be written. Important to note is that the default for `startOffset` for [TsMuxings](#/Encoding/PostEncodingEncodingsMuxingsTsByEncodingId) and [ProgressiveTsMuxings](#/Encoding/PostEncodingEncodingsMuxingsProgressiveTsByEncodingId) is 10 seconds. If the output of this muxing is used for HLS together with video/audio streams using TsMuxings and ProgressiveTsMuxings, this value should be set to the same `startOffset`.",
"type": "integer"
}
},
"required": ["segmentLength", "streams"]
}
},
"required": ["properties"]
}
}
},
"cmaf": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "CmafMuxing",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"streams": {
"items": {
"type": "object",
"title": "MuxingStream",
"properties": {
"streamId": {
"type": "string"
}
},
"required": ["streamId"]
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"streamConditionsMode": {
"description": "Specifies how to proceed with the Muxing when some of its Streams are ignored (see 'condition' property of the Stream resource). The settings only make a difference for Muxings with more than one Stream. When retrieving the resource after the analysis step of the encoding has finished, 'ignoredBy' will indicate if and why it has been ignored.",
"enum": ["DROP_MUXING", "DROP_STREAM"],
"type": "string"
},
"segmentLength": {
"description": "Length of the fragments in seconds",
"format": "double",
"type": "number"
},
"segmentNaming": {
"description": "Segment naming policy",
"type": "string"
},
"segmentNamingTemplate": {
"description": "Segment naming policy containing one or both of the following placeholders:\n- '{rand_chars:x}', which will be replaced by a random alphanumeric string of length x (default 32)\n on each (re)start of the encoding. The resulting string will be copied to the segmentNaming property.\n Intended to avoid re-use of segment names after restarting a live encoding.\n- '{segment_rand_chars:x}', which will be replaced by a random alphanumeric string of length x (default 32)\n for each different segment. This is intended to avoid guessing segment URLs by replacing segment numbers.\n\nIf segmentNamingTemplate is set, segmentNaming must not be set.\n",
"type": "string"
},
"initSegmentName": {
"description": "Init segment name",
"type": "string"
},
"initSegmentNameTemplate": {
"description": "Segment naming policy containing a placeholder of the format '{rand_chars:x}', which will be replaced by a random alphanumeric string of length x (default 32) on each (re)start of the encoding. The resulting string will be copied to the initSegmentName property. Intended to avoid re-use of segment names after restarting a live encoding. If initSegmentNameTemplate is set, initSegmentName must not be set.",
"type": "string"
},
"framesPerCmafChunk": {
"description": "Number of media frames per CMAF chunk. Defaults to: Length of a segment in frames. Minimum: 1. Maximum: Length of a segment in frames.",
"type": "integer"
}
},
"required": ["segmentLength", "streams"]
}
},
"required": ["properties"]
}
}
},
"segmentedRaw": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SegmentedRawMuxing",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"streams": {
"items": {
"type": "object",
"title": "MuxingStream",
"properties": {
"streamId": {
"type": "string"
}
},
"required": ["streamId"]
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"streamConditionsMode": {
"description": "Specifies how to proceed with the Muxing when some of its Streams are ignored (see 'condition' property of the Stream resource). The settings only make a difference for Muxings with more than one Stream. When retrieving the resource after the analysis step of the encoding has finished, 'ignoredBy' will indicate if and why it has been ignored.",
"enum": ["DROP_MUXING", "DROP_STREAM"],
"type": "string"
},
"segmentLength": {
"description": "Length of the fragments in seconds",
"format": "double",
"type": "number"
},
"segmentNaming": {
"description": "Segment naming policy",
"type": "string"
}
},
"required": [
"segmentLength",
"segmentNaming",
"streams"
]
}
},
"required": ["properties"]
}
}
},
"packedAudio": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "PackedAudioMuxing",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"streams": {
"items": {
"type": "object",
"title": "MuxingStream",
"properties": {
"streamId": {
"type": "string"
}
},
"required": ["streamId"]
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"streamConditionsMode": {
"description": "Specifies how to proceed with the Muxing when some of its Streams are ignored (see 'condition' property of the Stream resource). The settings only make a difference for Muxings with more than one Stream. When retrieving the resource after the analysis step of the encoding has finished, 'ignoredBy' will indicate if and why it has been ignored.",
"enum": ["DROP_MUXING", "DROP_STREAM"],
"type": "string"
},
"segmentLength": {
"description": "Duration of a segment, given in seconds",
"format": "double",
"type": "number"
},
"segmentNaming": {
"description": "Segment naming policy. The required filename extension depends on the codec (e.g. '.aac' for AAC). Either this or *segmentNamingTemplate* must be set.",
"type": "string"
},
"segmentNamingTemplate": {
"description": "Segment naming policy containing one or both of the following placeholders:\n- '{rand_chars:x}', which will be replaced by a random alphanumeric string of length x (default 32)\n on each (re)start of the encoding. The resulting string will be copied to the segmentNaming property.\n Intended to avoid re-use of segment names after restarting a live encoding.\n- '{segment_rand_chars:x}', which will be replaced by a random alphanumeric string of length x (default 32)\n for each different segment. This is intended to avoid guessing segment URLs by replacing segment numbers.\n\nIf segmentNamingTemplate is set, segmentNaming must not be set.\nThe required filename extension depends on the codec (e.g. '.aac' for AAC).\n",
"type": "string"
},
"startOffset": {
"description": "Offset of MPEG-TS timestamps in seconds. E.g., first packet will start with PTS 900,000 for a 10 seconds offset (90,000 MPEG-TS timescale).",
"type": "integer"
}
},
"required": ["segmentLength", "streams"]
},
"drm": {
"type": "object",
"properties": {
"aes": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "AesEncryptionDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte Encryption key, 32 hexadecimal characters",
"type": "string"
},
"iv": {
"description": "16 byte initialization vector",
"type": "string"
},
"keyFileUri": {
"description": "Path relative to the output for referencing in the manifest. If this value is not set the key file will be written automatically to the output folder.",
"type": "string"
},
"method": {
"enum": ["SAMPLE_AES", "AES_128"],
"type": "string"
}
},
"required": ["key", "method", "outputs"]
}
},
"required": ["properties"]
}
}
}
}
}
},
"required": ["properties"]
}
}
},
"text": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "TextMuxing",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"streams": {
"items": {
"type": "object",
"title": "MuxingStream",
"properties": {
"streamId": {
"type": "string"
}
},
"required": ["streamId"]
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"streamConditionsMode": {
"description": "Specifies how to proceed with the Muxing when some of its Streams are ignored (see 'condition' property of the Stream resource). The settings only make a difference for Muxings with more than one Stream. When retrieving the resource after the analysis step of the encoding has finished, 'ignoredBy' will indicate if and why it has been ignored.",
"enum": ["DROP_MUXING", "DROP_STREAM"],
"type": "string"
},
"filename": {
"description": "Name of the output file",
"type": "string"
},
"startOffset": {
"description": "Offset of MPEG-TS timestamps in seconds. This only affects streams with [WebVttConfiguration](#/Encoding/PostEncodingConfigurationsSubtitlesWebVtt). If set, the X-TIMESTAMP-MAP will be added as described in the [HLS specification](https://datatracker.ietf.org/doc/html/rfc8216#section-3.5). For example, if set to 10 seconds, *X-TIMESTAMP-MAP=MPEGTS:900000,LOCAL:00:00:00.000* will be added after each *WEBVTT* header. The default for TextMuxing is that the X-TIMESTAMP-MAP will not be written. Important to note is that the default for `startOffset` for [TsMuxings](#/Encoding/PostEncodingEncodingsMuxingsTsByEncodingId) and [ProgressiveTsMuxings](#/Encoding/PostEncodingEncodingsMuxingsProgressiveTsByEncodingId) is 10 seconds. If the output of this muxing is used for HLS together with video/audio streams using TsMuxings and ProgressiveTsMuxings, this value should be set to the same `startOffset`.",
"type": "integer"
}
},
"required": ["filename", "streams"]
}
},
"required": ["properties"]
}
}
},
"ts": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "TsMuxing",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"streams": {
"items": {
"type": "object",
"title": "MuxingStream",
"properties": {
"streamId": {
"type": "string"
}
},
"required": ["streamId"]
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"streamConditionsMode": {
"description": "Specifies how to proceed with the Muxing when some of its Streams are ignored (see 'condition' property of the Stream resource). The settings only make a difference for Muxings with more than one Stream. When retrieving the resource after the analysis step of the encoding has finished, 'ignoredBy' will indicate if and why it has been ignored.",
"enum": ["DROP_MUXING", "DROP_STREAM"],
"type": "string"
},
"segmentLength": {
"description": "Length of the fragments in seconds",
"format": "double",
"type": "number"
},
"segmentNaming": {
"description": "Segment naming policy",
"type": "string"
},
"segmentNamingTemplate": {
"description": "Segment naming policy containing one or both of the following placeholders:\n- '{rand_chars:x}', which will be replaced by a random alphanumeric string of length x (default 32)\n on each (re)start of the encoding. The resulting string will be copied to the segmentNaming property.\n Intended to avoid re-use of segment names after restarting a live encoding.\n- '{segment_rand_chars:x}', which will be replaced by a random alphanumeric string of length x (default 32)\n for each different segment. This is intended to avoid guessing segment URLs by replacing segment numbers.\n\nIf segmentNamingTemplate is set, segmentNaming must not be set.\n",
"type": "string"
},
"startOffset": {
"description": "Offset of MPEG-TS timestamps in seconds. E.g., first packet will start with PTS 900,000 for a 10 seconds offset (90,000 MPEG-TS timescale).",
"type": "integer"
},
"configuration": {
"type": "object",
"description": "Advanced Configuration of the MPEG Transport Stream Parameters",
"properties": {
"programNumber": {
"description": "An integer value. Value for program_number field in the MPEG Transport Stream Program Map Table (PMT). The value zero is reserved for the NIT PID entry in the PAT.",
"minimum": 1,
"maximum": 65535,
"type": "integer"
},
"pmt": {
"type": "object",
"properties": {
"pid": {
"description": "An integer value. Packet Identifier (PID) for the MPEG Transport Stream PMT.",
"minimum": 16,
"maximum": 8190,
"type": "integer"
}
}
},
"pcr": {
"type": "object",
"properties": {
"pid": {
"description": "An integer value. Packet Identifier (PID) for the MPEG Transport Stream PCR. This should generally point to the video stream PID. If it is not explicitly set it will point to the video stream PID if exists, otherwise to the audio stream PID.",
"minimum": 16,
"maximum": 8190,
"type": "integer"
},
"interval": {
"description": "An integer value. Nominal time between MPEG Transport Stream PCRs in milliseconds.",
"minimum": 1,
"maximum": 65535,
"type": "integer"
}
}
},
"videoStreams": {
"items": {
"type": "object",
"title": "TsVideoStreamConfiguration",
"properties": {
"streamId": {
"description": "The UUID of the stream to which this configuration belongs to. This has to be a ID of a stream that has been added to the current muxing.",
"type": "string"
},
"pid": {
"description": "An integer value. MPEG Transport Stream Packet Identifier (PID) for this video stream.",
"minimum": 16,
"maximum": 8190,
"type": "integer"
}
},
"required": ["pid", "streamId"]
},
"type": "array"
},
"audioStreams": {
"items": {
"type": "object",
"title": "TsAudioStreamConfiguration",
"properties": {
"streamId": {
"description": "The UUID of the stream to which this configuration belongs to. This has to be a ID of a stream that has been added to the current muxing.",
"type": "string"
},
"pid": {
"description": "An integer value. MPEG Transport Stream Packet Identifier (PID) for this audio stream.",
"minimum": 16,
"maximum": 8190,
"type": "integer"
}
},
"required": ["pid", "streamId"]
},
"type": "array"
}
}
}
},
"required": ["streams"]
},
"drm": {
"type": "object",
"properties": {
"fairplay": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "FairPlayDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte Encryption key, 32 hexadecimal characters",
"type": "string"
},
"iv": {
"description": "16 byte initialization vector",
"type": "string"
},
"uri": {
"description": "Url of the licensing server",
"type": "string"
}
},
"required": ["iv", "key", "outputs"]
}
},
"required": ["properties"]
}
}
},
"aes": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "AesEncryptionDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte Encryption key, 32 hexadecimal characters",
"type": "string"
},
"iv": {
"description": "16 byte initialization vector",
"type": "string"
},
"keyFileUri": {
"description": "Path relative to the output for referencing in the manifest. If this value is not set the key file will be written automatically to the output folder.",
"type": "string"
},
"method": {
"enum": ["SAMPLE_AES", "AES_128"],
"type": "string"
}
},
"required": ["key", "method", "outputs"]
}
},
"required": ["properties"]
}
}
},
"speke": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SpekeDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"contentId": {
"description": "Unique Identifier of the content, will be generated if not set",
"type": "string"
},
"kid": {
"description": "Optional key identifier, will be generated if not set.\nFor SPEKE DRM Configurations with the same contentId and kid the key provider\nwill provide the same keys.\n",
"type": "string"
},
"iv": {
"description": "16 byte initialization vector represented by a 32-character text string.\nIt is mandatory if systemIds contains AES128 or FairPlay.\n",
"type": "string"
},
"provider": {
"type": "object",
"description": "Key provider configuration for SPEKE",
"properties": {
"url": {
"description": "URL of the endpoint",
"type": "string"
},
"username": {
"description": "Your username for Basic Authentication",
"type": "string"
},
"password": {
"description": "Your password for Basic Authentication",
"type": "string"
},
"apiKey": {
"description": "Your API key for authentication via X-API-Key HTTP Header",
"type": "string"
},
"roleArn": {
"description": "AWS role that will be assumed for the key exchange in case the provider runs on AWS.\n\nDuring the key exchange the role will be assumed to be able to access the key provider.\n\nThis role is to be created in the customer's account and must be granted access to the\nAPI Gateway of the SPEKE server. For Bitmovin to be able to assume this role, the following\nhas to be added to the trust policy of the role:\n\n```\n{\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::630681592166:user/bitmovinCustomerSpekeAccess\"\n },\n \"Action\": \"sts:AssumeRole\",\n \"Condition\": {\n \"StringEquals\": {\n \"sts:ExternalId\": \"{{externalId}}\"\n }\n }\n}\n```\nIt is recommended to also set the {{externalId}} due to security reasons but it can also be\nommitted.\n\nAdditionally the role needs a policy similar to the following to be able to invoke the API gateway:\n```\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"execute-api:Invoke\"\n ],\n \"Resource\": [\n \"arn:aws:execute-api:{{region}}:*:*/*/POST/*\"\n ]\n }\n ]\n}\n```\nwhere `{{region}}` is the region of the API gateway (for example `us-west-2`), the same has\nto be set in the property 'gatewayRegion'. It's also possible to set `{{region}` to `*` to\ngive the role access to all regions.\n",
"type": "string"
},
"externalId": {
"description": "External ID used together with the IAM role identified by `roleArn` to assume access to\nthe SPEKE server on AWS.\n",
"type": "string"
},
"externalIdMode": {
"enum": [
"CUSTOM",
"GLOBAL",
"GENERATED"
],
"type": "string"
},
"gatewayRegion": {
"description": "Describes the region of the AWS API Gateway that is used to access the SPEKE server.\nThis property is mandatory when setting 'roleArn' and has to indicate in which region\nthe AWS API Gateway is setup. This usually corresponds to the `{{region}}` one sets\nin the execute-api policy for the role as described in 'roleArn'.\n",
"type": "string"
}
},
"required": ["url"]
},
"systemIds": {
"description": "DRM system identifier of the content protection scheme. At minimum one is expected.\nNot all systemIds are currently supported, support depends on the muxing type.\n\nRelates to SPEKE implementation. See https://dashif.org/identifiers/content_protection/\n",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"provider",
"systemIds",
"outputs"
]
}
},
"required": ["properties"]
}
}
}
}
}
},
"required": ["properties"]
}
}
},
"webm": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "WebmMuxing",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"streams": {
"items": {
"type": "object",
"title": "MuxingStream",
"properties": {
"streamId": {
"type": "string"
}
},
"required": ["streamId"]
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"streamConditionsMode": {
"description": "Specifies how to proceed with the Muxing when some of its Streams are ignored (see 'condition' property of the Stream resource). The settings only make a difference for Muxings with more than one Stream. When retrieving the resource after the analysis step of the encoding has finished, 'ignoredBy' will indicate if and why it has been ignored.",
"enum": ["DROP_MUXING", "DROP_STREAM"],
"type": "string"
},
"segmentLength": {
"description": "Length of the fragments in seconds",
"format": "double",
"type": "number"
},
"segmentNaming": {
"description": "Segment naming policy",
"type": "string"
},
"segmentNamingTemplate": {
"description": "Segment naming policy containing one or both of the following placeholders:\n- '{rand_chars:x}', which will be replaced by a random alphanumeric string of length x (default 32)\n on each (re)start of the encoding. The resulting string will be copied to the segmentNaming property.\n Intended to avoid re-use of segment names after restarting a live encoding.\n- '{segment_rand_chars:x}', which will be replaced by a random alphanumeric string of length x (default 32)\n for each different segment. This is intended to avoid guessing segment URLs by replacing segment numbers.\n\nIf segmentNamingTemplate is set, segmentNaming must not be set.\n",
"type": "string"
},
"initSegmentName": {
"description": "Init segment name",
"type": "string"
},
"initSegmentNameTemplate": {
"description": "Segment naming policy containing a placeholder of the format '{rand_chars:x}', which will be replaced by a random alphanumeric string of length x (default 32) on each (re)start of the encoding. The resulting string will be copied to the initSegmentName property. Intended to avoid re-use of segment names after restarting a live encoding. If initSegmentNameTemplate is set, initSegmentName must not be set.",
"type": "string"
}
},
"required": ["segmentLength", "streams"]
},
"drm": {
"type": "object",
"properties": {
"cenc": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "CencDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte encryption key, 32 hexadecimal characters",
"type": "string"
},
"kid": {
"description": "16 byte encryption key id. Required for any other DRM but FairPlay",
"type": "string"
},
"encryptionMode": {
"description": "The encryption method to use. Default is `CTR`",
"enum": ["CTR", "CBC"],
"type": "string"
},
"ivSize": {
"description": "Size of the initialization vector",
"enum": ["8_BYTES", "16_BYTES"],
"type": "string"
},
"enablePiffCompatibility": {
"type": "boolean",
"description": "Enables compatibility with the Protected Interoperable File Format (PIFF) specification"
},
"widevine": {
"type": "object",
"description": "Configuration for Widevine DRM",
"properties": {
"pssh": {
"description": "Base64 encoded pssh payload",
"type": "string"
}
},
"required": ["pssh"]
},
"playReady": {
"type": "object",
"description": "Configuration for PlayReady DRM",
"properties": {
"laUrl": {
"description": "Url of the license server. Either the laUrl or the pssh needs to be provided.",
"type": "string"
},
"pssh": {
"description": "Base64 encoded pssh payload.",
"type": "string"
},
"additionalInformation": {
"type": "object",
"properties": {
"wrmHeaderCustomAttributes": {
"description": "Custom attributes that you want to add to the WRM header. This string must be valid xml. Some DRM providers require some information in the custom attributes of the msr:pro tag of the DASH manifest, otherwise the content does not play on certain devices.",
"type": "string"
}
}
}
}
},
"marlin": {
"type": "object",
"description": "Configuration for Marlin DRM"
},
"fairPlay": {
"type": "object",
"description": "Configuration for FairPlay DRM",
"properties": {
"iv": {
"description": "Initialization vector as hexadecimal string",
"type": "string"
},
"uri": {
"description": "URL of the licensing server. Typically starts with a skd://. Please check with your DRM provider on their required format.",
"type": "string"
}
}
}
},
"required": [
"encryptionMode",
"key",
"outputs"
]
}
},
"required": ["properties"]
}
}
},
"speke": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SpekeDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"contentId": {
"description": "Unique Identifier of the content, will be generated if not set",
"type": "string"
},
"kid": {
"description": "Optional key identifier, will be generated if not set.\nFor SPEKE DRM Configurations with the same contentId and kid the key provider\nwill provide the same keys.\n",
"type": "string"
},
"iv": {
"description": "16 byte initialization vector represented by a 32-character text string.\nIt is mandatory if systemIds contains AES128 or FairPlay.\n",
"type": "string"
},
"provider": {
"type": "object",
"description": "Key provider configuration for SPEKE",
"properties": {
"url": {
"description": "URL of the endpoint",
"type": "string"
},
"username": {
"description": "Your username for Basic Authentication",
"type": "string"
},
"password": {
"description": "Your password for Basic Authentication",
"type": "string"
},
"apiKey": {
"description": "Your API key for authentication via X-API-Key HTTP Header",
"type": "string"
},
"roleArn": {
"description": "AWS role that will be assumed for the key exchange in case the provider runs on AWS.\n\nDuring the key exchange the role will be assumed to be able to access the key provider.\n\nThis role is to be created in the customer's account and must be granted access to the\nAPI Gateway of the SPEKE server. For Bitmovin to be able to assume this role, the following\nhas to be added to the trust policy of the role:\n\n```\n{\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::630681592166:user/bitmovinCustomerSpekeAccess\"\n },\n \"Action\": \"sts:AssumeRole\",\n \"Condition\": {\n \"StringEquals\": {\n \"sts:ExternalId\": \"{{externalId}}\"\n }\n }\n}\n```\nIt is recommended to also set the {{externalId}} due to security reasons but it can also be\nommitted.\n\nAdditionally the role needs a policy similar to the following to be able to invoke the API gateway:\n```\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"execute-api:Invoke\"\n ],\n \"Resource\": [\n \"arn:aws:execute-api:{{region}}:*:*/*/POST/*\"\n ]\n }\n ]\n}\n```\nwhere `{{region}}` is the region of the API gateway (for example `us-west-2`), the same has\nto be set in the property 'gatewayRegion'. It's also possible to set `{{region}` to `*` to\ngive the role access to all regions.\n",
"type": "string"
},
"externalId": {
"description": "External ID used together with the IAM role identified by `roleArn` to assume access to\nthe SPEKE server on AWS.\n",
"type": "string"
},
"externalIdMode": {
"enum": [
"CUSTOM",
"GLOBAL",
"GENERATED"
],
"type": "string"
},
"gatewayRegion": {
"description": "Describes the region of the AWS API Gateway that is used to access the SPEKE server.\nThis property is mandatory when setting 'roleArn' and has to indicate in which region\nthe AWS API Gateway is setup. This usually corresponds to the `{{region}}` one sets\nin the execute-api policy for the role as described in 'roleArn'.\n",
"type": "string"
}
},
"required": ["url"]
},
"systemIds": {
"description": "DRM system identifier of the content protection scheme. At minimum one is expected.\nNot all systemIds are currently supported, support depends on the muxing type.\n\nRelates to SPEKE implementation. See https://dashif.org/identifiers/content_protection/\n",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"provider",
"systemIds",
"outputs"
]
}
},
"required": ["properties"]
}
}
}
}
}
},
"required": ["properties"]
}
}
},
"mp3": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Mp3Muxing",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"streams": {
"items": {
"type": "object",
"title": "MuxingStream",
"properties": {
"streamId": {
"type": "string"
}
},
"required": ["streamId"]
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"streamConditionsMode": {
"description": "Specifies how to proceed with the Muxing when some of its Streams are ignored (see 'condition' property of the Stream resource). The settings only make a difference for Muxings with more than one Stream. When retrieving the resource after the analysis step of the encoding has finished, 'ignoredBy' will indicate if and why it has been ignored.",
"enum": ["DROP_MUXING", "DROP_STREAM"],
"type": "string"
},
"filename": {
"description": "Name of the output file",
"type": "string"
}
},
"required": ["filename", "streams"]
}
},
"required": ["properties"]
}
}
},
"mp4": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Mp4Muxing",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"streams": {
"items": {
"type": "object",
"title": "MuxingStream",
"properties": {
"streamId": {
"type": "string"
}
},
"required": ["streamId"]
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"streamConditionsMode": {
"description": "Specifies how to proceed with the Muxing when some of its Streams are ignored (see 'condition' property of the Stream resource). The settings only make a difference for Muxings with more than one Stream. When retrieving the resource after the analysis step of the encoding has finished, 'ignoredBy' will indicate if and why it has been ignored.",
"enum": ["DROP_MUXING", "DROP_STREAM"],
"type": "string"
},
"filename": {
"description": "Name of the output file (either `filename` or `name` is required, prefer `filename`)",
"type": "string"
},
"fragmentDuration": {
"description": " Duration of fragments in milliseconds. Required for Fragmented MP4 Muxing (for Smooth Streaming or DASH On-Demand). Not setting this will result in unfragmented mp4.",
"type": "integer"
},
"timeCode": {
"type": "object",
"properties": {
"timeCodeStart": {
"description": "Specify start timecode for writing.",
"type": "string"
}
}
},
"fragmentedMP4MuxingManifestType": {
"enum": [
"SMOOTH",
"DASH_ON_DEMAND",
"HLS_BYTE_RANGES",
"NONE",
"HLS_BYTE_RANGES_AND_IFRAME_PLAYLIST"
],
"type": "string"
},
"dolbyVisionConfiguration": {
"type": "object",
"description": "Dolby Vision specific configuration",
"properties": {
"trackSampleEntryName": {
"title": "DolbyVisionTrackSampleEntryName",
"description": "Dolby Vision track's sample entry name",
"enum": ["DVHE", "DVH1"],
"type": "string"
}
}
}
},
"required": ["streams"]
},
"drm": {
"type": "object",
"properties": {
"playready": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "PlayReadyDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte encryption key, 32 hexadecimal characters. Either key or keySeed is required",
"type": "string"
},
"keySeed": {
"description": "Key seed to generate key. Either key or keySeed is required",
"type": "string"
},
"laUrl": {
"description": "URL of the license server",
"type": "string"
},
"pssh": {
"description": "Base64 encoded pssh payload",
"type": "string"
},
"method": {
"enum": ["MPEG_CENC", "PIFF_CTR"],
"type": "string"
},
"kid": {
"description": "Key identifier",
"type": "string"
},
"additionalInformation": {
"type": "object",
"properties": {
"wrmHeaderCustomAttributes": {
"description": "Custom attributes that you want to add to the WRM header. This string must be valid xml. Some DRM providers require some information in the custom attributes of the msr:pro tag of the DASH manifest, otherwise the content does not play on certain devices.",
"type": "string"
}
}
}
},
"required": ["outputs"]
}
},
"required": ["properties"]
}
}
},
"clearkey": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ClearKeyDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte encryption key, 32 hexadecimal characters",
"type": "string"
},
"kid": {
"description": "16 byte key id",
"type": "string"
}
},
"required": ["key", "kid", "outputs"]
}
},
"required": ["properties"]
}
}
},
"widevine": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "WidevineDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte Encryption key, 32 hexadecimal characters",
"type": "string"
},
"kid": {
"description": "16 byte Key id, 32 hexadecimal characters",
"type": "string"
},
"pssh": {
"description": "Base 64 Encoded",
"type": "string"
}
},
"required": [
"key",
"kid",
"pssh",
"outputs"
]
}
},
"required": ["properties"]
}
}
},
"marlin": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "MarlinDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte key in hex (32 characters)",
"type": "string"
},
"kid": {
"description": "16 byte key in hex (32 characters)",
"type": "string"
}
},
"required": ["key", "kid", "outputs"]
}
},
"required": ["properties"]
}
}
},
"cenc": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "CencDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte encryption key, 32 hexadecimal characters",
"type": "string"
},
"kid": {
"description": "16 byte encryption key id. Required for any other DRM but FairPlay",
"type": "string"
},
"encryptionMode": {
"description": "The encryption method to use. Default is `CTR`",
"enum": ["CTR", "CBC"],
"type": "string"
},
"ivSize": {
"description": "Size of the initialization vector",
"enum": ["8_BYTES", "16_BYTES"],
"type": "string"
},
"enablePiffCompatibility": {
"type": "boolean",
"description": "Enables compatibility with the Protected Interoperable File Format (PIFF) specification"
},
"widevine": {
"type": "object",
"description": "Configuration for Widevine DRM",
"properties": {
"pssh": {
"description": "Base64 encoded pssh payload",
"type": "string"
}
},
"required": ["pssh"]
},
"playReady": {
"type": "object",
"description": "Configuration for PlayReady DRM",
"properties": {
"laUrl": {
"description": "Url of the license server. Either the laUrl or the pssh needs to be provided.",
"type": "string"
},
"pssh": {
"description": "Base64 encoded pssh payload.",
"type": "string"
},
"additionalInformation": {
"type": "object",
"properties": {
"wrmHeaderCustomAttributes": {
"description": "Custom attributes that you want to add to the WRM header. This string must be valid xml. Some DRM providers require some information in the custom attributes of the msr:pro tag of the DASH manifest, otherwise the content does not play on certain devices.",
"type": "string"
}
}
}
}
},
"marlin": {
"type": "object",
"description": "Configuration for Marlin DRM"
},
"fairPlay": {
"type": "object",
"description": "Configuration for FairPlay DRM",
"properties": {
"iv": {
"description": "Initialization vector as hexadecimal string",
"type": "string"
},
"uri": {
"description": "URL of the licensing server. Typically starts with a skd://. Please check with your DRM provider on their required format.",
"type": "string"
}
}
}
},
"required": [
"encryptionMode",
"key",
"outputs"
]
}
},
"required": ["properties"]
}
}
},
"speke": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SpekeDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"contentId": {
"description": "Unique Identifier of the content, will be generated if not set",
"type": "string"
},
"kid": {
"description": "Optional key identifier, will be generated if not set.\nFor SPEKE DRM Configurations with the same contentId and kid the key provider\nwill provide the same keys.\n",
"type": "string"
},
"iv": {
"description": "16 byte initialization vector represented by a 32-character text string.\nIt is mandatory if systemIds contains AES128 or FairPlay.\n",
"type": "string"
},
"provider": {
"type": "object",
"description": "Key provider configuration for SPEKE",
"properties": {
"url": {
"description": "URL of the endpoint",
"type": "string"
},
"username": {
"description": "Your username for Basic Authentication",
"type": "string"
},
"password": {
"description": "Your password for Basic Authentication",
"type": "string"
},
"apiKey": {
"description": "Your API key for authentication via X-API-Key HTTP Header",
"type": "string"
},
"roleArn": {
"description": "AWS role that will be assumed for the key exchange in case the provider runs on AWS.\n\nDuring the key exchange the role will be assumed to be able to access the key provider.\n\nThis role is to be created in the customer's account and must be granted access to the\nAPI Gateway of the SPEKE server. For Bitmovin to be able to assume this role, the following\nhas to be added to the trust policy of the role:\n\n```\n{\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::630681592166:user/bitmovinCustomerSpekeAccess\"\n },\n \"Action\": \"sts:AssumeRole\",\n \"Condition\": {\n \"StringEquals\": {\n \"sts:ExternalId\": \"{{externalId}}\"\n }\n }\n}\n```\nIt is recommended to also set the {{externalId}} due to security reasons but it can also be\nommitted.\n\nAdditionally the role needs a policy similar to the following to be able to invoke the API gateway:\n```\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"execute-api:Invoke\"\n ],\n \"Resource\": [\n \"arn:aws:execute-api:{{region}}:*:*/*/POST/*\"\n ]\n }\n ]\n}\n```\nwhere `{{region}}` is the region of the API gateway (for example `us-west-2`), the same has\nto be set in the property 'gatewayRegion'. It's also possible to set `{{region}` to `*` to\ngive the role access to all regions.\n",
"type": "string"
},
"externalId": {
"description": "External ID used together with the IAM role identified by `roleArn` to assume access to\nthe SPEKE server on AWS.\n",
"type": "string"
},
"externalIdMode": {
"enum": [
"CUSTOM",
"GLOBAL",
"GENERATED"
],
"type": "string"
},
"gatewayRegion": {
"description": "Describes the region of the AWS API Gateway that is used to access the SPEKE server.\nThis property is mandatory when setting 'roleArn' and has to indicate in which region\nthe AWS API Gateway is setup. This usually corresponds to the `{{region}}` one sets\nin the execute-api policy for the role as described in 'roleArn'.\n",
"type": "string"
}
},
"required": ["url"]
},
"systemIds": {
"description": "DRM system identifier of the content protection scheme. At minimum one is expected.\nNot all systemIds are currently supported, support depends on the muxing type.\n\nRelates to SPEKE implementation. See https://dashif.org/identifiers/content_protection/\n",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"provider",
"systemIds",
"outputs"
]
}
},
"required": ["properties"]
}
}
}
}
}
},
"required": ["properties"]
}
}
},
"mxf": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "MxfMuxing",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"streams": {
"items": {
"type": "object",
"title": "MuxingStream",
"properties": {
"streamId": {
"type": "string"
}
},
"required": ["streamId"]
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"streamConditionsMode": {
"description": "Specifies how to proceed with the Muxing when some of its Streams are ignored (see 'condition' property of the Stream resource). The settings only make a difference for Muxings with more than one Stream. When retrieving the resource after the analysis step of the encoding has finished, 'ignoredBy' will indicate if and why it has been ignored.",
"enum": ["DROP_MUXING", "DROP_STREAM"],
"type": "string"
},
"filename": {
"description": "Name of the output file",
"type": "string"
}
},
"required": ["filename", "streams"]
}
},
"required": ["properties"]
}
}
},
"progressiveTs": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ProgressiveTsMuxing",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"streams": {
"items": {
"type": "object",
"title": "MuxingStream",
"properties": {
"streamId": {
"type": "string"
}
},
"required": ["streamId"]
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"streamConditionsMode": {
"description": "Specifies how to proceed with the Muxing when some of its Streams are ignored (see 'condition' property of the Stream resource). The settings only make a difference for Muxings with more than one Stream. When retrieving the resource after the analysis step of the encoding has finished, 'ignoredBy' will indicate if and why it has been ignored.",
"enum": ["DROP_MUXING", "DROP_STREAM"],
"type": "string"
},
"segmentLength": {
"description": "Length of the segments in seconds",
"format": "double",
"type": "number"
},
"filename": {
"description": "Name of the output file",
"type": "string"
},
"startOffset": {
"description": "Offset of MPEG-TS timestamps in seconds. e.g. first packet will start with PTS 900,000 for a 10 seconds offset (90,000 MPEG-TS timescale).",
"type": "integer"
}
},
"required": ["streams"]
},
"id3": {
"type": "object",
"properties": {
"raw": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "RawId3Tag",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"positionMode": {
"enum": ["TIME", "FRAME"],
"type": "string"
},
"frame": {
"description": "Frame number at which the Tag should be inserted",
"type": "integer"
},
"time": {
"description": "Time in seconds where the Tag should be inserted",
"format": "double",
"type": "number"
},
"bytes": {
"description": "Base64 Encoded Data",
"type": "string"
}
},
"required": ["bytes"]
}
},
"required": ["properties"]
}
}
},
"frameId": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "FrameIdId3Tag",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"positionMode": {
"enum": ["TIME", "FRAME"],
"type": "string"
},
"frame": {
"description": "Frame number at which the Tag should be inserted",
"type": "integer"
},
"time": {
"description": "Time in seconds where the Tag should be inserted",
"format": "double",
"type": "number"
},
"bytes": {
"description": "Base64 Encoded Data",
"type": "string"
},
"frameId": {
"description": "4 character long Frame ID",
"type": "string"
}
},
"required": ["bytes", "frameId"]
}
},
"required": ["properties"]
}
}
},
"plainText": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "PlaintextId3Tag",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"positionMode": {
"enum": ["TIME", "FRAME"],
"type": "string"
},
"frame": {
"description": "Frame number at which the Tag should be inserted",
"type": "integer"
},
"time": {
"description": "Time in seconds where the Tag should be inserted",
"format": "double",
"type": "number"
},
"text": {
"description": "Plain Text Data",
"type": "string"
},
"frameId": {
"description": "4 character long Frame ID",
"type": "string"
}
},
"required": ["frameId", "text"]
}
},
"required": ["properties"]
}
}
}
}
},
"drm": {
"type": "object",
"properties": {
"fairplay": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "FairPlayDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte Encryption key, 32 hexadecimal characters",
"type": "string"
},
"iv": {
"description": "16 byte initialization vector",
"type": "string"
},
"uri": {
"description": "Url of the licensing server",
"type": "string"
}
},
"required": ["iv", "key", "outputs"]
}
},
"required": ["properties"]
}
}
},
"aes": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "AesEncryptionDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte Encryption key, 32 hexadecimal characters",
"type": "string"
},
"iv": {
"description": "16 byte initialization vector",
"type": "string"
},
"keyFileUri": {
"description": "Path relative to the output for referencing in the manifest. If this value is not set the key file will be written automatically to the output folder.",
"type": "string"
},
"method": {
"enum": ["SAMPLE_AES", "AES_128"],
"type": "string"
}
},
"required": ["key", "method", "outputs"]
}
},
"required": ["properties"]
}
}
},
"speke": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SpekeDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"contentId": {
"description": "Unique Identifier of the content, will be generated if not set",
"type": "string"
},
"kid": {
"description": "Optional key identifier, will be generated if not set.\nFor SPEKE DRM Configurations with the same contentId and kid the key provider\nwill provide the same keys.\n",
"type": "string"
},
"iv": {
"description": "16 byte initialization vector represented by a 32-character text string.\nIt is mandatory if systemIds contains AES128 or FairPlay.\n",
"type": "string"
},
"provider": {
"type": "object",
"description": "Key provider configuration for SPEKE",
"properties": {
"url": {
"description": "URL of the endpoint",
"type": "string"
},
"username": {
"description": "Your username for Basic Authentication",
"type": "string"
},
"password": {
"description": "Your password for Basic Authentication",
"type": "string"
},
"apiKey": {
"description": "Your API key for authentication via X-API-Key HTTP Header",
"type": "string"
},
"roleArn": {
"description": "AWS role that will be assumed for the key exchange in case the provider runs on AWS.\n\nDuring the key exchange the role will be assumed to be able to access the key provider.\n\nThis role is to be created in the customer's account and must be granted access to the\nAPI Gateway of the SPEKE server. For Bitmovin to be able to assume this role, the following\nhas to be added to the trust policy of the role:\n\n```\n{\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::630681592166:user/bitmovinCustomerSpekeAccess\"\n },\n \"Action\": \"sts:AssumeRole\",\n \"Condition\": {\n \"StringEquals\": {\n \"sts:ExternalId\": \"{{externalId}}\"\n }\n }\n}\n```\nIt is recommended to also set the {{externalId}} due to security reasons but it can also be\nommitted.\n\nAdditionally the role needs a policy similar to the following to be able to invoke the API gateway:\n```\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"execute-api:Invoke\"\n ],\n \"Resource\": [\n \"arn:aws:execute-api:{{region}}:*:*/*/POST/*\"\n ]\n }\n ]\n}\n```\nwhere `{{region}}` is the region of the API gateway (for example `us-west-2`), the same has\nto be set in the property 'gatewayRegion'. It's also possible to set `{{region}` to `*` to\ngive the role access to all regions.\n",
"type": "string"
},
"externalId": {
"description": "External ID used together with the IAM role identified by `roleArn` to assume access to\nthe SPEKE server on AWS.\n",
"type": "string"
},
"externalIdMode": {
"enum": [
"CUSTOM",
"GLOBAL",
"GENERATED"
],
"type": "string"
},
"gatewayRegion": {
"description": "Describes the region of the AWS API Gateway that is used to access the SPEKE server.\nThis property is mandatory when setting 'roleArn' and has to indicate in which region\nthe AWS API Gateway is setup. This usually corresponds to the `{{region}}` one sets\nin the execute-api policy for the role as described in 'roleArn'.\n",
"type": "string"
}
},
"required": ["url"]
},
"systemIds": {
"description": "DRM system identifier of the content protection scheme. At minimum one is expected.\nNot all systemIds are currently supported, support depends on the muxing type.\n\nRelates to SPEKE implementation. See https://dashif.org/identifiers/content_protection/\n",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"provider",
"systemIds",
"outputs"
]
}
},
"required": ["properties"]
}
}
}
}
}
},
"required": ["properties"]
}
}
},
"broadcastTs": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "BroadcastTsMuxing",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"streams": {
"items": {
"type": "object",
"title": "MuxingStream",
"properties": {
"streamId": {
"type": "string"
}
},
"required": ["streamId"]
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"streamConditionsMode": {
"description": "Specifies how to proceed with the Muxing when some of its Streams are ignored (see 'condition' property of the Stream resource). The settings only make a difference for Muxings with more than one Stream. When retrieving the resource after the analysis step of the encoding has finished, 'ignoredBy' will indicate if and why it has been ignored.",
"enum": ["DROP_MUXING", "DROP_STREAM"],
"type": "string"
},
"segmentLength": {
"description": "Length of the segments in seconds.",
"format": "double",
"type": "number"
},
"filename": {
"description": "Name of the output file",
"type": "string"
},
"configuration": {
"type": "object",
"properties": {
"transport": {
"type": "object",
"description": "Transport configuration details for the Broadcast TS muxing.",
"properties": {
"muxrate": {
"description": "Output rate in bps. The value zero implies to use minimal rate. The minimal rate leaves approximately 15kbps of null packets in the stream.",
"minimum": 0,
"maximum": 1000000000,
"format": "double",
"type": "number"
},
"stopOnError": {
"type": "boolean",
"description": "Stop mux on errors. If true, implies halt multiplexing when any error is encountered. If false, errors are ignored and multiplexing continues. Note that the recovery from an error will usually result in an illegal transport stream and artifacts on a decoder."
},
"preventEmptyAdaptionFieldsInVideo": {
"type": "boolean",
"description": "If true, prevents adaptation fields with length field equal to zero in video, i.e., zero-length AF. Please note that this condition can only occur when pesAlign for the input stream is set to true."
},
"patRepetitionRatePerSec": {
"description": "Program Association Table (PAT) repetition rate per second. Number of PATs per second.",
"minimum": 0.001,
"maximum": 1000,
"format": "double",
"type": "number"
},
"pmtRepetitionRatePerSec": {
"description": "Program Map Table (PMT) repetition rate per second. Number of PMTs for each program per second.",
"minimum": 0.001,
"maximum": 1000,
"format": "double",
"type": "number"
},
"variableMuxRate": {
"type": "boolean",
"description": "When false, the output stream is created at a constant bit rate. When true, the output rate is allowed to vary from a maximum rate set by the muxrate parameter down to the minimum required to carry the stream."
},
"initialPresentationTimeStamp": {
"description": "Presentation time stamp value for the first video frame. The timestamp is specified in the timescale of 90000",
"minimum": 0,
"maximum": 5400000,
"format": "double",
"type": "number"
},
"initialProgramClockReference": {
"description": "Program Clock Reference value at the beginning of the first packet for the transport stream. The PCR is specified in the timescale of 90000",
"minimum": 0,
"maximum": 2576980377600,
"format": "double",
"type": "number"
}
}
},
"program": {
"type": "object",
"description": "Program configuration details for the Broadcast TS muxing.",
"properties": {
"programNumber": {
"description": "An integer value. Value for program_number field in Program Map Table (PMT). The value zero is reserved for the NIT PID entry in the PAT.",
"minimum": 1,
"maximum": 65535,
"type": "integer"
},
"pidForPMT": {
"description": "An integer value. Packet identifier (PID) to use for Program Map Table (PMT). Recommended value is 2 x programNumber.",
"minimum": 10,
"maximum": 8190,
"type": "integer"
},
"insertProgramClockRefOnPes": {
"type": "boolean",
"description": "Insert Program Clock References (PCRs) on all packetized elemementary stream packets. When false, indicates that PCRs should be inserted on every PES header. This parameter is effective only when the PCR packet identifier is the same as a video or audio elementary stream."
},
"programClockRefInterval": {
"description": "Interval between Program Clock References (PCRs) in milliseconds. Defines the period between PCR fields inserted in the stream. The default value is 90ms.",
"minimum": 1,
"maximum": 100,
"type": "integer"
}
}
},
"videoStreams": {
"items": {
"type": "object",
"title": "BroadcastTsVideoInputStreamConfiguration",
"properties": {
"streamId": {
"description": "The UUID of the stream to which this configuration belongs to. This has to be a ID of a stream that has been added to the current muxing.",
"type": "string"
},
"packetIdentifier": {
"description": "An integer value. Packet Identifier (PID) for this stream.",
"minimum": 16,
"maximum": 8190,
"type": "integer"
},
"startWithDiscontinuityIndicator": {
"type": "boolean",
"description": "Start stream with initial discontinuity indicator set to one. If true, set the discontinuity indicator in the first packet for this PID."
},
"alignPes": {
"type": "boolean",
"description": "Align access units to PES packets. If true, align access units to PES packet headers. Uses adaptation field stuffing to position an access unit at the beginning of each PES packet."
},
"setRaiOnAu": {
"enum": [
"NONE",
"ALL_PES_PACKETS",
"ACQUISITION_POINT_PACKETS",
"ACCORDING_TO_INPUT"
],
"type": "string"
},
"insertAccessUnitDelimiterInAvc": {
"type": "boolean",
"description": "If true, add access unit delimiters (AUD) to AVC stream if AUD is missing from input elementary stream."
},
"maxDecodeDelay": {
"description": "Maximum Decoder Delay in 90 KHz cycles. When non-zero, the difference between the PCR and the DTS for each picture as it is inserted into the output transport stream is limited to this number of 90 KHz cycles. Values below 1000 are treated as 0 and ignored. Valid Range [0, 1000-900000]",
"minimum": 1000,
"maximum": 900000,
"type": "integer"
}
}
},
"type": "array"
},
"audioStreams": {
"items": {
"type": "object",
"title": "BroadcastTsAudioInputStreamConfiguration",
"properties": {
"streamId": {
"description": "The UUID of the audio stream to which this configuration belongs to. This has to be an ID of an audio stream that has been added to the current muxing.",
"type": "string"
},
"packetIdentifier": {
"description": "An integer value. Packet Identifier (PID) for this stream.",
"minimum": 16,
"maximum": 8190,
"type": "integer"
},
"startWithDiscontinuityIndicator": {
"type": "boolean",
"description": "Start stream with initial discontinuity indicator set to one. If true, set the discontinuity indicator in the first packet for this PID."
},
"alignPes": {
"type": "boolean",
"description": "Align access units to PES packets. If true, align access units to PES packet headers. Uses adaptation field stuffing to position an access unit at the beginning of each PES packet."
},
"setRaiOnAu": {
"enum": [
"NONE",
"ALL_PES_PACKETS",
"ACQUISITION_POINT_PACKETS",
"ACCORDING_TO_INPUT"
],
"type": "string"
},
"useATSCBufferModel": {
"type": "boolean",
"description": "Use ATSC buffer model for AC-3. If true, use the ATSC version of the T-STD buffer model is used. This parameter applies to AC-3 streams only."
},
"language": {
"description": "Language of the audio stream. Specified according to the ISO 639-2 alpha code for the language descriptor.",
"type": "string"
}
},
"required": ["streamId"]
},
"type": "array"
},
"subtitleStreams": {
"items": {
"type": "object",
"title": "BroadcastTsSubtitleInputStreamConfiguration",
"properties": {
"streamId": {
"description": "The UUID of the subtitle stream to which this configuration belongs to. This has to be an ID of an subtitle stream that has been added to the current muxing.\n",
"type": "string"
},
"packetIdentifier": {
"description": "An integer value. Packet Identifier (PID) for this stream.",
"minimum": 16,
"maximum": 8190,
"type": "integer"
},
"rate": {
"description": "The rate parameter determines the maximum rate in bits per second that should be used for the subtitle stream. The valid range is `100` to `60 000 000` bps or `0`. If the value is set to 0, we will examine the first 100 packets of subtitle packet data and use the highest rate that was computed. If the value is set too low, not enough to accommodate the subtitle bit-rate, then some PES packets corresponding to DVB subtitle stream will be dropped. This parameter is optional and the default value is 0.\n",
"minimum": 0,
"maximum": 60000000,
"type": "integer"
}
}
},
"type": "array"
}
}
}
},
"required": ["streams"]
}
},
"required": ["properties"]
}
}
},
"progressiveWav": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ProgressiveWavMuxing",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"streams": {
"items": {
"type": "object",
"title": "MuxingStream",
"properties": {
"streamId": {
"type": "string"
}
},
"required": ["streamId"]
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"streamConditionsMode": {
"description": "Specifies how to proceed with the Muxing when some of its Streams are ignored (see 'condition' property of the Stream resource). The settings only make a difference for Muxings with more than one Stream. When retrieving the resource after the analysis step of the encoding has finished, 'ignoredBy' will indicate if and why it has been ignored.",
"enum": ["DROP_MUXING", "DROP_STREAM"],
"type": "string"
},
"filename": {
"description": "Name of the output file",
"type": "string"
}
},
"required": ["filename", "streams"]
}
},
"required": ["properties"]
}
}
},
"progressiveWebm": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ProgressiveWebmMuxing",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"streams": {
"items": {
"type": "object",
"title": "MuxingStream",
"properties": {
"streamId": {
"type": "string"
}
},
"required": ["streamId"]
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"streamConditionsMode": {
"description": "Specifies how to proceed with the Muxing when some of its Streams are ignored (see 'condition' property of the Stream resource). The settings only make a difference for Muxings with more than one Stream. When retrieving the resource after the analysis step of the encoding has finished, 'ignoredBy' will indicate if and why it has been ignored.",
"enum": ["DROP_MUXING", "DROP_STREAM"],
"type": "string"
},
"filename": {
"description": "Name of the output file",
"type": "string"
},
"manifestType": {
"enum": ["DASH_ON_DEMAND", "NONE"],
"type": "string"
},
"segmentLength": {
"description": "Determines the length of segments in seconds if manifestType is set to DASH_ON_DEMAND. Defaults to 4 seconds",
"format": "double",
"type": "number"
}
},
"required": ["streams"]
},
"drm": {
"type": "object",
"properties": {
"cenc": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "CencDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"key": {
"description": "16 byte encryption key, 32 hexadecimal characters",
"type": "string"
},
"kid": {
"description": "16 byte encryption key id. Required for any other DRM but FairPlay",
"type": "string"
},
"encryptionMode": {
"description": "The encryption method to use. Default is `CTR`",
"enum": ["CTR", "CBC"],
"type": "string"
},
"ivSize": {
"description": "Size of the initialization vector",
"enum": ["8_BYTES", "16_BYTES"],
"type": "string"
},
"enablePiffCompatibility": {
"type": "boolean",
"description": "Enables compatibility with the Protected Interoperable File Format (PIFF) specification"
},
"widevine": {
"type": "object",
"description": "Configuration for Widevine DRM",
"properties": {
"pssh": {
"description": "Base64 encoded pssh payload",
"type": "string"
}
},
"required": ["pssh"]
},
"playReady": {
"type": "object",
"description": "Configuration for PlayReady DRM",
"properties": {
"laUrl": {
"description": "Url of the license server. Either the laUrl or the pssh needs to be provided.",
"type": "string"
},
"pssh": {
"description": "Base64 encoded pssh payload.",
"type": "string"
},
"additionalInformation": {
"type": "object",
"properties": {
"wrmHeaderCustomAttributes": {
"description": "Custom attributes that you want to add to the WRM header. This string must be valid xml. Some DRM providers require some information in the custom attributes of the msr:pro tag of the DASH manifest, otherwise the content does not play on certain devices.",
"type": "string"
}
}
}
}
},
"marlin": {
"type": "object",
"description": "Configuration for Marlin DRM"
},
"fairPlay": {
"type": "object",
"description": "Configuration for FairPlay DRM",
"properties": {
"iv": {
"description": "Initialization vector as hexadecimal string",
"type": "string"
},
"uri": {
"description": "URL of the licensing server. Typically starts with a skd://. Please check with your DRM provider on their required format.",
"type": "string"
}
}
}
},
"required": [
"encryptionMode",
"key",
"outputs"
]
}
},
"required": ["properties"]
}
}
},
"speke": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SpekeDrm",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": [
"outputId",
"outputPath"
]
},
"type": "array"
},
"contentId": {
"description": "Unique Identifier of the content, will be generated if not set",
"type": "string"
},
"kid": {
"description": "Optional key identifier, will be generated if not set.\nFor SPEKE DRM Configurations with the same contentId and kid the key provider\nwill provide the same keys.\n",
"type": "string"
},
"iv": {
"description": "16 byte initialization vector represented by a 32-character text string.\nIt is mandatory if systemIds contains AES128 or FairPlay.\n",
"type": "string"
},
"provider": {
"type": "object",
"description": "Key provider configuration for SPEKE",
"properties": {
"url": {
"description": "URL of the endpoint",
"type": "string"
},
"username": {
"description": "Your username for Basic Authentication",
"type": "string"
},
"password": {
"description": "Your password for Basic Authentication",
"type": "string"
},
"apiKey": {
"description": "Your API key for authentication via X-API-Key HTTP Header",
"type": "string"
},
"roleArn": {
"description": "AWS role that will be assumed for the key exchange in case the provider runs on AWS.\n\nDuring the key exchange the role will be assumed to be able to access the key provider.\n\nThis role is to be created in the customer's account and must be granted access to the\nAPI Gateway of the SPEKE server. For Bitmovin to be able to assume this role, the following\nhas to be added to the trust policy of the role:\n\n```\n{\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"AWS\": \"arn:aws:iam::630681592166:user/bitmovinCustomerSpekeAccess\"\n },\n \"Action\": \"sts:AssumeRole\",\n \"Condition\": {\n \"StringEquals\": {\n \"sts:ExternalId\": \"{{externalId}}\"\n }\n }\n}\n```\nIt is recommended to also set the {{externalId}} due to security reasons but it can also be\nommitted.\n\nAdditionally the role needs a policy similar to the following to be able to invoke the API gateway:\n```\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"execute-api:Invoke\"\n ],\n \"Resource\": [\n \"arn:aws:execute-api:{{region}}:*:*/*/POST/*\"\n ]\n }\n ]\n}\n```\nwhere `{{region}}` is the region of the API gateway (for example `us-west-2`), the same has\nto be set in the property 'gatewayRegion'. It's also possible to set `{{region}` to `*` to\ngive the role access to all regions.\n",
"type": "string"
},
"externalId": {
"description": "External ID used together with the IAM role identified by `roleArn` to assume access to\nthe SPEKE server on AWS.\n",
"type": "string"
},
"externalIdMode": {
"enum": [
"CUSTOM",
"GLOBAL",
"GENERATED"
],
"type": "string"
},
"gatewayRegion": {
"description": "Describes the region of the AWS API Gateway that is used to access the SPEKE server.\nThis property is mandatory when setting 'roleArn' and has to indicate in which region\nthe AWS API Gateway is setup. This usually corresponds to the `{{region}}` one sets\nin the execute-api policy for the role as described in 'roleArn'.\n",
"type": "string"
}
},
"required": ["url"]
},
"systemIds": {
"description": "DRM system identifier of the content protection scheme. At minimum one is expected.\nNot all systemIds are currently supported, support depends on the muxing type.\n\nRelates to SPEKE implementation. See https://dashif.org/identifiers/content_protection/\n",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"provider",
"systemIds",
"outputs"
]
}
},
"required": ["properties"]
}
}
}
}
}
},
"required": ["properties"]
}
}
},
"progressiveMov": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ProgressiveMovMuxing",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"streams": {
"items": {
"type": "object",
"title": "MuxingStream",
"properties": {
"streamId": {
"type": "string"
}
},
"required": ["streamId"]
},
"type": "array"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"streamConditionsMode": {
"description": "Specifies how to proceed with the Muxing when some of its Streams are ignored (see 'condition' property of the Stream resource). The settings only make a difference for Muxings with more than one Stream. When retrieving the resource after the analysis step of the encoding has finished, 'ignoredBy' will indicate if and why it has been ignored.",
"enum": ["DROP_MUXING", "DROP_STREAM"],
"type": "string"
},
"filename": {
"description": "Name of the output file",
"type": "string"
}
},
"required": ["streams"]
}
},
"required": ["properties"]
}
}
}
}
},
"captions": {
"type": "object",
"properties": {
"scc": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ConvertSccCaption",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"input": {
"type": "object",
"description": "The input location to get the scc file from",
"properties": {
"inputId": {
"description": "Id of input",
"type": "string"
},
"inputPath": {
"description": "Path to media file",
"type": "string"
}
},
"required": ["inputId", "inputPath"]
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"fileName": {
"description": "Name of the captions file",
"type": "string"
},
"outputFormat": {
"enum": ["WEBVTT"],
"type": "string"
},
"webVttSettings": {
"type": "object",
"description": "Optional settings when converting SCC to WebVTT",
"properties": {
"positionMode": {
"title": "ConvertSccPositionMode",
"enum": ["FULL", "SIMPLE", "NONE"],
"type": "string"
},
"removeFlash": {
"type": "boolean",
"description": "Remove flash (blinking) information when converting SCC to WebVTT"
},
"removeColor": {
"type": "boolean",
"description": "Remove color information when converting SCC to WebVTT"
}
}
}
},
"required": [
"fileName",
"input",
"outputFormat",
"outputs"
]
}
},
"required": ["properties"]
}
}
}
}
},
"sidecars": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SidecarFile",
"description": "A file that is added to an encoding. The size limit for a sidecar file is 10 MB",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"inputId": {
"description": "Id of input",
"type": "string"
},
"inputPath": {
"description": "Path to sidecar file",
"type": "string"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"errorMode": {
"description": "This defines how errors should be handled",
"enum": ["FAIL_ON_ERROR", "CONTINUE_ON_ERROR"],
"type": "string"
}
},
"required": ["inputId", "inputPath"]
},
"webvtt": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "WebVttSidecarFile",
"description": "An external WebVTT file that is added to an encoding. The size limit for a sidecar file is 10 MB",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"inputId": {
"description": "Id of input",
"type": "string"
},
"inputPath": {
"description": "Path to sidecar file",
"type": "string"
},
"outputs": {
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": [
"PUBLIC_READ",
"PRIVATE"
],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"errorMode": {
"description": "This defines how errors should be handled",
"enum": [
"FAIL_ON_ERROR",
"CONTINUE_ON_ERROR"
],
"type": "string"
},
"segmentation": {
"type": "object",
"properties": {
"segmentLength": {
"description": "The length of the WebVTT fragments in seconds",
"format": "double",
"type": "number"
}
},
"required": ["segmentLength"]
}
},
"required": ["inputId", "inputPath"]
}
},
"required": ["properties"]
}
}
}
},
"required": ["properties"]
}
}
},
"keyframes": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Keyframe",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"time": {
"description": "Time in seconds where the keyframe should be inserted",
"format": "double",
"type": "number"
}
},
"required": ["time"]
}
},
"required": ["properties"]
}
}
},
"start": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "StartEncodingRequest",
"properties": {
"trimming": {
"type": "object",
"description": "Allows to encode only part of the input. Defines start (offset) and duration of the desired section. This is not allowed when the Encoding uses any kind of Input Stream resource.",
"properties": {
"offset": {
"description": "Defines the offset in seconds from which the encoding should start, beginning at 0.",
"minimum": 0,
"format": "double",
"type": "number"
},
"duration": {
"description": "Defines how many seconds from the input will be encoded. If not set, the input will be encoded until its end.",
"minimum": 0,
"format": "double",
"type": "number"
},
"ignoreDurationIfInputTooShort": {
"type": "boolean",
"description": "When true, \"duration\" will be interpreted as a maximum and not cause an error if the input is too short"
},
"startPicTiming": {
"description": "Defines the H264 picture timing of the first frame from which the encoding should start. Any defined offset or duration in seconds will be ignored.",
"type": "string"
},
"endPicTiming": {
"description": "Defines the H264 picture timing of the last frame, that will be included in the encoding. Any defined offset or duration in seconds will be ignored.",
"type": "string"
}
}
},
"scheduling": {
"type": "object",
"description": "Scheduling parameters of the encoding.",
"properties": {
"priority": {
"description": "Specifies the priority of this encoding (0 - 100). Higher numbers mean higher priority. Default is 50.",
"minimum": 0,
"maximum": 100,
"type": "integer"
},
"prewarmedEncoderPoolIds": {
"description": "List of prewarmed encoder pools. If set, prewarmed encoders from pools with these IDs will be used for the encoding if available. The pool IDs will be tried in the order in which they are passed.",
"items": {
"type": "string"
},
"type": "array"
}
}
},
"tweaks": {
"type": "object",
"description": "Special tweaks for your encoding job.",
"properties": {
"audioVideoSyncMode": {
"description": "Different modes for syncing the start and end of audio input streams with the video inputs.\nThis feature does not work with Dolby Digital (Plus) or Dolby Atmos.",
"enum": [
"STANDARD",
"RESYNC_AT_START",
"RESYNC_AT_START_AND_END"
],
"type": "string"
}
}
},
"handleVariableInputFps": {
"type": "boolean",
"description": "Enable frame dropping/duplication to handle variable frames per seconds of video input streams"
},
"encodingMode": {
"description": "The pass mode of the encoding. Must only be set when `encodingMode` is not set on any codec configuration used by this encoding.",
"enum": [
"STANDARD",
"SINGLE_PASS",
"TWO_PASS",
"THREE_PASS"
],
"type": "string"
},
"previewDashManifests": {
"description": "DASH manifests to be generated for previewing while the encoding is still running. See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)",
"items": {
"type": "object",
"title": "ManifestResource",
"properties": {
"manifestId": {
"description": "Id of the manifest resource",
"type": "string"
}
},
"required": ["manifestId"]
},
"type": "array"
},
"previewHlsManifests": {
"description": "HLS manifests to be generated for previewing while the encoding is still running. See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)",
"items": {
"type": "object",
"title": "ManifestResource",
"properties": {
"manifestId": {
"description": "Id of the manifest resource",
"type": "string"
}
},
"required": ["manifestId"]
},
"type": "array"
},
"vodDashManifests": {
"description": "DASH manifests to be generated right after encoding (just-in-time). See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)",
"items": {
"type": "object",
"title": "ManifestResource",
"properties": {
"manifestId": {
"description": "Id of the manifest resource",
"type": "string"
}
},
"required": ["manifestId"]
},
"type": "array"
},
"vodHlsManifests": {
"description": "HLS manifests to be generated right after encoding (just-in-time). See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)",
"items": {
"type": "object",
"title": "ManifestResource",
"properties": {
"manifestId": {
"description": "Id of the manifest resource",
"type": "string"
}
},
"required": ["manifestId"]
},
"type": "array"
},
"vodSmoothManifests": {
"description": "Smooth Streaming manifests to be generated right after encoding (just-in-time). See [documentation](https://developer.bitmovin.com/encoding/docs/how-to-create-manifests-for-your-encodings#just-in-time-jit)",
"items": {
"type": "object",
"title": "ManifestResource",
"properties": {
"manifestId": {
"description": "Id of the manifest resource",
"type": "string"
}
},
"required": ["manifestId"]
},
"type": "array"
},
"manifestGenerator": {
"description": "Major version of the manifest generator to be used for manifests referenced in this request (by properties vodDashManifests, vodHlsManifests, vodSmoothManifests, previewDashManifests, previewHlsManifests). `V2` is available for encoder versions 2.70.0 and above and is the recommended option. The default value depends on the sign-up date of your organization. See [documentation](https://developer.bitmovin.com/encoding/docs/manifest-generator-v2) page for a detailed explanation.\n",
"enum": ["LEGACY", "V2"],
"type": "string"
},
"perTitle": {
"type": "object",
"description": "Per-Title settings",
"properties": {
"h264Configuration": {
"type": "object",
"description": "Per-Title configuration for H264",
"properties": {
"minBitrate": {
"description": "The minimum bitrate that will be used by the Per-Title algorithm.",
"type": "integer"
},
"maxBitrate": {
"description": "The maximum bitrate that will be used by the Per-Title algorithm. It will not generate any rendition with a higher bitrate.",
"type": "integer"
},
"minBitrateStepSize": {
"description": "The minimum ratio between the bitrates of generated renditions, e.g. if the first bitrate is 240,000, a minimum ratio of 1.5 will require the next higher bitrate to be at least 360,000",
"format": "double",
"type": "number"
},
"maxBitrateStepSize": {
"description": "The maximum ratio between the bitrates of neighbouring renditions, e.g., if the first bitrate is 240,000, a maximum ratio of 1.5 will require the next higher bitrate to be at most 360,000",
"format": "double",
"type": "number"
},
"autoRepresentations": {
"type": "object",
"properties": {
"adoptConfigurationThreshold": {
"description": "This is the threshold that determines whether the settings of the lower or the upper template representation (codec configuration) should be used, when representations are added automatically. The value must be between 0 and 1. Values nearer 0 will favour the higher representation, values nearer 1 will favour the lower representation.",
"format": "double",
"type": "number"
}
}
},
"complexityFactor": {
"description": "Will modify the assumed complexity for the Per-Title algorithm (> 0.0). Values higher than 1 will increase complexity and thus select smaller resolutions for given bitrates. This will also result in a higher bitrate for the top rendition. Values lower than 1 will decrease assumed complexity and thus select higher resolutions for given bitrates and also decrease the bitrate of the top rendition",
"minimum": 0,
"format": "double",
"type": "number"
},
"fixedResolutionAndBitrateConfiguration": {
"type": "object",
"description": "Additional configuration for fixed resolution and bitrate templates",
"properties": {
"forcedRenditionAboveHighestFixedRepresentation": {
"description": "Number of forced renditions above the highest fixed representation (e.g. FIXED_RESOLUTION_AND_BITRATE). Forced renditions will be added, also if the Per-Title algorithm chooses the user defined force rendition to be the highest one.",
"minimum": 1,
"type": "integer"
},
"forcedRenditionAboveHighestFixedRepresentationFactor": {
"description": "The factor to calculate the bitrate that will be chosen based on the bitrate of the last FIXED_RESOLUTION.",
"format": "double",
"type": "number"
},
"forcedRenditionAboveHighestFixedRepresentationCalculationMode": {
"description": "Mode to calculate the bitrate of the next representation",
"enum": [
"LAST_CALCULATED_BITRATE",
"MINIMUM",
"MAXIMUM",
"AVERAGE"
],
"type": "string"
}
}
},
"targetQualityCrf": {
"description": "Desired target quality of the highest representation expressed as CRF value",
"format": "double",
"type": "number"
},
"resolutionScaleFactor": {
"description": "This factor influences the resolution selection of the per-title algorithm. The default value is 0.0. negative values will lead to results where the algorithm will choose lower resolutions for given bitrates. A positive value will result in higher resolutions to be selected. The range of the factor is -5.0 to +5.0. Please note that changing this factor might also lead to slightly different bitrate selection by the algorithm.",
"format": "double",
"type": "number"
},
"codecMinBitrateFactor": {
"description": "This factor is used to calculate the minBitrate of the codec configuration for the generated representations as a multiple of the targetBitrate",
"format": "double",
"type": "number"
},
"codecMaxBitrateFactor": {
"description": "This factor is used to calculate the maxBitrate of the codec configuration for the generated representations as a multiple of the targetBitrate",
"format": "double",
"type": "number"
},
"codecBufsizeFactor": {
"description": "This factor is used to calculate the bufsize of the codec configuration for the generated representations as a multiple of the targetBitrate",
"format": "double",
"type": "number"
}
}
},
"h265Configuration": {
"type": "object",
"description": "Per-Title configuration for H265",
"properties": {
"minBitrate": {
"description": "The minimum bitrate that will be used by the Per-Title algorithm.",
"type": "integer"
},
"maxBitrate": {
"description": "The maximum bitrate that will be used by the Per-Title algorithm. It will not generate any rendition with a higher bitrate.",
"type": "integer"
},
"minBitrateStepSize": {
"description": "The minimum ratio between the bitrates of generated renditions, e.g. if the first bitrate is 240,000, a minimum ratio of 1.5 will require the next higher bitrate to be at least 360,000",
"format": "double",
"type": "number"
},
"maxBitrateStepSize": {
"description": "The maximum ratio between the bitrates of neighbouring renditions, e.g., if the first bitrate is 240,000, a maximum ratio of 1.5 will require the next higher bitrate to be at most 360,000",
"format": "double",
"type": "number"
},
"autoRepresentations": {
"type": "object",
"properties": {
"adoptConfigurationThreshold": {
"description": "This is the threshold that determines whether the settings of the lower or the upper template representation (codec configuration) should be used, when representations are added automatically. The value must be between 0 and 1. Values nearer 0 will favour the higher representation, values nearer 1 will favour the lower representation.",
"format": "double",
"type": "number"
}
}
},
"complexityFactor": {
"description": "Will modify the assumed complexity for the Per-Title algorithm (> 0.0). Values higher than 1 will increase complexity and thus select smaller resolutions for given bitrates. This will also result in a higher bitrate for the top rendition. Values lower than 1 will decrease assumed complexity and thus select higher resolutions for given bitrates and also decrease the bitrate of the top rendition",
"minimum": 0,
"format": "double",
"type": "number"
},
"fixedResolutionAndBitrateConfiguration": {
"type": "object",
"description": "Additional configuration for fixed resolution and bitrate templates",
"properties": {
"forcedRenditionAboveHighestFixedRepresentation": {
"description": "Number of forced renditions above the highest fixed representation (e.g. FIXED_RESOLUTION_AND_BITRATE). Forced renditions will be added, also if the Per-Title algorithm chooses the user defined force rendition to be the highest one.",
"minimum": 1,
"type": "integer"
},
"forcedRenditionAboveHighestFixedRepresentationFactor": {
"description": "The factor to calculate the bitrate that will be chosen based on the bitrate of the last FIXED_RESOLUTION.",
"format": "double",
"type": "number"
},
"forcedRenditionAboveHighestFixedRepresentationCalculationMode": {
"description": "Mode to calculate the bitrate of the next representation",
"enum": [
"LAST_CALCULATED_BITRATE",
"MINIMUM",
"MAXIMUM",
"AVERAGE"
],
"type": "string"
}
}
},
"targetQualityCrf": {
"description": "Desired target quality of the highest representation expressed as CRF value",
"format": "double",
"type": "number"
},
"resolutionScaleFactor": {
"description": "This factor influences the resolution selection of the per-title algorithm. The default value is 0.0. negative values will lead to results where the algorithm will choose lower resolutions for given bitrates. A positive value will result in higher resolutions to be selected. The range of the factor is -5.0 to +5.0. Please note that changing this factor might also lead to slightly different bitrate selection by the algorithm.",
"format": "double",
"type": "number"
},
"codecMinBitrateFactor": {
"description": "This factor is used to calculate the minBitrate of the codec configuration for the generated representations as a multiple of the targetBitrate",
"format": "double",
"type": "number"
},
"codecMaxBitrateFactor": {
"description": "This factor is used to calculate the maxBitrate of the codec configuration for the generated representations as a multiple of the targetBitrate",
"format": "double",
"type": "number"
},
"codecBufsizeFactor": {
"description": "This factor is used to calculate the bufsize of the codec configuration for the generated representations as a multiple of the targetBitrate",
"format": "double",
"type": "number"
}
}
},
"vp9Configuration": {
"type": "object",
"description": "Per-Title configuration for VP9",
"properties": {
"minBitrate": {
"description": "The minimum bitrate that will be used by the Per-Title algorithm.",
"type": "integer"
},
"maxBitrate": {
"description": "The maximum bitrate that will be used by the Per-Title algorithm. It will not generate any rendition with a higher bitrate.",
"type": "integer"
},
"minBitrateStepSize": {
"description": "The minimum ratio between the bitrates of generated renditions, e.g. if the first bitrate is 240,000, a minimum ratio of 1.5 will require the next higher bitrate to be at least 360,000",
"format": "double",
"type": "number"
},
"maxBitrateStepSize": {
"description": "The maximum ratio between the bitrates of neighbouring renditions, e.g., if the first bitrate is 240,000, a maximum ratio of 1.5 will require the next higher bitrate to be at most 360,000",
"format": "double",
"type": "number"
},
"autoRepresentations": {
"type": "object",
"properties": {
"adoptConfigurationThreshold": {
"description": "This is the threshold that determines whether the settings of the lower or the upper template representation (codec configuration) should be used, when representations are added automatically. The value must be between 0 and 1. Values nearer 0 will favour the higher representation, values nearer 1 will favour the lower representation.",
"format": "double",
"type": "number"
}
}
},
"complexityFactor": {
"description": "Will modify the assumed complexity for the Per-Title algorithm (> 0.0). Values higher than 1 will increase complexity and thus select smaller resolutions for given bitrates. This will also result in a higher bitrate for the top rendition. Values lower than 1 will decrease assumed complexity and thus select higher resolutions for given bitrates and also decrease the bitrate of the top rendition",
"minimum": 0,
"format": "double",
"type": "number"
},
"fixedResolutionAndBitrateConfiguration": {
"type": "object",
"description": "Additional configuration for fixed resolution and bitrate templates",
"properties": {
"forcedRenditionAboveHighestFixedRepresentation": {
"description": "Number of forced renditions above the highest fixed representation (e.g. FIXED_RESOLUTION_AND_BITRATE). Forced renditions will be added, also if the Per-Title algorithm chooses the user defined force rendition to be the highest one.",
"minimum": 1,
"type": "integer"
},
"forcedRenditionAboveHighestFixedRepresentationFactor": {
"description": "The factor to calculate the bitrate that will be chosen based on the bitrate of the last FIXED_RESOLUTION.",
"format": "double",
"type": "number"
},
"forcedRenditionAboveHighestFixedRepresentationCalculationMode": {
"description": "Mode to calculate the bitrate of the next representation",
"enum": [
"LAST_CALCULATED_BITRATE",
"MINIMUM",
"MAXIMUM",
"AVERAGE"
],
"type": "string"
}
}
},
"targetQualityCrf": {
"description": "Desired target quality of the highest representation expressed as CRF value",
"format": "double",
"type": "number"
},
"resolutionScaleFactor": {
"description": "This factor influences the resolution selection of the per-title algorithm. The default value is 0.0. negative values will lead to results where the algorithm will choose lower resolutions for given bitrates. A positive value will result in higher resolutions to be selected. The range of the factor is -5.0 to +5.0. Please note that changing this factor might also lead to slightly different bitrate selection by the algorithm.",
"format": "double",
"type": "number"
}
}
},
"av1Configuration": {
"type": "object",
"description": "Per-Title configuration for AV1",
"properties": {
"minBitrate": {
"description": "The minimum bitrate that will be used by the Per-Title algorithm.",
"type": "integer"
},
"maxBitrate": {
"description": "The maximum bitrate that will be used by the Per-Title algorithm. It will not generate any rendition with a higher bitrate.",
"type": "integer"
},
"minBitrateStepSize": {
"description": "The minimum ratio between the bitrates of generated renditions, e.g. if the first bitrate is 240,000, a minimum ratio of 1.5 will require the next higher bitrate to be at least 360,000",
"format": "double",
"type": "number"
},
"maxBitrateStepSize": {
"description": "The maximum ratio between the bitrates of neighbouring renditions, e.g., if the first bitrate is 240,000, a maximum ratio of 1.5 will require the next higher bitrate to be at most 360,000",
"format": "double",
"type": "number"
},
"autoRepresentations": {
"type": "object",
"properties": {
"adoptConfigurationThreshold": {
"description": "This is the threshold that determines whether the settings of the lower or the upper template representation (codec configuration) should be used, when representations are added automatically. The value must be between 0 and 1. Values nearer 0 will favour the higher representation, values nearer 1 will favour the lower representation.",
"format": "double",
"type": "number"
}
}
},
"complexityFactor": {
"description": "Will modify the assumed complexity for the Per-Title algorithm (> 0.0). Values higher than 1 will increase complexity and thus select smaller resolutions for given bitrates. This will also result in a higher bitrate for the top rendition. Values lower than 1 will decrease assumed complexity and thus select higher resolutions for given bitrates and also decrease the bitrate of the top rendition",
"minimum": 0,
"format": "double",
"type": "number"
},
"fixedResolutionAndBitrateConfiguration": {
"type": "object",
"description": "Additional configuration for fixed resolution and bitrate templates",
"properties": {
"forcedRenditionAboveHighestFixedRepresentation": {
"description": "Number of forced renditions above the highest fixed representation (e.g. FIXED_RESOLUTION_AND_BITRATE). Forced renditions will be added, also if the Per-Title algorithm chooses the user defined force rendition to be the highest one.",
"minimum": 1,
"type": "integer"
},
"forcedRenditionAboveHighestFixedRepresentationFactor": {
"description": "The factor to calculate the bitrate that will be chosen based on the bitrate of the last FIXED_RESOLUTION.",
"format": "double",
"type": "number"
},
"forcedRenditionAboveHighestFixedRepresentationCalculationMode": {
"description": "Mode to calculate the bitrate of the next representation",
"enum": [
"LAST_CALCULATED_BITRATE",
"MINIMUM",
"MAXIMUM",
"AVERAGE"
],
"type": "string"
}
}
},
"targetQualityCrf": {
"description": "Desired target quality of the highest representation expressed as CRF value",
"format": "double",
"type": "number"
},
"resolutionScaleFactor": {
"description": "This factor influences the resolution selection of the per-title algorithm. The default value is 0.0. negative values will lead to results where the algorithm will choose lower resolutions for given bitrates. A positive value will result in higher resolutions to be selected. The range of the factor is -5.0 to +5.0. Please note that changing this factor might also lead to slightly different bitrate selection by the algorithm.",
"format": "double",
"type": "number"
}
}
}
}
}
}
}
},
"required": ["properties"]
},
"reprioritize": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ReprioritizeEncodingRequest",
"properties": {
"priority": {
"description": "Priority of the Encoding",
"minimum": 0,
"maximum": 100,
"type": "integer"
}
},
"required": ["priority"]
}
},
"required": ["properties"]
}
}
},
"reschedule": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "RescheduleEncodingRequest",
"properties": {
"infrastructureId": {
"description": "Id of a custom infrastructure, e.g., AWS Cloud Connect",
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
}
},
"required": ["properties"],
"oneOf": [
{
"required": ["start"]
},
{
"required": ["live"]
}
]
}
}
},
"live": {
"type": "object",
"properties": {
"streamKeys": {
"type": "object",
"properties": {
"actions": {
"type": "object",
"properties": {
"unassign": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "StreamKeysUnassignAction",
"properties": {
"encodingId": {
"description": "Encoding ID for which stream keys should be unassigned",
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
}
}
}
},
"patternProperties": {
"^(?!.*\\b(?:actions)\\b)[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "StreamKey",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"value": {
"description": "Stream key used for live streaming. This stream key is reserved and can be re-used with different live encodings.\nIf this value is not provided, a unique random stream key will be generated.\n**Important:** This value has to be globally unique. If it is set manually, be sure to use a secure value.\nIf the stream key value is guessed by others your live encoding can be compromised.\n",
"type": "string"
},
"status": {
"description": "Status of the stream key",
"enum": ["ASSIGNED", "UNASSIGNED"],
"type": "string"
},
"type": {
"description": "Type of the stream key",
"enum": ["RESERVED", "TEMPORARY"],
"type": "string"
}
}
}
}
}
}
},
"standbyPools": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "LiveStandbyPool",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"targetPoolSize": {
"description": "Number of instances to keep ready for streaming while the pool is running",
"minimum": 0,
"type": "integer"
},
"readyEncodings": {
"description": "Number of instances currently in ready state in the pool",
"minimum": 0,
"type": "integer"
},
"preparingEncodings": {
"description": "Number of instances currently being prepared in the pool",
"minimum": 0,
"type": "integer"
},
"errorEncodings": {
"description": "Number of instances currently in error state in the pool",
"minimum": 0,
"type": "integer"
},
"poolStatus": {
"enum": ["HEALTHY", "ERROR"],
"type": "string"
},
"encodingDefinitionId": {
"description": "ID of the encoding definition (encoding template)",
"type": "string"
}
},
"required": ["encodingDefinitionId", "targetPoolSize"]
}
},
"required": ["properties"]
}
}
}
}
},
"manifests": {
"type": "object",
"properties": {
"dash": {
"type": "object",
"properties": {
"defaultapi": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DashManifestDefault",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"type": {
"enum": ["DASH", "HLS", "SMOOTH_STREAMING"],
"type": "string"
},
"outputs": {
"description": "The outputs to store the manifest",
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"status": {
"description": "Current status",
"enum": [
"CREATED",
"QUEUED",
"RUNNING",
"FINISHED",
"ERROR",
"CANCELED",
"TRANSFER_ERROR"
],
"type": "string"
},
"profile": {
"description": "Determines if segmented or progressive representations can appear in the manifest",
"enum": ["LIVE", "ON_DEMAND"],
"type": "string"
},
"manifestName": {
"description": "The filename of your manifest",
"type": "string"
},
"namespaces": {
"description": "List of additional XML namespaces to add to the DASH Manifest",
"items": {
"type": "object",
"title": "XmlNamespace",
"properties": {
"prefix": {
"description": "Name of the XML Namespace reference",
"type": "string"
},
"uri": {
"description": "Source of the XML Namespace reference",
"type": "string"
}
},
"required": ["prefix", "uri"]
},
"type": "array"
},
"utcTimings": {
"description": "List of UTC Timings to use for live streaming",
"items": {
"type": "object",
"title": "UtcTiming",
"properties": {
"value": {
"description": "The server to get the time from",
"type": "string"
},
"schemeIdUri": {
"description": "The scheme id to use. Please refer to the DASH standard.",
"type": "string"
}
},
"required": ["schemeIdUri", "value"]
},
"type": "array"
},
"dashEditionCompatibility": {
"description": "The manifest compatibility with the standard DASH Edition.",
"enum": ["V4"],
"type": "string"
},
"encodingId": {
"description": "The id of the encoding to create a default manifest for. Either \"encodingId\" or \"periods\" is required.",
"type": "string"
},
"version": {
"description": "Specifies the algorithm that determines which output of the given encoding is included into the manifest. Note that this is not related to the \"manifestGenerator\" version of the \"Start\" request.",
"enum": ["V1", "V2"],
"type": "string"
},
"periods": {
"description": "Adds a period for every item. Can only be used when setting \"version\" to \"V2\". Either \"periods\" or \"encodingId\" is required.",
"items": {
"type": "object",
"title": "DefaultDashManifestPeriod",
"properties": {
"encodingIds": {
"description": "List the encoding ids for which the conditions should apply",
"items": {
"type": "string"
},
"type": "array"
},
"adaptationSets": {
"description": "Adds an adaption set for every item to the period",
"items": {
"type": "object",
"title": "DefaultManifestCondition"
},
"type": "array"
}
}
},
"type": "array"
}
},
"required": ["outputs"]
}
},
"required": ["properties"]
}
}
}
},
"patternProperties": {
"^(?!.*\\b(?:defaultapi)\\b)[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DashManifest",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"type": {
"enum": ["DASH", "HLS", "SMOOTH_STREAMING"],
"type": "string"
},
"outputs": {
"description": "The outputs to store the manifest",
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"status": {
"description": "Current status",
"enum": [
"CREATED",
"QUEUED",
"RUNNING",
"FINISHED",
"ERROR",
"CANCELED",
"TRANSFER_ERROR"
],
"type": "string"
},
"profile": {
"description": "Determines if segmented or progressive representations can appear in the manifest",
"enum": ["LIVE", "ON_DEMAND"],
"type": "string"
},
"manifestName": {
"description": "The filename of your manifest",
"type": "string"
},
"namespaces": {
"description": "List of additional XML namespaces to add to the DASH Manifest",
"items": {
"type": "object",
"title": "XmlNamespace",
"properties": {
"prefix": {
"description": "Name of the XML Namespace reference",
"type": "string"
},
"uri": {
"description": "Source of the XML Namespace reference",
"type": "string"
}
},
"required": ["prefix", "uri"]
},
"type": "array"
},
"utcTimings": {
"description": "List of UTC Timings to use for live streaming",
"items": {
"type": "object",
"title": "UtcTiming",
"properties": {
"value": {
"description": "The server to get the time from",
"type": "string"
},
"schemeIdUri": {
"description": "The scheme id to use. Please refer to the DASH standard.",
"type": "string"
}
},
"required": ["schemeIdUri", "value"]
},
"type": "array"
},
"dashEditionCompatibility": {
"description": "The manifest compatibility with the standard DASH Edition.",
"enum": ["V4"],
"type": "string"
}
},
"required": ["outputs"]
},
"periods": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "Period",
"properties": {
"start": {
"description": "Starting time in seconds",
"format": "double",
"type": "number"
},
"duration": {
"description": "Duration in seconds.
Please note that the duration of a Period is usually determined by the media contained therein.
Setting the `duration` property to a specific value will override this default behaviour.
Warning: Use at your own risk!",
"format": "double",
"type": "number"
}
}
},
"customXmlElements": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "CustomXmlElement",
"properties": {
"data": {
"description": "String representation of the XML element",
"type": "string"
}
},
"required": ["data"]
}
},
"required": ["properties"]
}
}
},
"adaptationsets": {
"type": "object",
"properties": {
"audio": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "AudioAdaptationSet",
"properties": {
"customAttributes": {
"description": "Custom adaptation set attributes",
"items": {
"type": "object",
"title": "CustomAttribute",
"properties": {
"key": {
"description": "unique string identifier for the custom attribute",
"type": "string"
},
"value": {
"description": "value of the custom attribute",
"type": "string"
}
},
"required": ["key"]
},
"type": "array"
},
"roles": {
"description": "Roles of the adaptation set",
"items": {
"type": "string",
"title": "AdaptationSetRole"
},
"type": "array"
},
"accessibilities": {
"description": "Provide signaling of CEA 607 and CEA 708",
"items": {
"type": "object",
"title": "Accessibility",
"properties": {
"value": {
"description": "Can be either list of languages or a complete map of services (or CC channels, in CEA-608 terminology)",
"type": "string"
},
"schemeIdUri": {
"description": "The scheme id to use. Please refer to the DASH standard.",
"type": "string"
}
},
"required": ["schemeIdUri", "value"]
},
"type": "array"
},
"labels": {
"description": "List of labels",
"items": {
"type": "object",
"title": "Label",
"properties": {
"id": {
"description": "Identifier of the label.",
"minimum": 0,
"type": "integer"
},
"lang": {
"description": "Specifies the language of the label.",
"type": "string"
},
"value": {
"description": "Content of the label.",
"type": "string"
}
},
"required": ["value"]
},
"type": "array"
},
"lang": {
"description": "ISO 639-1 (Alpha-2) code identifying the language of the audio adaptation set",
"type": "string"
}
},
"required": ["lang"]
}
},
"required": ["properties"]
}
}
},
"video": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "VideoAdaptationSet",
"properties": {
"customAttributes": {
"description": "Custom adaptation set attributes",
"items": {
"type": "object",
"title": "CustomAttribute",
"properties": {
"key": {
"description": "unique string identifier for the custom attribute",
"type": "string"
},
"value": {
"description": "value of the custom attribute",
"type": "string"
}
},
"required": ["key"]
},
"type": "array"
},
"roles": {
"description": "Roles of the adaptation set",
"items": {
"type": "string",
"title": "AdaptationSetRole"
},
"type": "array"
},
"accessibilities": {
"description": "Provide signaling of CEA 607 and CEA 708",
"items": {
"type": "object",
"title": "Accessibility",
"properties": {
"value": {
"description": "Can be either list of languages or a complete map of services (or CC channels, in CEA-608 terminology)",
"type": "string"
},
"schemeIdUri": {
"description": "The scheme id to use. Please refer to the DASH standard.",
"type": "string"
}
},
"required": ["schemeIdUri", "value"]
},
"type": "array"
},
"labels": {
"description": "List of labels",
"items": {
"type": "object",
"title": "Label",
"properties": {
"id": {
"description": "Identifier of the label.",
"minimum": 0,
"type": "integer"
},
"lang": {
"description": "Specifies the language of the label.",
"type": "string"
},
"value": {
"description": "Content of the label.",
"type": "string"
}
},
"required": ["value"]
},
"type": "array"
}
}
}
},
"required": ["properties"]
}
}
},
"subtitle": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SubtitleAdaptationSet",
"properties": {
"customAttributes": {
"description": "Custom adaptation set attributes",
"items": {
"type": "object",
"title": "CustomAttribute",
"properties": {
"key": {
"description": "unique string identifier for the custom attribute",
"type": "string"
},
"value": {
"description": "value of the custom attribute",
"type": "string"
}
},
"required": ["key"]
},
"type": "array"
},
"roles": {
"description": "Roles of the adaptation set",
"items": {
"type": "string",
"title": "AdaptationSetRole"
},
"type": "array"
},
"accessibilities": {
"description": "Provide signaling of CEA 607 and CEA 708",
"items": {
"type": "object",
"title": "Accessibility",
"properties": {
"value": {
"description": "Can be either list of languages or a complete map of services (or CC channels, in CEA-608 terminology)",
"type": "string"
},
"schemeIdUri": {
"description": "The scheme id to use. Please refer to the DASH standard.",
"type": "string"
}
},
"required": ["schemeIdUri", "value"]
},
"type": "array"
},
"labels": {
"description": "List of labels",
"items": {
"type": "object",
"title": "Label",
"properties": {
"id": {
"description": "Identifier of the label.",
"minimum": 0,
"type": "integer"
},
"lang": {
"description": "Specifies the language of the label.",
"type": "string"
},
"value": {
"description": "Content of the label.",
"type": "string"
}
},
"required": ["value"]
},
"type": "array"
},
"lang": {
"description": "ISO 639-1 (Alpha-2) code identifying the language of the subtitle adaptation set",
"type": "string"
}
},
"required": ["lang"]
}
},
"required": ["properties"]
}
}
},
"image": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ImageAdaptationSet",
"properties": {
"customAttributes": {
"description": "Custom adaptation set attributes",
"items": {
"type": "object",
"title": "CustomAttribute",
"properties": {
"key": {
"description": "unique string identifier for the custom attribute",
"type": "string"
},
"value": {
"description": "value of the custom attribute",
"type": "string"
}
},
"required": ["key"]
},
"type": "array"
},
"roles": {
"description": "Roles of the adaptation set",
"items": {
"type": "string",
"title": "AdaptationSetRole"
},
"type": "array"
},
"accessibilities": {
"description": "Provide signaling of CEA 607 and CEA 708",
"items": {
"type": "object",
"title": "Accessibility",
"properties": {
"value": {
"description": "Can be either list of languages or a complete map of services (or CC channels, in CEA-608 terminology)",
"type": "string"
},
"schemeIdUri": {
"description": "The scheme id to use. Please refer to the DASH standard.",
"type": "string"
}
},
"required": ["schemeIdUri", "value"]
},
"type": "array"
},
"labels": {
"description": "List of labels",
"items": {
"type": "object",
"title": "Label",
"properties": {
"id": {
"description": "Identifier of the label.",
"minimum": 0,
"type": "integer"
},
"lang": {
"description": "Specifies the language of the label.",
"type": "string"
},
"value": {
"description": "Content of the label.",
"type": "string"
}
},
"required": ["value"]
},
"type": "array"
}
}
}
},
"required": ["properties"]
}
}
},
"representations": {
"type": "object",
"properties": {
"vtt": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DashVttRepresentation",
"properties": {
"vttUrl": {
"description": "URL of the referenced VTT file",
"type": "string"
}
},
"required": ["vttUrl"]
}
},
"required": ["properties"]
}
}
},
"imsc": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DashImscRepresentation",
"properties": {
"imscUrl": {
"description": "URL of the referenced IMSC file",
"type": "string"
}
},
"required": ["imscUrl"]
}
},
"required": ["properties"]
}
}
},
"sprite": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SpriteRepresentation",
"properties": {
"encodingId": {
"description": "UUID of an encoding",
"type": "string"
},
"streamId": {
"description": "UUID of a stream",
"type": "string"
},
"spriteId": {
"description": "UUID of a Sprite",
"type": "string"
},
"segmentPath": {
"description": "Path to sprite segments. Will be used as the representation id in the manifest.",
"type": "string"
}
},
"required": [
"encodingId",
"segmentPath",
"spriteId",
"streamId"
]
}
},
"required": ["properties"]
}
}
},
"fmp4": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DashFmp4Representation",
"properties": {
"encodingId": {
"description": "UUID of an encoding",
"type": "string"
},
"muxingId": {
"description": "UUID of a muxing",
"type": "string"
},
"dependencyId": {
"description": "Used to signal a dependency with another representation. The representation may belong to a different adaptation set",
"type": "string"
},
"type": {
"enum": [
"TEMPLATE",
"LIST",
"TIMELINE"
],
"type": "string"
},
"mode": {
"enum": [
"TEMPLATE_REPRESENTATION",
"TEMPLATE_ADAPTATION_SET"
],
"type": "string"
},
"segmentPath": {
"description": "Path to segments. Will be used as the representation id if the type is set to TEMPLATE_ADAPTATION_SET",
"type": "string"
},
"startSegmentNumber": {
"description": "Number of the first segment",
"type": "integer"
},
"endSegmentNumber": {
"description": "Number of the last segment. Default is the last one that was encoded",
"type": "integer"
},
"startKeyframeId": {
"description": "Id of the keyframe to start with. It takes precedence over startSegmentNumber",
"type": "string"
},
"endKeyframeId": {
"description": "Id of the keyframe to end with. It takes precedence over endSegmentNumber. The segment containing the end keyframe is not included in the representation.",
"type": "string"
}
},
"required": [
"segmentPath",
"type",
"encodingId",
"muxingId"
]
},
"drm": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DashFmp4DrmRepresentation",
"properties": {
"encodingId": {
"description": "UUID of an encoding",
"type": "string"
},
"muxingId": {
"description": "UUID of a muxing",
"type": "string"
},
"dependencyId": {
"description": "Used to signal a dependency with another representation. The representation may belong to a different adaptation set",
"type": "string"
},
"type": {
"enum": [
"TEMPLATE",
"LIST",
"TIMELINE"
],
"type": "string"
},
"mode": {
"enum": [
"TEMPLATE_REPRESENTATION",
"TEMPLATE_ADAPTATION_SET"
],
"type": "string"
},
"segmentPath": {
"description": "Path to segments. Will be used as the representation id if the type is set to TEMPLATE_ADAPTATION_SET",
"type": "string"
},
"startSegmentNumber": {
"description": "Number of the first segment",
"type": "integer"
},
"endSegmentNumber": {
"description": "Number of the last segment. Default is the last one that was encoded",
"type": "integer"
},
"startKeyframeId": {
"description": "Id of the keyframe to start with. It takes precedence over startSegmentNumber",
"type": "string"
},
"endKeyframeId": {
"description": "Id of the keyframe to end with. It takes precedence over endSegmentNumber. The segment containing the end keyframe is not included in the representation.",
"type": "string"
},
"drmId": {
"description": "DRM Id",
"type": "string"
}
},
"required": [
"drmId",
"segmentPath",
"type",
"encodingId",
"muxingId"
]
},
"contentprotection": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ContentProtection",
"properties": {
"encodingId": {
"description": "UUID of an encoding",
"type": "string"
},
"muxingId": {
"description": "UUID of a muxing",
"type": "string"
},
"dependencyId": {
"description": "Used to signal a dependency with another representation. The representation may belong to a different adaptation set",
"type": "string"
},
"drmId": {
"description": "DRM Id",
"type": "string"
}
},
"required": [
"drmId",
"encodingId",
"muxingId"
]
}
},
"required": ["properties"]
}
}
}
},
"required": ["properties"]
}
}
},
"contentprotection": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ContentProtection",
"properties": {
"encodingId": {
"description": "UUID of an encoding",
"type": "string"
},
"muxingId": {
"description": "UUID of a muxing",
"type": "string"
},
"dependencyId": {
"description": "Used to signal a dependency with another representation. The representation may belong to a different adaptation set",
"type": "string"
},
"drmId": {
"description": "DRM Id",
"type": "string"
}
},
"required": [
"drmId",
"encodingId",
"muxingId"
]
}
},
"required": ["properties"]
}
}
}
},
"required": ["properties"]
}
}
},
"chunkedText": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DashChunkedTextRepresentation",
"properties": {
"encodingId": {
"description": "UUID of an encoding",
"type": "string"
},
"muxingId": {
"description": "UUID of a muxing",
"type": "string"
},
"dependencyId": {
"description": "Used to signal a dependency with another representation. The representation may belong to a different adaptation set",
"type": "string"
},
"type": {
"enum": [
"TEMPLATE",
"LIST",
"TIMELINE"
],
"type": "string"
},
"mode": {
"enum": [
"TEMPLATE_REPRESENTATION",
"TEMPLATE_ADAPTATION_SET"
],
"type": "string"
},
"segmentPath": {
"description": "Path to segments. Will be used as the representation id if the type is set to TEMPLATE_ADAPTATION_SET",
"type": "string"
},
"startSegmentNumber": {
"description": "Number of the first segment",
"type": "integer"
},
"endSegmentNumber": {
"description": "Number of the last segment. Default is the last one that was encoded",
"type": "integer"
},
"startKeyframeId": {
"description": "Id of the keyframe to start with. It takes precedence over startSegmentNumber",
"type": "string"
},
"endKeyframeId": {
"description": "Id of the keyframe to end with. It takes precedence over endSegmentNumber. The segment containing the end keyframe is not included in the representation.",
"type": "string"
}
},
"required": [
"segmentPath",
"type",
"encodingId",
"muxingId"
]
}
},
"required": ["properties"]
}
}
},
"cmaf": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DashCmafRepresentation",
"properties": {
"encodingId": {
"description": "UUID of an encoding",
"type": "string"
},
"muxingId": {
"description": "UUID of a muxing",
"type": "string"
},
"dependencyId": {
"description": "Used to signal a dependency with another representation. The representation may belong to a different adaptation set",
"type": "string"
},
"type": {
"enum": [
"TEMPLATE",
"LIST",
"TIMELINE"
],
"type": "string"
},
"mode": {
"enum": [
"TEMPLATE_REPRESENTATION",
"TEMPLATE_ADAPTATION_SET"
],
"type": "string"
},
"segmentPath": {
"description": "Path to segments. Will be used as the representation id if the type is set to TEMPLATE_ADAPTATION_SET",
"type": "string"
},
"startSegmentNumber": {
"description": "Number of the first segment",
"type": "integer"
},
"endSegmentNumber": {
"description": "Number of the last segment. Default is the last one that was encoded",
"type": "integer"
},
"startKeyframeId": {
"description": "Id of the keyframe to start with. It takes precedence over startSegmentNumber",
"type": "string"
},
"endKeyframeId": {
"description": "Id of the keyframe to end with. It takes precedence over endSegmentNumber. The segment containing the end keyframe is not included in the representation.",
"type": "string"
}
},
"required": [
"segmentPath",
"type",
"encodingId",
"muxingId"
]
},
"contentprotection": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ContentProtection",
"properties": {
"encodingId": {
"description": "UUID of an encoding",
"type": "string"
},
"muxingId": {
"description": "UUID of a muxing",
"type": "string"
},
"dependencyId": {
"description": "Used to signal a dependency with another representation. The representation may belong to a different adaptation set",
"type": "string"
},
"drmId": {
"description": "DRM Id",
"type": "string"
}
},
"required": [
"drmId",
"encodingId",
"muxingId"
]
}
},
"required": ["properties"]
}
}
}
},
"required": ["properties"]
}
}
},
"mp4": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DashMp4Representation",
"properties": {
"encodingId": {
"description": "UUID of an encoding",
"type": "string"
},
"muxingId": {
"description": "UUID of a muxing",
"type": "string"
},
"dependencyId": {
"description": "Used to signal a dependency with another representation. The representation may belong to a different adaptation set",
"type": "string"
},
"filePath": {
"description": "Path to the MP4 file",
"type": "string"
},
"type": {
"description": "The type of the dash representation",
"enum": [
"SEGMENT_BASE",
"SEGMENT_LIST"
],
"type": "string"
}
},
"required": [
"filePath",
"encodingId",
"muxingId"
]
},
"drm": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DashMp4DrmRepresentation",
"properties": {
"encodingId": {
"description": "UUID of an encoding",
"type": "string"
},
"muxingId": {
"description": "UUID of a muxing",
"type": "string"
},
"dependencyId": {
"description": "Used to signal a dependency with another representation. The representation may belong to a different adaptation set",
"type": "string"
},
"filePath": {
"description": "Path to the MP4 file",
"type": "string"
},
"type": {
"description": "The type of the dash representation",
"enum": [
"SEGMENT_BASE",
"SEGMENT_LIST"
],
"type": "string"
},
"drmId": {
"description": "DRM Id",
"type": "string"
}
},
"required": [
"drmId",
"filePath",
"encodingId",
"muxingId"
]
}
},
"required": ["properties"]
}
}
}
},
"required": ["properties"]
}
}
},
"webm": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DashWebmRepresentation",
"properties": {
"encodingId": {
"description": "UUID of an encoding",
"type": "string"
},
"muxingId": {
"description": "UUID of a muxing",
"type": "string"
},
"dependencyId": {
"description": "Used to signal a dependency with another representation. The representation may belong to a different adaptation set",
"type": "string"
},
"type": {
"enum": [
"TEMPLATE",
"LIST",
"TIMELINE"
],
"type": "string"
},
"mode": {
"enum": [
"TEMPLATE_REPRESENTATION",
"TEMPLATE_ADAPTATION_SET"
],
"type": "string"
},
"segmentPath": {
"description": "Path to segments. Will be used as the representation id if the type is set to TEMPLATE_ADAPTATION_SET",
"type": "string"
},
"startSegmentNumber": {
"description": "Number of the first segment",
"type": "integer"
},
"endSegmentNumber": {
"description": "Number of the last segment. Default is the last one that was encoded",
"type": "integer"
},
"startKeyframeId": {
"description": "Id of the keyframe to start with. It takes precedence over startSegmentNumber",
"type": "string"
},
"endKeyframeId": {
"description": "Id of the keyframe to end with. It takes precedence over endSegmentNumber. The segment containing the end keyframe is not included in the representation.",
"type": "string"
}
},
"required": [
"segmentPath",
"type",
"encodingId",
"muxingId"
]
},
"contentprotection": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ContentProtection",
"properties": {
"encodingId": {
"description": "UUID of an encoding",
"type": "string"
},
"muxingId": {
"description": "UUID of a muxing",
"type": "string"
},
"dependencyId": {
"description": "Used to signal a dependency with another representation. The representation may belong to a different adaptation set",
"type": "string"
},
"drmId": {
"description": "DRM Id",
"type": "string"
}
},
"required": [
"drmId",
"encodingId",
"muxingId"
]
}
},
"required": ["properties"]
}
}
}
},
"required": ["properties"]
}
}
},
"progressiveWebm": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "DashProgressiveWebmRepresentation",
"properties": {
"encodingId": {
"description": "UUID of an encoding",
"type": "string"
},
"muxingId": {
"description": "UUID of a muxing",
"type": "string"
},
"dependencyId": {
"description": "Used to signal a dependency with another representation. The representation may belong to a different adaptation set",
"type": "string"
},
"filePath": {
"description": "Path to the Progressive WebM file",
"type": "string"
}
},
"required": [
"filePath",
"encodingId",
"muxingId"
]
}
},
"required": ["properties"]
}
}
}
}
},
"contentprotection": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ContentProtection",
"properties": {
"encodingId": {
"description": "UUID of an encoding",
"type": "string"
},
"muxingId": {
"description": "UUID of a muxing",
"type": "string"
},
"dependencyId": {
"description": "Used to signal a dependency with another representation. The representation may belong to a different adaptation set",
"type": "string"
},
"drmId": {
"description": "DRM Id",
"type": "string"
}
},
"required": [
"drmId",
"encodingId",
"muxingId"
]
}
},
"required": ["properties"]
}
}
}
}
}
},
"required": ["properties"]
}
}
},
"start": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "StartManifestRequest",
"properties": {
"manifestGenerator": {
"description": "Major version of the manifest generator to be used. `V2` is the recommended option and requires the following minimum encoder versions:\n2.121.0 for DASH, 2.111.0 for HLS, 2.108.0 for SMOOTH. The default value depends on the sign-up date of your organization. See [documentation](https://developer.bitmovin.com/encoding/docs/manifest-generator-v2) page for a detailed explanation.\n",
"enum": ["LEGACY", "V2"],
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
}
}
},
"hls": {
"type": "object",
"properties": {
"defaultapi": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "HlsManifestDefault",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"type": {
"enum": ["DASH", "HLS", "SMOOTH_STREAMING"],
"type": "string"
},
"outputs": {
"description": "The outputs to store the manifest",
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"status": {
"description": "Current status",
"enum": [
"CREATED",
"QUEUED",
"RUNNING",
"FINISHED",
"ERROR",
"CANCELED",
"TRANSFER_ERROR"
],
"type": "string"
},
"manifestName": {
"description": "The filename of your manifest. If this is not set, the `name` is used as output file name. Either one of `name` or `manifestName` is required. Be aware that spaces will be replaced with underlines (`_`) on the output.",
"type": "string"
},
"hlsMediaPlaylistVersion": {
"description": "If this is set, the EXT-X-VERSION tags of the Media Playlists are set to the provided version",
"enum": ["3", "4", "5", "6", "7", "8"],
"type": "string"
},
"hlsMasterPlaylistVersion": {
"description": "If this is set, the EXT-X-VERSION tag of the Master Playlist is set to the provided version",
"enum": ["3", "4", "5", "6", "7", "8"],
"type": "string"
},
"channelsAttributeForAudio": {
"description": "Controls the behaviour of the CHANNELS attribute for the EXT-X-VERSION tag",
"enum": ["ALWAYS", "STANDARD_CONFORM", "LEGACY"],
"type": "string"
},
"targetDurationRoundingMode": {
"description": "The rounding applied to target duration.\nTwo possible rouding modes exist: NORMAL_ROUNDING, when the target duration is rounded to the nearest integer,\nor UPWARDS_ROUNDING, when the target duration is rounded to the highest integer.\n",
"enum": ["UPWARD_ROUNDING", "NORMAL_ROUNDING"],
"type": "string"
},
"encodingId": {
"description": "The id of the encoding to create a default manifest for",
"type": "string"
},
"version": {
"description": "Currently not in use",
"enum": ["V1"],
"type": "string"
}
},
"required": ["encodingId", "outputs"]
}
},
"required": ["properties"]
}
}
}
},
"patternProperties": {
"^(?!.*\\b(?:defaultapi)\\b)[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "HlsManifest",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"type": {
"enum": ["DASH", "HLS", "SMOOTH_STREAMING"],
"type": "string"
},
"outputs": {
"description": "The outputs to store the manifest",
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"status": {
"description": "Current status",
"enum": [
"CREATED",
"QUEUED",
"RUNNING",
"FINISHED",
"ERROR",
"CANCELED",
"TRANSFER_ERROR"
],
"type": "string"
},
"manifestName": {
"description": "The filename of your manifest. If this is not set, the `name` is used as output file name. Either one of `name` or `manifestName` is required. Be aware that spaces will be replaced with underlines (`_`) on the output.",
"type": "string"
},
"hlsMediaPlaylistVersion": {
"description": "If this is set, the EXT-X-VERSION tags of the Media Playlists are set to the provided version",
"enum": ["3", "4", "5", "6", "7", "8"],
"type": "string"
},
"hlsMasterPlaylistVersion": {
"description": "If this is set, the EXT-X-VERSION tag of the Master Playlist is set to the provided version",
"enum": ["3", "4", "5", "6", "7", "8"],
"type": "string"
},
"channelsAttributeForAudio": {
"description": "Controls the behaviour of the CHANNELS attribute for the EXT-X-VERSION tag",
"enum": ["ALWAYS", "STANDARD_CONFORM", "LEGACY"],
"type": "string"
},
"targetDurationRoundingMode": {
"description": "The rounding applied to target duration.\nTwo possible rouding modes exist: NORMAL_ROUNDING, when the target duration is rounded to the nearest integer,\nor UPWARDS_ROUNDING, when the target duration is rounded to the highest integer.\n",
"enum": ["UPWARD_ROUNDING", "NORMAL_ROUNDING"],
"type": "string"
}
},
"required": ["outputs"]
},
"streams": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "StreamInfo",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"audio": {
"description": "It MUST match the value of the GROUP-ID attribute of an Audio EXT-X-MEDIA tag elsewhere in the Master Playlist. Either this or `audioGroups` must be set.",
"type": "string"
},
"audioGroups": {
"type": "object",
"description": "HLS Audio Group Configuration. You will want to use this configuration property in case you specify conditions on audio streams. The first matching audio group will be used for the specific variant stream. Either this or `audio` must be set.",
"properties": {
"droppingMode": {
"description": "Dropping mode",
"enum": ["STREAM", "AUDIO"],
"type": "string"
},
"groups": {
"description": "Audio groups",
"items": {
"type": "object",
"title": "AudioGroup",
"properties": {
"name": {
"description": "Name of the audio group",
"type": "string"
},
"priority": {
"description": "Priority of the audio group",
"minimum": 0,
"maximum": 100,
"type": "integer"
}
},
"required": ["priority"]
},
"type": "array"
}
},
"required": ["droppingMode", "groups"]
},
"video": {
"description": "It MUST match the value of the GROUP-ID attribute of a Video EXT-X-MEDIA tag elsewhere in the Master Playlist",
"type": "string"
},
"subtitles": {
"description": "It MUST match the value of the GROUP-ID attribute of a Subtitles EXT-X-MEDIA tag elsewhere in the Master Playlist",
"type": "string"
},
"closedCaptions": {
"description": "If the value is not 'NONE', it MUST match the value of the GROUP-ID attribute of a Closed Captions EXT-X-MEDIA tag elsewhere in the Playlist",
"type": "string"
},
"encodingId": {
"description": "Id of the encoding.",
"type": "string"
},
"streamId": {
"description": "Id of the stream.",
"type": "string"
},
"muxingId": {
"description": "Id of the muxing.",
"type": "string"
},
"drmId": {
"description": "Id of the DRM.",
"type": "string"
},
"segmentPath": {
"description": "Path to segments.",
"type": "string"
},
"uri": {
"description": "The URI of the playlist file.",
"type": "string"
},
"startSegmentNumber": {
"description": "Number of the first segment. Default is 0.",
"type": "integer"
},
"endSegmentNumber": {
"description": "Number of the last segment. Default is the last one that was encoded.",
"type": "integer"
},
"forceFrameRateAttribute": {
"type": "boolean",
"description": "Force the addition of the frame rate attribute to all stream infos."
},
"forceVideoRangeAttribute": {
"type": "boolean",
"description": "Force the addition of the video-range attribute to all stream infos."
}
},
"required": [
"encodingId",
"muxingId",
"segmentPath",
"streamId",
"uri"
]
},
"customTags": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "CustomTag",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"positionMode": {
"description": "The positioning mode that should be used when inserting the placement opportunity",
"enum": ["KEYFRAME", "TIME", "SEGMENT"],
"type": "string"
},
"keyframeId": {
"description": "Id of keyframe where the custom tag should be inserted. Required, when KEYFRAME is selected as position mode.",
"type": "string"
},
"time": {
"description": "Time in seconds where the custom tag should be inserted. Required, when TIME is selected as position mode.",
"format": "double",
"type": "number"
},
"segment": {
"description": "The custom tag will be inserted before the specified segment. Required, when SEGMENT is selected as position mode.",
"type": "integer"
},
"data": {
"description": "The data to be contained in the custom tag.",
"type": "string"
}
},
"required": ["data", "positionMode"]
}
},
"required": ["properties"]
}
}
},
"iframe": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "IFramePlaylist",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"filename": {
"description": "The filename of your I-frame playlist",
"type": "string"
}
},
"required": ["filename"]
}
},
"required": ["properties"]
}
}
}
},
"required": ["properties"]
}
}
},
"media": {
"type": "object",
"properties": {
"customTags": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "CustomTag",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"positionMode": {
"description": "The positioning mode that should be used when inserting the placement opportunity",
"enum": ["KEYFRAME", "TIME", "SEGMENT"],
"type": "string"
},
"keyframeId": {
"description": "Id of keyframe where the custom tag should be inserted. Required, when KEYFRAME is selected as position mode.",
"type": "string"
},
"time": {
"description": "Time in seconds where the custom tag should be inserted. Required, when TIME is selected as position mode.",
"format": "double",
"type": "number"
},
"segment": {
"description": "The custom tag will be inserted before the specified segment. Required, when SEGMENT is selected as position mode.",
"type": "integer"
},
"data": {
"description": "The data to be contained in the custom tag.",
"type": "string"
}
},
"required": ["data", "positionMode"]
}
},
"required": ["properties"]
}
}
},
"video": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "VideoMediaInfo",
"properties": {
"groupId": {
"description": "The value is a quoted-string which specifies the group to which the Rendition belongs.",
"type": "string"
},
"language": {
"description": "Primary language in the rendition.",
"type": "string"
},
"assocLanguage": {
"description": "Identifies a language that is associated with the Rendition.",
"type": "string"
},
"name": {
"description": "Human readable description of the rendition.",
"type": "string"
},
"isDefault": {
"type": "boolean",
"description": "If set to true, the client SHOULD play this Rendition of the content in the absence of information from the user."
},
"autoselect": {
"type": "boolean",
"description": "If set to true, the client MAY choose to play this Rendition in the absence of explicit user preference."
},
"characteristics": {
"description": "Contains Uniform Type Identifiers",
"items": {
"type": "string"
},
"type": "array"
},
"segmentPath": {
"description": "Path to segments.",
"type": "string"
},
"encodingId": {
"description": "Id of the encoding.",
"type": "string"
},
"streamId": {
"description": "Id of the stream.",
"type": "string"
},
"muxingId": {
"description": "Id of the muxing.",
"type": "string"
},
"drmId": {
"description": "Id of the DRM.",
"type": "string"
},
"startSegmentNumber": {
"description": "Number of the first segment. Default is 0.",
"type": "integer"
},
"endSegmentNumber": {
"description": "Number of the last segment. Default is the last one that was encoded.",
"type": "integer"
},
"uri": {
"description": "The URI of the Rendition",
"type": "string"
}
},
"required": [
"uri",
"encodingId",
"muxingId",
"segmentPath",
"streamId",
"groupId"
]
}
},
"required": ["properties"]
}
}
},
"audio": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "AudioMediaInfo",
"properties": {
"groupId": {
"description": "The value is a quoted-string which specifies the group to which the Rendition belongs.",
"type": "string"
},
"language": {
"description": "Primary language in the rendition.",
"type": "string"
},
"assocLanguage": {
"description": "Identifies a language that is associated with the Rendition.",
"type": "string"
},
"name": {
"description": "Human readable description of the rendition.",
"type": "string"
},
"isDefault": {
"type": "boolean",
"description": "If set to true, the client SHOULD play this Rendition of the content in the absence of information from the user."
},
"autoselect": {
"type": "boolean",
"description": "If set to true, the client MAY choose to play this Rendition in the absence of explicit user preference."
},
"characteristics": {
"description": "Contains Uniform Type Identifiers",
"items": {
"type": "string"
},
"type": "array"
},
"segmentPath": {
"description": "Path to segments.",
"type": "string"
},
"encodingId": {
"description": "Id of the encoding.",
"type": "string"
},
"streamId": {
"description": "Id of the stream.",
"type": "string"
},
"muxingId": {
"description": "Id of the muxing.",
"type": "string"
},
"drmId": {
"description": "Id of the DRM.",
"type": "string"
},
"startSegmentNumber": {
"description": "Number of the first segment. Default is 0.",
"type": "integer"
},
"endSegmentNumber": {
"description": "Number of the last segment. Default is the last one that was encoded.",
"type": "integer"
},
"uri": {
"description": "The URI of the Rendition",
"type": "string"
},
"forced": {
"type": "boolean",
"description": "A value of true indicates that the Rendition contains content which is considered essential to play."
}
},
"required": [
"uri",
"encodingId",
"muxingId",
"segmentPath",
"streamId",
"groupId"
]
}
},
"required": ["properties"]
}
}
},
"subtitles": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SubtitlesMediaInfo",
"properties": {
"groupId": {
"description": "The value is a quoted-string which specifies the group to which the Rendition belongs.",
"type": "string"
},
"language": {
"description": "Primary language in the rendition.",
"type": "string"
},
"assocLanguage": {
"description": "Identifies a language that is associated with the Rendition.",
"type": "string"
},
"name": {
"description": "Human readable description of the rendition.",
"type": "string"
},
"isDefault": {
"type": "boolean",
"description": "If set to true, the client SHOULD play this Rendition of the content in the absence of information from the user."
},
"autoselect": {
"type": "boolean",
"description": "If set to true, the client MAY choose to play this Rendition in the absence of explicit user preference."
},
"characteristics": {
"description": "Contains Uniform Type Identifiers",
"items": {
"type": "string"
},
"type": "array"
},
"segmentPath": {
"description": "Path to segments.",
"type": "string"
},
"encodingId": {
"description": "Id of the encoding.",
"type": "string"
},
"streamId": {
"description": "Id of the stream.",
"type": "string"
},
"muxingId": {
"description": "Id of the muxing.",
"type": "string"
},
"drmId": {
"description": "Id of the DRM.",
"type": "string"
},
"startSegmentNumber": {
"description": "Number of the first segment. Default is 0.",
"type": "integer"
},
"endSegmentNumber": {
"description": "Number of the last segment. Default is the last one that was encoded.",
"type": "integer"
},
"uri": {
"description": "The URI of the Rendition",
"type": "string"
},
"forced": {
"type": "boolean",
"description": "A value of true indicates that the Rendition contains content which is considered essential to play."
}
},
"required": [
"uri",
"encodingId",
"muxingId",
"segmentPath",
"streamId",
"groupId"
]
}
},
"required": ["properties"]
}
}
},
"vtt": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "VttMediaInfo",
"properties": {
"groupId": {
"description": "The value is a quoted-string which specifies the group to which the Rendition belongs.",
"type": "string"
},
"language": {
"description": "Primary language in the rendition.",
"type": "string"
},
"assocLanguage": {
"description": "Identifies a language that is associated with the Rendition.",
"type": "string"
},
"name": {
"description": "Human readable description of the rendition.",
"type": "string"
},
"isDefault": {
"type": "boolean",
"description": "If set to true, the client SHOULD play this Rendition of the content in the absence of information from the user."
},
"autoselect": {
"type": "boolean",
"description": "If set to true, the client MAY choose to play this Rendition in the absence of explicit user preference."
},
"characteristics": {
"description": "Contains Uniform Type Identifiers",
"items": {
"type": "string"
},
"type": "array"
},
"vttUrl": {
"description": "The URL of the referenced VTT file",
"type": "string"
},
"uri": {
"description": "The URI of the Rendition",
"type": "string"
},
"forced": {
"type": "boolean",
"description": "A value of true indicates that the Rendition contains content which is considered essential to play."
}
},
"required": ["uri", "vttUrl", "groupId"]
}
},
"required": ["properties"]
}
}
},
"closedCaptions": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "ClosedCaptionsMediaInfo",
"properties": {
"groupId": {
"description": "The value is a quoted-string which specifies the group to which the Rendition belongs.",
"type": "string"
},
"language": {
"description": "Primary language in the rendition.",
"type": "string"
},
"assocLanguage": {
"description": "Identifies a language that is associated with the Rendition.",
"type": "string"
},
"name": {
"description": "Human readable description of the rendition.",
"type": "string"
},
"isDefault": {
"type": "boolean",
"description": "If set to true, the client SHOULD play this Rendition of the content in the absence of information from the user."
},
"autoselect": {
"type": "boolean",
"description": "If set to true, the client MAY choose to play this Rendition in the absence of explicit user preference."
},
"characteristics": {
"description": "Contains Uniform Type Identifiers",
"items": {
"type": "string"
},
"type": "array"
},
"segmentPath": {
"description": "Path to segments.",
"type": "string"
},
"encodingId": {
"description": "Id of the encoding.",
"type": "string"
},
"streamId": {
"description": "Id of the stream.",
"type": "string"
},
"muxingId": {
"description": "Id of the muxing.",
"type": "string"
},
"drmId": {
"description": "Id of the DRM.",
"type": "string"
},
"startSegmentNumber": {
"description": "Number of the first segment. Default is 0.",
"type": "integer"
},
"endSegmentNumber": {
"description": "Number of the last segment. Default is the last one that was encoded.",
"type": "integer"
},
"instreamId": {
"description": "Specifies a Rendition within the segments in the Media Playlist. (See HLS spec 4.3.4.1. EXT-X-MEDIA INSTREAM-ID)",
"type": "string"
},
"forced": {
"type": "boolean",
"description": "A value of true indicates that the Rendition contains content which is considered essential to play."
}
},
"required": [
"instreamId",
"encodingId",
"muxingId",
"segmentPath",
"streamId",
"groupId"
]
}
},
"required": ["properties"]
}
}
}
}
},
"start": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "StartManifestRequest",
"properties": {
"manifestGenerator": {
"description": "Major version of the manifest generator to be used. `V2` is the recommended option and requires the following minimum encoder versions:\n2.121.0 for DASH, 2.111.0 for HLS, 2.108.0 for SMOOTH. The default value depends on the sign-up date of your organization. See [documentation](https://developer.bitmovin.com/encoding/docs/manifest-generator-v2) page for a detailed explanation.\n",
"enum": ["LEGACY", "V2"],
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
}
}
},
"smooth": {
"type": "object",
"properties": {
"defaultapi": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SmoothManifestDefault",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"type": {
"enum": ["DASH", "HLS", "SMOOTH_STREAMING"],
"type": "string"
},
"outputs": {
"description": "The outputs to store the manifest",
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"status": {
"description": "Current status",
"enum": [
"CREATED",
"QUEUED",
"RUNNING",
"FINISHED",
"ERROR",
"CANCELED",
"TRANSFER_ERROR"
],
"type": "string"
},
"serverManifestName": {
"description": "Filename of the server manifest",
"type": "string"
},
"clientManifestName": {
"description": "Filename of the client manifest",
"type": "string"
},
"encodingId": {
"description": "The id of the encoding to create a default manifest for",
"type": "string"
},
"version": {
"description": "Currently not in use",
"enum": ["V1"],
"type": "string"
}
},
"required": ["encodingId", "outputs"]
}
},
"required": ["properties"]
}
}
}
},
"patternProperties": {
"^(?!.*\\b(?:defaultapi)\\b)[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SmoothStreamingManifest",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"type": {
"enum": ["DASH", "HLS", "SMOOTH_STREAMING"],
"type": "string"
},
"outputs": {
"description": "The outputs to store the manifest",
"items": {
"type": "object",
"title": "EncodingOutput",
"properties": {
"outputId": {
"description": "Id of the corresponding output",
"type": "string"
},
"outputPath": {
"description": "Subdirectory where to save the files to",
"type": "string"
},
"acl": {
"description": "Determines accessibility of files written to this output. Only applies to output types that support ACLs. Defaults to PUBLIC_READ if the list is empty. The destination (e.g. cloud storage bucket) needs to allow the configured ACL",
"items": {
"type": "object",
"title": "AclEntry",
"properties": {
"scope": {
"description": "Deprecation notice: The value of this property is not being used. It can be chosen arbitrarily or not set at all",
"type": "string"
},
"permission": {
"enum": ["PUBLIC_READ", "PRIVATE"],
"type": "string"
}
},
"required": ["permission"]
},
"type": "array"
}
},
"required": ["outputId", "outputPath"]
},
"type": "array"
},
"status": {
"description": "Current status",
"enum": [
"CREATED",
"QUEUED",
"RUNNING",
"FINISHED",
"ERROR",
"CANCELED",
"TRANSFER_ERROR"
],
"type": "string"
},
"serverManifestName": {
"description": "Filename of the server manifest",
"type": "string"
},
"clientManifestName": {
"description": "Filename of the client manifest",
"type": "string"
}
},
"required": ["outputs"]
},
"representations": {
"type": "object",
"properties": {
"mp4": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SmoothStreamingRepresentation",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"encodingId": {
"description": "Id of the encoding",
"type": "string"
},
"muxingId": {
"description": "Id of the muxing.",
"type": "string"
},
"mediaFile": {
"description": "The Smooth Streaming ismv or isma file that will be referenced in the manifest.",
"type": "string"
},
"language": {
"description": "Language of the MP4 file",
"type": "string"
},
"trackName": {
"description": "Track where this MP4 shoudl be added",
"type": "string"
},
"priority": {
"description": "Specifies the priority of this representation. In the manifest, representations will appear ordered by descending priority values.",
"type": "integer"
}
},
"required": [
"encodingId",
"mediaFile",
"muxingId"
]
}
},
"required": ["properties"]
}
}
}
}
},
"contentprotection": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "SmoothManifestContentProtection",
"properties": {
"name": {
"description": "Name of the resource. Can be freely chosen by the user.",
"type": "string"
},
"description": {
"description": "Description of the resource. Can be freely chosen by the user.",
"type": "string"
},
"customData": {
"type": "object",
"description": "User-specific meta data. This can hold anything."
},
"encodingId": {
"description": "Id of the encoding.",
"type": "string"
},
"muxingId": {
"description": "Id of the muxing.",
"type": "string"
},
"drmId": {
"description": "Id of the drm.",
"type": "string"
}
},
"required": ["drmId", "encodingId", "muxingId"]
}
},
"required": ["properties"]
}
}
},
"start": {
"type": "object",
"patternProperties": {
"^[A-Za-z0-9_-]+$": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"title": "StartManifestRequest",
"properties": {
"manifestGenerator": {
"description": "Major version of the manifest generator to be used. `V2` is the recommended option and requires the following minimum encoder versions:\n2.121.0 for DASH, 2.111.0 for HLS, 2.108.0 for SMOOTH. The default value depends on the sign-up date of your organization. See [documentation](https://developer.bitmovin.com/encoding/docs/manifest-generator-v2) page for a detailed explanation.\n",
"enum": ["LEGACY", "V2"],
"type": "string"
}
}
}
},
"required": ["properties"]
}
}
}
}
}
}
}
}
}
},
"required": ["metadata", "encodings"],
"type": "object"
}