diff --git a/adengine/assets/img/codemill_preview.png b/adengine/assets/img/codemill_preview.png new file mode 100644 index 000000000000..c2dc91f22c36 Binary files /dev/null and b/adengine/assets/img/codemill_preview.png differ diff --git a/adengine/how-to/cloud-preview.md b/adengine/how-to/cloud-preview.md new file mode 100644 index 000000000000..1be6b70c6b06 --- /dev/null +++ b/adengine/how-to/cloud-preview.md @@ -0,0 +1,412 @@ +--- +sidebar_position: 8 +--- + +# Cloud Preview + +There is typically a significant difference between high-quality media masters and content intended for streaming. Media masters are not only extremely high bitrate, but are often stored in formats (for example, QuickTime ProRes) that are not streamable. + +The OptiView Ad Engine can be used to generate **cloud-based previews** of these media assets, enabling immediate playback without the need to generate or store intermediate proxy files. Previews are created **just in time**, meaning you only pay for the portions of content you actually view. This is particularly valuable in quality-control (QC) workflows, where reviewers may only need to examine small sections of a longer asset. + +Cloud Preview output is compatible with any HLS-capable player. In addition, Dolby provides built-in support for the following multi-track players: + +- **Codemill Accurate Player** — https://www.codemill.com +- **Omakase Player** — https://player.byomakase.org + +--- + +## Supported Endpoints + +The Cloud Preview API exposes three endpoints: + +- `https://api.galaxy.dolbyrasp.com/cloud-preview/hls` +- `https://api.galaxy.dolbyrasp.com/cloud-preview/codemill` +- `https://api.galaxy.dolbyrasp.com/cloud-preview/omakase` + +In the body of your request, you submit a JSON payload that specifies the desired output. + +- The **HLS** endpoint returns a standard M3U8 playlist that can be played in any web-based HLS player. +- The **Codemill** endpoint returns a JSON template that can be used to launch the Codemill Accurate Player. +- The **Omakase** endpoint returns a JSON template that can be used to launch the Omakase Player. + +Dolby provides hosted versions of these players for testing and evaluation. + +--- + +## Media Timeline + +The Codemill and Omakase players provide a synchronized media timeline that aligns video, audio, and subtitle playback. The Ad Engine generates all supporting assets required for this experience, including thumbnails, waveforms, and HLS media. + +The timeline allows users to scrub through content efficiently, validating video quality and verifying audio and subtitle synchronization. + +![Codemill Preview](../assets/img/codemill_preview.png) + +--- + +## Implicit and Explicit Configuration + +The Ad Engine Cloud Preview supports two configuration styles: **explicit** and **implicit**. + +### Explicit Configuration + +With an explicit configuration, you know your source files and want to specify exactly how they should be interpreted. For example, if you have a master WAV file containing six mono audio tracks, that audio could represent either a 5.1 surround mix or three stereo language tracks. With explicit configuration, you define precisely how each track should be handled. + +Explicit configuration assumes detailed knowledge of the source. If the requested output cannot be created from the provided inputs, the request will fail. For example, if you specify an output that requires audio tracks but the source contains no audio, an error will be returned. + +The basic structure of an explicitly configured JSON payload is: + +```json +{ + "urls": [ + ], + "map": { + }, + "outputs": [ + "encode_profile": { + } + ], + "options": { + } +} +``` + +- **urls**: The source content to preview, including video, audio, subtitles, metadata, and related assets. +- **map**: How the source content should be interpreted (for example, which tracks map to which outputs). +- **outputs**: The outputs to be created (for example, SDR and HDR outputs, multiple languages, or multiple bitrates). +- **encode_profile**: The encoding parameters applied to each output. +- **options**: Additional settings that control preview behavior (for example, timecode handling or waveform generation). + +### Implicit Configuration + +With an implicit configuration, the Ad Engine infers mappings and outputs based on the supplied assets and output templates. You define templates with selection criteria, and the Ad Engine determines which templates apply to the provided sources. + +This approach is useful when you want a single API call to work across a wide variety of inputs without knowing the source structure in advance. Selectors behave like conditional rules: if the source matches the selector criteria, the corresponding output is created. + +In an implicit configuration, you do not need to know how many audio tracks a source contains, or whether certain components are present at all. The output is generated dynamically based on the templates. + +The basic structure of an implicitly configured JSON payload is: + +```json +{ + "urls": [], + "output_templates": [ + { + "selectors": [], + "encode_profile": {} + } + ], + "options": {} +} +``` + +- **urls**: The source content to preview. +- **output_templates**: Templates that describe potential outputs. +- **selectors**: Criteria that determine when a template should be applied. +- **encode_profile**: Encoding parameters for each template. +- **options**: Additional preview behavior settings. + +--- + +## Explicit Configuration Example + +```json +{ + "urls": [ + { + "url": "https://my_bucket/my_folder/ProRes_Master_Video.mov", + "id": "v0" + }, + { + "url": "https://my_bucket/my_folder/DoVi_metadata.xml", + "id": "m0" + }, + { + "url": "https://my_bucket/my_folder/English_stereoe.wav", + "id": "a0" + }, + { + "url": "https://my_bucket/my_folder/French_stereo.mov", + "id": "a1" + }, + { + "url": "https://my_bucket/my_folder/English_subtitles.stl", + "id": "s0" + } + ], + "map": { + "video": [ + { + "url_id": "v0", + "dolby_vision_metadata_id": "m0" + } + ], + "audio": [ + { + "url_id": "a0" + }, + { + "url_id": "a1" + } + ], + "subtitle": [ + { + "url_id": "s0" + } + ] + }, + "outputs": [ + { + "name": "SDR", + "encode_profile": { + "container": { + "kind": "hls/fmp4" + }, + "video": { + "height": 720, + "width": 1280, + "bitrate_mode": "crf", + "crf": 19, + "max_bitrate_kb": 8000, + "codec": "h264", + "range": "sdr", + "preset": "veryfast" + }, + "audio": [ + { + "name": "english", + "language": "eng", + "codec": "aac", + "bitrate_kb": 128, + "channels": 2 + }, + { + "name": "french", + "language": "fre", + "codec": "aac", + "bitrate_kb": 128, + "channels": 2 + } + ], + "subtitle": [ + { + "name": "subtitle_english", + "codec": "webvtt" + } + ] + } + } + ], + "options": { + "use_source_start_timecode": true, + "show_dolby_vision_metadate_markers": true + } +} +``` + +In this example, the source URL array includes a video file, two audio files, a subtitle file, and a Dolby Vision metadata file. The `map` section specifies how these sources should be interpreted. For example, the audio configuration defines two output tracks—one English and one French. The `outputs` section then defines how those inputs are encoded into a streamable preview. + +--- + +## Complex Audio Mapping + +The `map` section can also be used for more complex audio scenarios. For example, consider a case where you have three audio sources: one surround file containing six mono tracks and two additional stereo files. If the desired output consists of one surround track and two stereo tracks, the mapping must explicitly define how individual mono channels are combined. + +```json + "map": { + "video": [ + { + "url_id": "v0", + "dolby_vision_metadata_id": "m0" + } + ], + "audio": [ + { + "id": "english_surround", + "channels": [ + { + "url_id": "a0", + "track_idx": 0, + "channel_idx": 0 + }, + { + "url_id": "a0", + "track_idx": 1, + "channel_idx": 0 + }, + { + "url_id": "a0", + "track_idx": 2, + "channel_idx": 0 + }, + { + "url_id": "a0", + "track_idx": 3, + "channel_idx": 0 + }, + { + "url_id": "a0", + "track_idx": 4, + "channel_idx": 0 + }, + { + "url_id": "a0", + "track_idx": 5, + "channel_idx": 0 + } + ] + }, + { + "url_id": "a1", + "track_idx": 0 + }, + { + "url_id": "a2", + "track_idx": 0 + } + ], + "subtitle": [ + { + "url_id": "s0" + }, + { + "url_id": "s1" + } + ] + } +``` + +--- + +## Implicit Configuration Example + +In this example, the source assets may include any combination of video, audio, and subtitle files. If the source video is HDR, the templates instruct the system to generate both SDR and Dolby Vision outputs. Audio templates handle mono, stereo, and surround variants, and all subtitle formats are converted to WebVTT. This approach allows Cloud Preview to be used without prior knowledge of the source asset structure. But, if the source was a .wav file with 6 mono tracks, it would always be displayed and played as 6 discrete tracks. In the implicit configuration, you don't have a mechanism to remap discrete tracks into channels - for that you have to use the explicit configuration. + +```json +{ + "urls": [ + { + "url": "https://my_bucket/my_folder/my_video.mov" + }, + { + "url": "https://my_bucket/my_folder/English_stereo.wav" + }, + { + "url": "https://my_bucket/my_folder/English_subtitles.stl" + } + ], + "output_templates": [ + { + "type": "video", + "name": "sdr", + "selectors": [ + { + "range": "sdr" + }, + { + "range": "dolby_vision_5" + }, + { + "range": "hdr10" + } + ], + "encode_profile": { + "video": { + "height": 720, + "width": 1280, + "bitrate_mode": "crf", + "crf": 19, + "max_bitrate_kb": 8000, + "codec": "h264", + "range": "sdr", + "preset": "veryfast" + } + } + }, + { + "type": "video", + "name": "hdr", + "selectors": [ + { + "range": "dolby_vision_5" + }, + { + "range": "hdr10" + } + ], + "encode_profile": { + "video": { + "height": 720, + "width": 1280, + "bitrate_mode": "crf", + "crf": 19, + "max_bitrate_kb": 8000, + "codec": "h265", + "range": "dolby_vision_5", + "preset": "veryfast" + } + } + }, + { + "type": "audio", + "selectors": [ + { + "channels": 1 + } + ], + "encode_profile": { + "audio": { + "codec": "aac", + "bitrate_kb": 96, + "channels": 1 + } + } + }, + { + "type": "audio", + "selectors": [ + { + "channels": 2 + } + ], + "encode_profile": { + "audio": { + "codec": "aac", + "bitrate_kb": 128, + "channels": 2 + } + } + }, + { + "type": "audio", + "selectors": [ + { + "channels": 6 + } + ], + "encode_profile": { + "audio": { + "codec": "aac", + "bitrate_kb": 256, + "channels": 6 + } + } + }, + { + "type": "subtitle", + "selectors": [ + { + "codec_name": "*" + } + ], + "encode_profile": { + "subtitle": { + "codec": "webvtt" + } + } + } + ], + "options": { + "use_source_start_timecode": true + } +} +``` diff --git a/adengine/how-to/image.md b/adengine/how-to/image.md new file mode 100644 index 000000000000..933db43caa72 --- /dev/null +++ b/adengine/how-to/image.md @@ -0,0 +1,81 @@ +--- +sidebar_position: 10 +sidebar_label: Image +--- + +# Image Generation + +The **Image API** provides a simple way to extract a single image frame from a media asset stored in the cloud. It is commonly used to generate images without downloading or transcoding the full media file. + +The image is captured at a specific position in the source video and returned in a standard image format. + +## Use Cases + +The Image API is typically used to: + +- Generate thumbnail images for media assets +- Create preview frames for asset browsers or dashboards +- Perform quick visual verification of content +- Support quality control and asset review workflows +- Extract still frames without creating intermediate proxies + +This endpoint is optimized for **fast, lightweight, on-demand image extraction**. + +## Image API + +The Image API is accessed using an HTTP GET request with query parameters. + +``` +GET https://api.galaxy.dolbyrasp.com/image?url=https://my_bucket/my_folder/my_file.mxf&format=png&height=280 +``` + +### Required Query Parameters + +- **url** + The URL of the media file to extract the image from. + +### Optional Query Parameters + +- **format** + The image format to return. + Supported values: `jpeg`, `png` + Default: `jpeg` + +- **width** + The desired width of the image in pixels. + If not specified, the width is calculated based on the source dimensions. If only width is specified, height is calculated from the source aspect ratio. + +- **height** + The desired height of the image in pixels. + If not specified, the height is calculated based on the source dimensions. If only height is specified, width is calculated from the source aspect ratio. + +- **offset_percent** + The percentage offset into the video where the image should be captured. + Range: `0–100` + Default: `10` + +- **credentials_key** + The key of stored credentials to use when accessing the media URL. + +### Using Credentials + +Typically, cloud content is not publicly accessable. If the provided `url` is an encrypted link, remember to use `encodeURI()` to encode the URL inside the GET call. If you have registered cloud credentials with the Dolby OptiView Engine, you can reference those credentials in the call. + +``` +GET https://api.galaxy.dolbyrasp.com/image?url=s3://my_bucket/my_folder/my_file.mxf&format=png&height=280&credentials_key=my_s3_creds +``` + +## Response + +The response is a binary image returned directly in the requested format. + +- `Content-Type: image/jpeg` or `image/png` +- The response body contains the image data + +This endpoint does not return JSON metadata; the response payload is the image itself. + +## Notes + +- The Image API is read-only and does not modify the source asset. +- The exact frame captured depends on source encoding and GOP structure. +- Width and height constraints are validated by the service. diff --git a/adengine/how-to/media-info.md b/adengine/how-to/media-info.md new file mode 100644 index 000000000000..bc70b7a2709a --- /dev/null +++ b/adengine/how-to/media-info.md @@ -0,0 +1,101 @@ +--- +sidebar_position: 9 +--- + +# Media Info + +The **Media Info** endpoint provides a fast, normalized view of the technical characteristics of a media asset stored in the cloud. The Media Info API inspects a media file and returns a structured JSON response describing the container, duration, bitrate, and all detected tracks (video, audio, timecode, and others). + +## Use Cases + +The Media Info API is commonly used to: + +- Inspect unfamiliar or third-party assets +- Validate source media before encoding or preview +- Drive conditional logic in automated workflows +- Confirm track counts, codecs, and durations +- Extract timecode and technical metadata for QC + +It is often used as a **first step** before invoking preview, encoding, or ad-processing APIs. + +## Media Info Endpoint + +The Media Info endpoint is accessed using a simple HTTP GET request. You provide an accessible media URL as a query parameter. + +``` +https://api.galaxy.dolbyrasp.com/media-info?url=https://my_bucket/my_folder/my_file.mov +``` + +The response is returned as normalized JSON, making it easy to consume programmatically or inspect manually. + +If the `url` is an encrypted link, make sure to use encodeURIComponent() to modify the `url` so that it can be correctly handled by the GET call. + +## Media Info Response + +The Media Info response is divided into two main sections: + +- **file** — container-level metadata about the asset +- **tracks** — an array describing each detected track + +The `file` object summarizes the overall media asset: + +```json +{ + "file": { + "id": "file0", + "name": "my_file.mov", + "path": "https://my_bucket.s3.us-east-1.amazonaws.com/", + "format": "QuickTime / MOV", + "last_modified": "Mon, 05 Aug 2024 19:58:46 GMT", + "size_bytes": 948427028, + "bitrate_kb": 66849.5, + "duration_sec": "113.500000", + "video_tracks": 1, + "audio_tracks": 1, + "timecode_tracks": 1 + } +} +``` + +### Key Fields + +- **name** – File name extracted from the URL +- **format** – Container format +- **size_bytes** – File size in bytes +- **bitrate_kb** – Average bitrate of the asset +- **duration_sec** – Duration of the file in seconds +- **video_tracks / audio_tracks / timecode_tracks** – Track counts by type + +The `tracks` array provides detailed information about each individual track detected in the file. + +```json +{ + "tracks": [ + { + "kind": "video", + "codec": "prores", + "duration": 113.5, + "bitrate_kb": 65312.4, + "width": 1920, + "height": 1080, + "frame_rate": "24/1", + "range": "sdr" + }, + { + "kind": "audio", + "codec": "pcm_s16le", + "duration": 113.5, + "bitrate_kb": 1536, + "sample_rate": 48000, + "channels": 2, + "channel_layout": "stereo", + "channel_placement": "FL FR" + }, + { + "kind": "timecode", + "duration": 113.5, + "start_timecode": "01:00:00:00" + } + ] +} +``` diff --git a/adengine/how-to/quality-control.md b/adengine/how-to/quality-control.md index 927a3ef7710d..919016816595 100644 --- a/adengine/how-to/quality-control.md +++ b/adengine/how-to/quality-control.md @@ -2,7 +2,7 @@ sidebar_position: 6 --- -# Quality Control +# Ad Quality Control One of the realities of ads is that there are many instances where the ad source can be problematic. These types of problems can include things like too long duration, too short duration, too small dimensions, too low of a bitrate, etc. A bad ad can look bad, sound bad, or simply stall your player, so it is important to verify the quality of the ad. @@ -75,4 +75,4 @@ The Ad Engine inlcludes both source and output QC. The `pre` object defines the ### QC Conditions -The QC `conditions` is an object that defines `pass` and `fail` conditions. You can define a condition either as a `pass` condition that must be true, or a `fail` condition that will generate a failure. In our above example, we are using the `pass` condition -- meaning that each condition must evaluate to `true` in order for the file to pass QC. The QC decision can be defined by a [math.js](https://mathjs.org/) string, which allows for complex operations if needed. +The QC `conditions` is an object that defines `pass` and `fail` conditions. You can define a condition either as a `pass` condition that must be true, or a `fail` condition that will generate a failure. In our above example, we are using the `pass` condition -- meaning that each condition must evaluate to `true` in order for the file to pass QC. The QC decision can be defined by a `math.js` string, which allows for complex operations if needed. diff --git a/adengine/index.mdx b/adengine/index.mdx index a7e770258a07..7de754c2f117 100644 --- a/adengine/index.mdx +++ b/adengine/index.mdx @@ -71,3 +71,16 @@ VAST files typically reference the ad master stored on the ad server. The OptiVi The Ad Engine can be used as part of the OptiView suite of services, including the OptiView Player, Streaming, and Ads. The Ad Engine facilitates preparing ads for any scenario, including Server-Guided Ad Insertion (SGAI). The low latency of the Ad Engine is particularly important when the OptiView Player is getting ads directly without them being stitched into the stream by the streaming engine. OptiView Ads manages the ad signaling and coordination between the various components. Here is an outline of the architecture in this scenario: ![OptiView Ad Engine Architecture](./assets/img/ad-engine-sgai-ad-insertion.svg) + +### Cloud Preview Capabilities + +In addition to rapid ad processing, the Ad Engine can generate **cloud-based previews** of media assets that are not natively streamable. A common use case is previewing high-quality master files encoded in formats such as Dolby Vision and Dolby Atmos. These master assets often have extremely high bitrates (for example, 800 Mbps or more) and are therefore unsuitable for direct streaming. + +The Ad Engine addresses this by **transcoding master files on-the-fly into streamable formats**, enabling immediate playback in a web browser. This allows customers to perform quality control directly in the cloud, without the need to generate or store intermediate proxy files. + +Cloud Preview output is compatible with any HLS-capable player. In addition, Dolby provides built-in support for the following multi-track players: + +- **Codemill Accurate Player** — https://www.codemill.com +- **Omakase Player** — https://player.byomakase.org + +These multi-track players allow you to view multiple video, audio, and sub-title files in a single timeline with video thumbnails and audio waveforms. diff --git a/adengine/static/ad-engine.yaml b/adengine/static/ad-engine.yaml index ec763e43b43b..98a8de26af94 100644 --- a/adengine/static/ad-engine.yaml +++ b/adengine/static/ad-engine.yaml @@ -2,19 +2,25 @@ openapi: 3.0.3 info: title: Dolby OptiView Ad Engine version: 1.0.0 +servers: +- url: https://api.galaxy.dolbyrasp.com paths: /ad-engine/profile: post: - summary: Create Ad Profile + operationId: create-ad-profile tags: - Ad Engine + summary: Create Ad Profile description: Creates an ad encoding profile. + responses: + '200': + description: OK requestBody: required: true content: application/json: schema: - $id: http://dolbyrasp.com/schemas/apigw/dae.profile.body + $id: http://dolbyrasp.com/schemas/apigw/dae.profile.post.body type: object properties: encode_profile: @@ -57,6 +63,9 @@ paths: anyOf: - type: object properties: + id: + type: string + description: An ID for the video layer. width: type: integer description: Width of the output video. @@ -180,9 +189,6 @@ paths: - compatibility_group additionalProperties: false description: Object with parameters controlling HLS audio layer affinities. - ffmpeg_cli_insert: - type: string - description: The FFmpeg command line arguments to be used. Note that these will override competing settings in the JSON. dar: oneOf: - type: string @@ -483,7 +489,10 @@ paths: type: number description: Fade-out time (in seconds) of the overlay. additionalProperties: false - - properties: + - title: Color Convert + x-apps: + - core-api + properties: kind: enum: - color_convert @@ -641,6 +650,9 @@ paths: items: type: object properties: + id: + type: string + description: An ID for the video layer. width: type: integer description: Width of the output video. @@ -764,9 +776,6 @@ paths: - compatibility_group additionalProperties: false description: Object with parameters controlling HLS audio layer affinities. - ffmpeg_cli_insert: - type: string - description: The FFmpeg command line arguments to be used. Note that these will override competing settings in the JSON. dar: oneOf: - type: string @@ -1067,7 +1076,10 @@ paths: type: number description: Fade-out time (in seconds) of the overlay. additionalProperties: false - - properties: + - title: Color Convert + x-apps: + - core-api + properties: kind: enum: - color_convert @@ -1366,6 +1378,31 @@ paths: description: When upconverting to Dolby Atmos, this specifies the type of upmixing for DD+JOC encoding. additionalProperties: false description: Each audio track is an element of the array. + subtitle: + type: array + items: + type: object + properties: + id: + type: string + language: + type: string + program_name: + type: string + codec: + enum: + - webvtt + - stl + format_options: + type: object + properties: + sparse_vtt: + type: boolean + additionalProperties: false + track_selector: + type: object + additionalProperties: true + additionalProperties: false additionalProperties: false examples: - encode_profile: @@ -1423,7 +1460,92 @@ paths: type: object properties: conditions: - $id: '#/$defs/rasp_shared/definitions/qc/properties/post/properties/conditions' + type: object + properties: + pass: + type: array + items: + oneOf: + - type: object + properties: + condition: + type: string + message_fail: + type: string + additionalProperties: false + - type: object + properties: + number_compare: + type: object + properties: + compare_property: + type: string + reference: + oneOf: + - type: number + - type: string + tolerance_factor: + type: number + tolerance: + type: number + required: + - compare_property + - reference + additionalProperties: false + message_fail: + type: string + additionalProperties: false + additionalProperties: false + additionalProperties: false + post: + type: object + properties: + test_encode_profile: + type: boolean + test_frames_encoded: + type: integer + minimum: 1 + conditions: + type: object + properties: + pass: + type: array + items: + oneOf: + - type: object + properties: + condition: + type: string + message_fail: + type: string + additionalProperties: false + - type: object + properties: + number_compare: + type: object + properties: + compare_property: + type: string + reference: + oneOf: + - type: number + - type: string + tolerance_factor: + type: number + tolerance: + type: number + required: + - compare_property + - reference + additionalProperties: false + message_fail: + type: string + additionalProperties: false + additionalProperties: false + report: + type: object + properties: {} + additionalProperties: false additionalProperties: false additionalProperties: false timing_configuration: @@ -1439,7 +1561,7 @@ paths: maximum: 120 minimum: 0 description: 'This is a hint on how soon after the conformance call you expect your player to start. ' - additionalProperties: false + unevaluatedProperties: false description: 'Optional settings to tune specific timing characteristics for your ad availability. ' access: type: object @@ -1511,26 +1633,45 @@ paths: required: true schema: type: string - description: Profile key used to register the encode profile. - examples: - - ad_profile_1 description: Profile key used to register the encode profile. + x-displayName: Create Ad Profile + get: + operationId: get-ad-profile + tags: + - Ad Engine + summary: Get Ad Profile + description: 'Requests the properties of a specific ad profile. ' responses: '200': description: OK - operationId: create-ad-profile - x-displayName: Create Ad Profile + parameters: + - name: x-rasp-auth-token + in: header + required: true + schema: + type: string + - name: key + in: query + required: true + schema: + type: string + description: Profile key used to register the encode profile. + x-displayName: Get Ad Profile put: - summary: Update Ad Profile + operationId: update-ad-profile tags: - Ad Engine + summary: Update Ad Profile description: Updates an ad encoding profile. + responses: + '200': + description: OK requestBody: required: true content: application/json: schema: - $id: http://dolbyrasp.com/schemas/apigw/dae.profile.body + $id: http://dolbyrasp.com/schemas/apigw/dae.profile.put.body type: object properties: encode_profile: @@ -1573,6 +1714,9 @@ paths: anyOf: - type: object properties: + id: + type: string + description: An ID for the video layer. width: type: integer description: Width of the output video. @@ -1696,9 +1840,6 @@ paths: - compatibility_group additionalProperties: false description: Object with parameters controlling HLS audio layer affinities. - ffmpeg_cli_insert: - type: string - description: The FFmpeg command line arguments to be used. Note that these will override competing settings in the JSON. dar: oneOf: - type: string @@ -1999,7 +2140,10 @@ paths: type: number description: Fade-out time (in seconds) of the overlay. additionalProperties: false - - properties: + - title: Color Convert + x-apps: + - core-api + properties: kind: enum: - color_convert @@ -2157,6 +2301,9 @@ paths: items: type: object properties: + id: + type: string + description: An ID for the video layer. width: type: integer description: Width of the output video. @@ -2280,9 +2427,6 @@ paths: - compatibility_group additionalProperties: false description: Object with parameters controlling HLS audio layer affinities. - ffmpeg_cli_insert: - type: string - description: The FFmpeg command line arguments to be used. Note that these will override competing settings in the JSON. dar: oneOf: - type: string @@ -2583,7 +2727,10 @@ paths: type: number description: Fade-out time (in seconds) of the overlay. additionalProperties: false - - properties: + - title: Color Convert + x-apps: + - core-api + properties: kind: enum: - color_convert @@ -2882,6 +3029,31 @@ paths: description: When upconverting to Dolby Atmos, this specifies the type of upmixing for DD+JOC encoding. additionalProperties: false description: Each audio track is an element of the array. + subtitle: + type: array + items: + type: object + properties: + id: + type: string + language: + type: string + program_name: + type: string + codec: + enum: + - webvtt + - stl + format_options: + type: object + properties: + sparse_vtt: + type: boolean + additionalProperties: false + track_selector: + type: object + additionalProperties: true + additionalProperties: false additionalProperties: false examples: - encode_profile: @@ -2939,7 +3111,92 @@ paths: type: object properties: conditions: - $id: '#/$defs/rasp_shared/definitions/qc/properties/post/properties/conditions' + type: object + properties: + pass: + type: array + items: + oneOf: + - type: object + properties: + condition: + type: string + message_fail: + type: string + additionalProperties: false + - type: object + properties: + number_compare: + type: object + properties: + compare_property: + type: string + reference: + oneOf: + - type: number + - type: string + tolerance_factor: + type: number + tolerance: + type: number + required: + - compare_property + - reference + additionalProperties: false + message_fail: + type: string + additionalProperties: false + additionalProperties: false + additionalProperties: false + post: + type: object + properties: + test_encode_profile: + type: boolean + test_frames_encoded: + type: integer + minimum: 1 + conditions: + type: object + properties: + pass: + type: array + items: + oneOf: + - type: object + properties: + condition: + type: string + message_fail: + type: string + additionalProperties: false + - type: object + properties: + number_compare: + type: object + properties: + compare_property: + type: string + reference: + oneOf: + - type: number + - type: string + tolerance_factor: + type: number + tolerance: + type: number + required: + - compare_property + - reference + additionalProperties: false + message_fail: + type: string + additionalProperties: false + additionalProperties: false + report: + type: object + properties: {} + additionalProperties: false additionalProperties: false additionalProperties: false timing_configuration: @@ -2955,7 +3212,7 @@ paths: maximum: 120 minimum: 0 description: 'This is a hint on how soon after the conformance call you expect your player to start. ' - additionalProperties: false + unevaluatedProperties: false description: 'Optional settings to tune specific timing characteristics for your ad availability. ' access: type: object @@ -3027,45 +3284,17 @@ paths: required: true schema: type: string - description: Profile key used to register the encode profile. - examples: - - ad_profile_1 description: Profile key used to register the encode profile. - responses: - '200': - description: OK - operationId: update-ad-profile x-displayName: Update Ad Profile delete: - summary: Delete Ad Profile + operationId: delete-ad-profile tags: - Ad Engine + summary: Delete Ad Profile description: 'Deletes a specific ad profile. ' - parameters: - - name: x-rasp-auth-token - in: header - required: true - schema: - type: string - - name: key - in: query - required: true - schema: - type: string - description: Profile key used to register the encode profile. - examples: - - ad_profile_1 - description: Profile key used to register the encode profile. responses: '200': description: OK - operationId: delete-ad-profile - x-displayName: Delete Ad Profile - get: - summary: Get Ad Profile - tags: - - Ad Engine - description: 'Requests the properties of a specific ad profile. ' parameters: - name: x-rasp-auth-token in: header @@ -3077,124 +3306,52 @@ paths: required: true schema: type: string - description: Profile key used to register the encode profile. - examples: - - ad_profile_1 description: Profile key used to register the encode profile. - responses: - '200': - description: OK - operationId: get-ad-profile - x-displayName: Get Ad Profile + x-displayName: Delete Ad Profile /ad-engine/profiles: get: - summary: Get All Ad Profiles + operationId: list-ad-profiles tags: - Ad Engine + summary: Get All Ad Profiles description: Gets a list of all current ad profiles. + responses: + '200': + description: OK parameters: - name: x-rasp-auth-token in: header required: true schema: type: string - responses: - '200': - description: OK - operationId: list-ad-profiles - x-displayName: Get Ad Profile + x-displayName: Get All Ad Profiles /ad-engine/conform: get: - summary: Conform Ad + operationId: conform-ad tags: - Ad Engine + summary: Conform Ad description: 'Conforms a single ad to a specified encoding profile. ' + responses: + '200': + description: OK parameters: - name: x-rasp-auth-token in: header - required: false - schema: - type: string - - name: player_buffer_sec - in: query - required: false - schema: - type: number - maximum: 120 - minimum: 0 - description: This setting is how long your player's buffer is set to in seconds. - description: This setting is how long your player's buffer is set to in seconds. - - name: expected_player_start_sec - in: query - required: false - schema: - type: number - maximum: 120 - minimum: 0 - description: 'This is a hint on how soon after the conformance call you expect your player to start. ' - description: 'This is a hint on how soon after the conformance call you expect your player to start. ' - - name: url - in: query - required: true - schema: - type: string - description: The URL of the ad to be conformed. - examples: - - https://ad_server/my_ad.mp4 - description: The URL of the ad to be conformed. - - name: profile - in: query required: true schema: type: string - description: Profile key used to register the encode profile. - examples: - - ad_profile_1 - description: Profile key used to register the encode profile. - - name: output_format - in: query - required: false - schema: - enum: - - media - - json - - vast - description: Output format for the conformed ad. 'media' produces just the media file, 'vast' produces a VAST XML referencing the media file, and 'json' returns a JSON document describing the virtual URL which was created. - description: Output format for the conformed ad. 'media' produces just the media file, 'vast' produces a VAST XML referencing the media file, and 'json' returns a JSON document describing the virtual URL which was created. - - name: delivery - in: query - required: false - schema: - enum: - - jit - - files - description: Delivery type for the conformed ad. 'jit' delivers the ad virtualized, in a proxy fashion, while 'files' delivers it as a file to a cloud storage destination. Note that 'files' delivery requires additional configuration (delivery_root_url and delivery_credentials_key). - description: Delivery type for the conformed ad. 'jit' delivers the ad virtualized, in a proxy fashion, while 'files' delivers it as a file to a cloud storage destination. Note that 'files' delivery requires additional configuration (delivery_root_url and delivery_credentials_key). - - name: delivery_root_url - in: query - required: false - schema: - type: string - description: Required when 'delivery' is set to 'files'. Specifies the destination root URL for the output files. - description: Required when 'delivery' is set to 'files'. Specifies the destination root URL for the output files. - - name: delivery_credentials_key - in: query - required: false - schema: - type: string - description: Required when 'delivery' is set to 'files'. Specifies the credentials key to use for accessing the storage destination. The credentials must be pre-configured in the system - description: Required when 'delivery' is set to 'files'. Specifies the credentials key to use for accessing the storage destination. The credentials must be pre-configured in the system - responses: - '200': - description: OK - operationId: conform-ad x-displayName: Conform Ad /ad-engine/conform-pod: post: - summary: Conform Ad Pod + operationId: conform-ad-pod tags: - Ad Engine + summary: Conform Ad Pod description: Conforms multiple ads (an ad pod) to a specified encoding profile. + responses: + '200': + description: OK requestBody: required: true content: @@ -3273,8 +3430,6 @@ paths: oneOf: - type: string - type: number - required: [] - required: [] _comment: lets not make anything mandatory now, need to find out what params not available will actually block the VAST from being played and then we can make those parameters required required: - type @@ -3282,76 +3437,20587 @@ paths: required: - asset_urls additionalProperties: false + $id: http://dolbyrasp.com/schemas/apigw/ad-engine-conform-pod.body parameters: - name: x-rasp-auth-token in: header required: true schema: type: string - - name: player_buffer_sec + x-displayName: Conform Ad Pod + /media-info: + get: + operationId: media-info + tags: + - Cloud Preview + summary: Media Info + responses: + '200': + description: OK + parameters: + - name: url in: query - required: false + required: true schema: - type: number - maximum: 120 - minimum: 0 - description: This setting is how long your player's buffer is set to in seconds. - description: This setting is how long your player's buffer is set to in seconds. - - name: expected_player_start_sec + type: string + format: uri + description: URL of the media file + - name: credentials_key in: query required: false schema: - type: number - maximum: 120 - minimum: 0 - description: 'This is a hint on how soon after the conformance call you expect your player to start. ' - description: 'This is a hint on how soon after the conformance call you expect your player to start. ' - - name: profile + type: string + description: The key of the stored credentials to use when accessing the URL. + - name: x-rasp-auth-token + in: header + required: true + schema: + type: string + description: Authentication token. + x-displayName: Media Info + /image: + get: + operationId: image + tags: + - Cloud Preview + summary: Image + responses: + '200': + description: OK + parameters: + - name: url in: query required: true schema: type: string - description: Profile key used to register the encode profile. - examples: - - ad_profile_1 - description: Profile key used to register the encode profile. - - name: output_format + format: uri + description: URL of the media file + - name: format in: query required: false schema: + type: string enum: - - media - - json - - vast - - name: delivery + - png + - jpeg + default: jpeg + description: The image format to return + - name: width in: query required: false schema: - enum: - - jit - - files - description: Delivery type for the conformed ad. 'jit' delivers the ad virtualized, in a proxy fashion, while 'files' delivers it as a file to a cloud storage destination. Note that 'files' delivery requires additional configuration (delivery_root_url and delivery_credentials_key). - description: Delivery type for the conformed ad. 'jit' delivers the ad virtualized, in a proxy fashion, while 'files' delivers it as a file to a cloud storage destination. Note that 'files' delivery requires additional configuration (delivery_root_url and delivery_credentials_key). - - name: delivery_root_url + type: integer + minimum: 16 + maximum: 3840 + description: The width of the image in pixels. If not specified, will be calcualted based on the source dimension. + - name: height in: query required: false schema: - type: string - description: Required when 'delivery' is set to 'files'. Specifies the destination root URL for the output files. - description: Required when 'delivery' is set to 'files'. Specifies the destination root URL for the output files. - - name: delivery_credentials_key + type: integer + minimum: 16 + maximum: 2160 + description: The height of the image in pixels. If not specified, will be calcualted based on the source dimension. + - name: offset_percent + in: query + required: false + schema: + type: number + minimum: 0 + maximum: 100 + default: 10 + description: The percentage offset into the video to capture the image from. + - name: credentials_key in: query required: false schema: type: string - description: Required when 'delivery' is set to 'files'. Specifies the credentials key to use for accessing the storage destination. The credentials must be pre-configured in the system - description: Required when 'delivery' is set to 'files'. Specifies the credentials key to use for accessing the storage destination. The credentials must be pre-configured in the system + description: The key of the stored credentials to use when accessing the URL. + - name: x-rasp-auth-token + in: header + required: true + schema: + type: string + description: Authentication token. + x-displayName: Image + /cloud-preview/codemill: + post: + tags: + - Cloud Preview + operationId: cloud-preview-codemill + summary: Cloud Preview - Codemill + description: Generates Accurate Player templates for instant cloud asset media playback. + requestBody: + required: true + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/codemill_explicit_outputs' + - $ref: '#/components/schemas/codemill_implicit_templates' + examples: + explicit: + summary: Explicit output configuration + value: &id003 + urls: + - url: https://my_bucket/my_folder/ProRes_Master_Video.mov + id: v0 + - url: https://my_bucket/my_folder/DoVi_metadata.xml + id: m0 + - url: https://my_bucket/my_folder/English_stereoe.wav + id: a0 + - url: https://my_bucket/my_folder/French_stereo.mov + id: a1 + - url: https://my_bucket/my_folder/English_subtitles.stl + id: s0 + map: + video: + - url_id: v0 + dolby_vision_metadata_id: m0 + audio: + - url_id: a0 + - url_id: a1 + subtitle: + - url_id: s0 + outputs: + - name: SDR + encode_profile: + container: + kind: hls/fmp4 + video: + height: 720 + width: 1280 + bitrate_mode: crf + crf: 19 + max_bitrate_kb: 8000 + codec: h264 + range: sdr + preset: veryfast + audio: + - name: english + language: eng + codec: aac + bitrate_kb: 128 + channels: 2 + - name: french + language: fre + codec: aac + bitrate_kb: 128 + channels: 2 + subtitle: + - name: subtitle_english + codec: webvtt + options: + use_source_start_timecode: true + show_dolby_vision_metadate_markers: true + implicit: + summary: Implicit template inference + value: &id004 + urls: + - url: https://my_bucket/my_folder/my_video.mov + - url: https://my_bucket/my_folder/English_stereo.wav + - url: https://my_bucket/my_folder/English_subtitles.stl + output_templates: + - type: video + name: sdr + selectors: + - range: sdr + - range: dolby_vision_5 + - range: hdr10 + encode_profile: + video: + height: 720 + width: 1280 + bitrate_mode: crf + crf: 19 + max_bitrate_kb: 8000 + codec: h264 + range: sdr + preset: veryfast + - type: video + name: hdr + selectors: + - range: dolby_vision_5 + - range: hdr10 + encode_profile: + video: + height: 720 + width: 1280 + bitrate_mode: crf + crf: 19 + max_bitrate_kb: 8000 + codec: h265 + range: dolby_vision_5 + preset: veryfast + - type: audio + selectors: + - channels: 1 + encode_profile: + audio: + codec: aac + bitrate_kb: 96 + channels: 1 + - type: audio + selectors: + - channels: 2 + encode_profile: + audio: + codec: aac + bitrate_kb: 128 + channels: 2 + - type: audio + selectors: + - channels: 6 + encode_profile: + audio: + codec: aac + bitrate_kb: 256 + channels: 6 + - type: subtitle + selectors: + - codec_name: '*' + encode_profile: + subtitle: + codec: webvtt + options: + use_source_start_timecode: true + responses: + '200': + description: OK + x-displayName: Codemill + parameters: + - name: x-rasp-auth-token + in: header + required: true + schema: + type: string + description: Authentication token. + /cloud-preview/omakase: + post: + tags: + - Cloud Preview + operationId: cloud-preview-omakase + summary: Cloud Preview - Omakase + description: Generates Omakase Player Session templates for instant cloud asset media playback. + requestBody: + required: true + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/omakase_explicit_outputs' + - $ref: '#/components/schemas/omakase_implicit_templates' + examples: + explicit: + summary: Explicit output configuration + value: *id003 + implicit: + summary: Implicit template inference + value: *id004 responses: '200': description: OK - operationId: conform-ad-pod - x-displayName: Conform Ad Pod + x-displayName: Omakase + parameters: + - name: x-rasp-auth-token + in: header + required: true + schema: + type: string + description: Authentication token. + /cloud-preview/hls: + post: + tags: + - Cloud Preview + operationId: cloud-preview-hls + summary: Cloud Preview - HLS + description: Generates HLS Preview templates for instant cloud asset media playback. + requestBody: + required: true + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/hls_explicit_outputs' + - $ref: '#/components/schemas/hls_implicit_templates' + examples: + explicit: + summary: Explicit output configuration + value: *id003 + implicit: + summary: Implicit template inference + value: *id004 + responses: + '200': + description: OK + x-displayName: Hls + parameters: + - name: x-rasp-auth-token + in: header + required: true + schema: + type: string + description: Authentication token. components: - schemas: {} -servers: -- url: https://api.galaxy.dolbyrasp.com + schemas: + codemill_explicit: + allOf: + - type: object + properties: + urls: + type: array + items: + anyOf: + - allOf: + - type: object + properties: + url: + type: string + format: uri + description: URL of the media file + id: + type: string + description: Optional identifier for the URL + access: + oneOf: + - type: object + properties: + shared_key: + title: AWS Key + description: The AWS Key. + type: + - string + - 'null' + maxLength: 512 + secret_key: + title: AWS Secret + description: The AWS Secret. + type: + - string + - 'null' + maxLength: 512 + session_token: + title: AWS Session Token + description: The AWS Session Token. + type: + - string + - 'null' + maxLength: 2048 + region: + title: AWS Region + description: The AWS region (optional). + type: + - string + - 'null' + maxLength: 512 + required: + - shared_key + - secret_key + additionalProperties: false + description: 'The S3 credentials. It is recommended that IAM user credentials be used rather than master S3 credentials. ' + - type: object + properties: + credentials_key: + type: string + description: Key to retrieve stored credentials for accessing the URL + required: + - credentials_key + additionalProperties: false + description: Credentials granting access to the location. + required: + - url + - type: object + properties: + mime: + type: string + additionalProperties: true + - type: string + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + required: + - urls + - type: object + properties: + map: + type: object + properties: + audio: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + channels: + type: array + items: + type: object + additionalProperties: false + video: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + dolby_vision_metadata_url_id: + type: string + additionalProperties: false + subtitle: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + additionalProperties: false + additionalProperties: false + outputs: + type: array + items: + type: object + properties: + name: + type: string + encode_profile: + type: object + required: + - container + properties: + container: + type: object + required: + - kind + properties: + kind: + enum: + - hls + - hls/fmp4 + - mpegts + - mpeg2ts + - mp4 + - m4a + - fmp4 + - m4s + - wav + - nut + description: The type of media container for the output. + use_editlist: + type: boolean + description: This sets the edit list atom (elst) in MP4 files. Read more here https://developer.apple.com/documentation/quicktime-file-format/edit_list_atom. The default is false. + mpegts_initial_discontinuity: + type: boolean + default: false + segment_duration_sec: + type: number + description: The segment duration in seconds for segmented or fragmented streams such as HLS or mp4/MPEG-DASH. Decimal notation (e.g. 5.5) is supported. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + additionalProperties: false + video: + anyOf: + - type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + - type: array + items: + type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + audio: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the audio track. + program_name: + type: string + description: Program name of the audio track. + codec: + enum: + - aac + - aac_lc + - he_aac1 + - he_aac2 + - ac4 + - ddp_joc + description: The audio codec to use for the track. + bitrate_kb: + type: number + description: The audio bitrate in kilobits per second. This is the average bitrate in the case of vbr. + channels: + type: integer + description: The number of audio channels. + sample_rate: + type: integer + description: The audio sample rate in Hz. Typical values are 44100 and 48000. Omit to use the source sample rate. + auto_generate_silence_track: + type: boolean + description: 'This fills the track with silence. ' + filters: + type: array + title: Audio Filters + description: The array of audio filters to be applied to the output. + items: + type: object + description: The audio filter object with a specific kind and payload format. + required: + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: normalize + type: object + properties: + kind: + const: normalize + payload: + type: object + description: Specifies parameters for the image overlay filter. + properties: + kind: + const: ebur128 + analyze_vurl: + type: string + payload: + type: object + properties: + source: + type: object + properties: + integrated_lufs: + type: number + minimum: -99 + maximum: 0 + loudness_lra_lufs: + type: number + minimum: 0 + maximum: 99 + true_peak_dbfs: + type: number + minimum: -99 + maximum: 99 + integrated_threshold_lufs: + type: number + minimum: -99 + maximum: 0 + offset: + type: number + minimum: -99 + maximum: 99 + integrated_lufs: + type: number + minimum: -70 + maximum: -5 + loudness_lra_lufs: + type: number + minimum: 1 + maximum: 50 + true_peak_dbfs: + type: number + minimum: -9 + maximum: 0 + allow_unprecise_mode: + type: boolean + default: false + not: + required: + - analyze_vurl + - payload + required: + - kind + additionalProperties: false + required: + - kind + additionalProperties: false + language: + type: string + description: The audio language code in ISO-639 notation. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + abr_map: + type: object + properties: + hls_audio_group: + type: string + is_hls_group_default: + type: boolean + default: false + content: + type: string + compatibility_group: + type: string + required: + - content + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + ddp_joc_upmix_mode: + enum: + - remap + - upmix + default: upmix + description: When upconverting to Dolby Atmos, this specifies the type of upmixing for DD+JOC encoding. + additionalProperties: false + description: Each audio track is an element of the array. + subtitle: + type: array + items: + type: object + properties: + id: + type: string + language: + type: string + program_name: + type: string + codec: + enum: + - webvtt + - stl + format_options: + type: object + properties: + sparse_vtt: + type: boolean + additionalProperties: false + track_selector: + type: object + additionalProperties: true + additionalProperties: false + additionalProperties: false + examples: + - encode_profile: + container: + kind: hls/fmp4 + segment_duration_sec: 2 + video: + - width: 1280 + height: 720 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 2500 + min_bitrate_kb: 2380 + max_bitrate_kb: 2620 + vbv_buffer_size_kb: 2650 + frame_rate: 30000/1001 + - width: 854 + height: 480 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 1200 + min_bitrate_kb: 1140 + max_bitrate_kb: 1260 + vbv_buffer_size_kb: 1260 + frame_rate: 30000/1001 + - width: 640 + height: 360 + codec: h264 + profile: high + level: '3.0' + bitrate_mode: vbr + bitrate_kb: 600 + min_bitrate_kb: 570 + max_bitrate_kb: 630 + vbv_buffer_size_kb: 630 + frame_rate: 30000/1001 + audio: + - codec: aac + bitrate_kb: 128 + channels: 2 + filters: + - kind: normalize + payload: + kind: ebur128 + payload: + integrated_lufs: -23 + additionalProperties: false + required: + - outputs + - type: object + properties: + analyzers: + type: array + items: + type: object + properties: + type: + type: string + enum: + - black_detection + - scene_detection + - silence_detection + - duplicate_frames_detection + config: + type: object + required: + - type + additionalProperties: false + - type: object + properties: + options: + allOf: + - type: object + properties: + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + - type: object + properties: + render_waveforms: + type: boolean + default: true + render_thumbnails: + type: boolean + default: true + show_dolby_vision_metadata_markers: + type: boolean + default: true + use_source_start_time_code: + type: boolean + default: false + template_authentication_token: + type: string + description: Authentication token to be included in requests made by the player when fetching the template. + unevaluatedProperties: false + unevaluatedProperties: false + codemill_implicit: + allOf: + - type: object + properties: + urls: + type: array + items: + anyOf: + - allOf: + - type: object + properties: + url: + type: string + format: uri + description: URL of the media file + id: + type: string + description: Optional identifier for the URL + access: + oneOf: + - type: object + properties: + shared_key: + title: AWS Key + description: The AWS Key. + type: + - string + - 'null' + maxLength: 512 + secret_key: + title: AWS Secret + description: The AWS Secret. + type: + - string + - 'null' + maxLength: 512 + session_token: + title: AWS Session Token + description: The AWS Session Token. + type: + - string + - 'null' + maxLength: 2048 + region: + title: AWS Region + description: The AWS region (optional). + type: + - string + - 'null' + maxLength: 512 + required: + - shared_key + - secret_key + additionalProperties: false + description: 'The S3 credentials. It is recommended that IAM user credentials be used rather than master S3 credentials. ' + - type: object + properties: + credentials_key: + type: string + description: Key to retrieve stored credentials for accessing the URL + required: + - credentials_key + additionalProperties: false + description: Credentials granting access to the location. + required: + - url + - type: object + properties: + mime: + type: string + additionalProperties: true + - type: string + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + required: + - urls + - type: object + properties: + output_templates: + type: array + items: + type: object + properties: + type: + enum: + - audio + - video + - subtitle + name: + type: string + selectors: + type: array + items: + type: object + additionalProperties: true + encode_profile: + type: object + required: + - container + properties: + container: + type: object + required: + - kind + properties: + kind: + enum: + - hls + - hls/fmp4 + - mpegts + - mpeg2ts + - mp4 + - m4a + - fmp4 + - m4s + - wav + - nut + description: The type of media container for the output. + use_editlist: + type: boolean + description: This sets the edit list atom (elst) in MP4 files. Read more here https://developer.apple.com/documentation/quicktime-file-format/edit_list_atom. The default is false. + mpegts_initial_discontinuity: + type: boolean + default: false + segment_duration_sec: + type: number + description: The segment duration in seconds for segmented or fragmented streams such as HLS or mp4/MPEG-DASH. Decimal notation (e.g. 5.5) is supported. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + additionalProperties: false + video: + anyOf: + - type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + - type: array + items: + type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + audio: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the audio track. + program_name: + type: string + description: Program name of the audio track. + codec: + enum: + - aac + - aac_lc + - he_aac1 + - he_aac2 + - ac4 + - ddp_joc + description: The audio codec to use for the track. + bitrate_kb: + type: number + description: The audio bitrate in kilobits per second. This is the average bitrate in the case of vbr. + channels: + type: integer + description: The number of audio channels. + sample_rate: + type: integer + description: The audio sample rate in Hz. Typical values are 44100 and 48000. Omit to use the source sample rate. + auto_generate_silence_track: + type: boolean + description: 'This fills the track with silence. ' + filters: + type: array + title: Audio Filters + description: The array of audio filters to be applied to the output. + items: + type: object + description: The audio filter object with a specific kind and payload format. + required: + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: normalize + type: object + properties: + kind: + const: normalize + payload: + type: object + description: Specifies parameters for the image overlay filter. + properties: + kind: + const: ebur128 + analyze_vurl: + type: string + payload: + type: object + properties: + source: + type: object + properties: + integrated_lufs: + type: number + minimum: -99 + maximum: 0 + loudness_lra_lufs: + type: number + minimum: 0 + maximum: 99 + true_peak_dbfs: + type: number + minimum: -99 + maximum: 99 + integrated_threshold_lufs: + type: number + minimum: -99 + maximum: 0 + offset: + type: number + minimum: -99 + maximum: 99 + integrated_lufs: + type: number + minimum: -70 + maximum: -5 + loudness_lra_lufs: + type: number + minimum: 1 + maximum: 50 + true_peak_dbfs: + type: number + minimum: -9 + maximum: 0 + allow_unprecise_mode: + type: boolean + default: false + not: + required: + - analyze_vurl + - payload + required: + - kind + additionalProperties: false + required: + - kind + additionalProperties: false + language: + type: string + description: The audio language code in ISO-639 notation. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + abr_map: + type: object + properties: + hls_audio_group: + type: string + is_hls_group_default: + type: boolean + default: false + content: + type: string + compatibility_group: + type: string + required: + - content + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + ddp_joc_upmix_mode: + enum: + - remap + - upmix + default: upmix + description: When upconverting to Dolby Atmos, this specifies the type of upmixing for DD+JOC encoding. + additionalProperties: false + description: Each audio track is an element of the array. + subtitle: + type: array + items: + type: object + properties: + id: + type: string + language: + type: string + program_name: + type: string + codec: + enum: + - webvtt + - stl + format_options: + type: object + properties: + sparse_vtt: + type: boolean + additionalProperties: false + track_selector: + type: object + additionalProperties: true + additionalProperties: false + additionalProperties: false + examples: + - encode_profile: + container: + kind: hls/fmp4 + segment_duration_sec: 2 + video: + - width: 1280 + height: 720 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 2500 + min_bitrate_kb: 2380 + max_bitrate_kb: 2620 + vbv_buffer_size_kb: 2650 + frame_rate: 30000/1001 + - width: 854 + height: 480 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 1200 + min_bitrate_kb: 1140 + max_bitrate_kb: 1260 + vbv_buffer_size_kb: 1260 + frame_rate: 30000/1001 + - width: 640 + height: 360 + codec: h264 + profile: high + level: '3.0' + bitrate_mode: vbr + bitrate_kb: 600 + min_bitrate_kb: 570 + max_bitrate_kb: 630 + vbv_buffer_size_kb: 630 + frame_rate: 30000/1001 + audio: + - codec: aac + bitrate_kb: 128 + channels: 2 + filters: + - kind: normalize + payload: + kind: ebur128 + payload: + integrated_lufs: -23 + required: + - type + - encode_profile + additionalProperties: false + required: + - output_templates + - type: object + properties: + analyzers: + type: array + items: + type: object + properties: + type: + type: string + enum: + - black_detection + - scene_detection + - silence_detection + - duplicate_frames_detection + config: + type: object + required: + - type + additionalProperties: false + - type: object + properties: + options: + allOf: + - type: object + properties: + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + - type: object + properties: + render_waveforms: + type: boolean + default: true + render_thumbnails: + type: boolean + default: true + show_dolby_vision_metadata_markers: + type: boolean + default: true + use_source_start_time_code: + type: boolean + default: false + template_authentication_token: + type: string + description: Authentication token to be included in requests made by the player when fetching the template. + unevaluatedProperties: false + unevaluatedProperties: false + omakase_explicit: + allOf: + - type: object + properties: + urls: + type: array + items: + anyOf: + - allOf: + - type: object + properties: + url: + type: string + format: uri + description: URL of the media file + id: + type: string + description: Optional identifier for the URL + access: + oneOf: + - type: object + properties: + shared_key: + title: AWS Key + description: The AWS Key. + type: + - string + - 'null' + maxLength: 512 + secret_key: + title: AWS Secret + description: The AWS Secret. + type: + - string + - 'null' + maxLength: 512 + session_token: + title: AWS Session Token + description: The AWS Session Token. + type: + - string + - 'null' + maxLength: 2048 + region: + title: AWS Region + description: The AWS region (optional). + type: + - string + - 'null' + maxLength: 512 + required: + - shared_key + - secret_key + additionalProperties: false + description: 'The S3 credentials. It is recommended that IAM user credentials be used rather than master S3 credentials. ' + - type: object + properties: + credentials_key: + type: string + description: Key to retrieve stored credentials for accessing the URL + required: + - credentials_key + additionalProperties: false + description: Credentials granting access to the location. + required: + - url + - type: object + properties: + mime: + type: string + additionalProperties: true + - type: string + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + required: + - urls + - type: object + properties: + map: + type: object + properties: + audio: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + channels: + type: array + items: + type: object + additionalProperties: false + video: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + dolby_vision_metadata_url_id: + type: string + additionalProperties: false + subtitle: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + additionalProperties: false + additionalProperties: false + outputs: + type: array + items: + type: object + properties: + name: + type: string + encode_profile: + type: object + required: + - container + properties: + container: + type: object + required: + - kind + properties: + kind: + enum: + - hls + - hls/fmp4 + - mpegts + - mpeg2ts + - mp4 + - m4a + - fmp4 + - m4s + - wav + - nut + description: The type of media container for the output. + use_editlist: + type: boolean + description: This sets the edit list atom (elst) in MP4 files. Read more here https://developer.apple.com/documentation/quicktime-file-format/edit_list_atom. The default is false. + mpegts_initial_discontinuity: + type: boolean + default: false + segment_duration_sec: + type: number + description: The segment duration in seconds for segmented or fragmented streams such as HLS or mp4/MPEG-DASH. Decimal notation (e.g. 5.5) is supported. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + additionalProperties: false + video: + anyOf: + - type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + - type: array + items: + type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + audio: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the audio track. + program_name: + type: string + description: Program name of the audio track. + codec: + enum: + - aac + - aac_lc + - he_aac1 + - he_aac2 + - ac4 + - ddp_joc + description: The audio codec to use for the track. + bitrate_kb: + type: number + description: The audio bitrate in kilobits per second. This is the average bitrate in the case of vbr. + channels: + type: integer + description: The number of audio channels. + sample_rate: + type: integer + description: The audio sample rate in Hz. Typical values are 44100 and 48000. Omit to use the source sample rate. + auto_generate_silence_track: + type: boolean + description: 'This fills the track with silence. ' + filters: + type: array + title: Audio Filters + description: The array of audio filters to be applied to the output. + items: + type: object + description: The audio filter object with a specific kind and payload format. + required: + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: normalize + type: object + properties: + kind: + const: normalize + payload: + type: object + description: Specifies parameters for the image overlay filter. + properties: + kind: + const: ebur128 + analyze_vurl: + type: string + payload: + type: object + properties: + source: + type: object + properties: + integrated_lufs: + type: number + minimum: -99 + maximum: 0 + loudness_lra_lufs: + type: number + minimum: 0 + maximum: 99 + true_peak_dbfs: + type: number + minimum: -99 + maximum: 99 + integrated_threshold_lufs: + type: number + minimum: -99 + maximum: 0 + offset: + type: number + minimum: -99 + maximum: 99 + integrated_lufs: + type: number + minimum: -70 + maximum: -5 + loudness_lra_lufs: + type: number + minimum: 1 + maximum: 50 + true_peak_dbfs: + type: number + minimum: -9 + maximum: 0 + allow_unprecise_mode: + type: boolean + default: false + not: + required: + - analyze_vurl + - payload + required: + - kind + additionalProperties: false + required: + - kind + additionalProperties: false + language: + type: string + description: The audio language code in ISO-639 notation. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + abr_map: + type: object + properties: + hls_audio_group: + type: string + is_hls_group_default: + type: boolean + default: false + content: + type: string + compatibility_group: + type: string + required: + - content + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + ddp_joc_upmix_mode: + enum: + - remap + - upmix + default: upmix + description: When upconverting to Dolby Atmos, this specifies the type of upmixing for DD+JOC encoding. + additionalProperties: false + description: Each audio track is an element of the array. + subtitle: + type: array + items: + type: object + properties: + id: + type: string + language: + type: string + program_name: + type: string + codec: + enum: + - webvtt + - stl + format_options: + type: object + properties: + sparse_vtt: + type: boolean + additionalProperties: false + track_selector: + type: object + additionalProperties: true + additionalProperties: false + additionalProperties: false + examples: + - encode_profile: + container: + kind: hls/fmp4 + segment_duration_sec: 2 + video: + - width: 1280 + height: 720 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 2500 + min_bitrate_kb: 2380 + max_bitrate_kb: 2620 + vbv_buffer_size_kb: 2650 + frame_rate: 30000/1001 + - width: 854 + height: 480 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 1200 + min_bitrate_kb: 1140 + max_bitrate_kb: 1260 + vbv_buffer_size_kb: 1260 + frame_rate: 30000/1001 + - width: 640 + height: 360 + codec: h264 + profile: high + level: '3.0' + bitrate_mode: vbr + bitrate_kb: 600 + min_bitrate_kb: 570 + max_bitrate_kb: 630 + vbv_buffer_size_kb: 630 + frame_rate: 30000/1001 + audio: + - codec: aac + bitrate_kb: 128 + channels: 2 + filters: + - kind: normalize + payload: + kind: ebur128 + payload: + integrated_lufs: -23 + additionalProperties: false + required: + - outputs + - type: object + properties: + analyzers: + type: array + items: + type: object + properties: + type: + type: string + enum: + - black_detection + - scene_detection + - silence_detection + - duplicate_frames_detection + config: + type: object + required: + - type + additionalProperties: false + - type: object + properties: + options: + allOf: + - type: object + properties: + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + - type: object + properties: + render_waveforms: + type: boolean + default: true + render_thumbnails: + type: boolean + default: true + show_dolby_vision_metadata_markers: + type: boolean + default: true + use_source_start_time_code: + type: boolean + default: false + template_authentication_token: + type: string + description: Authentication token to be included in requests made by the player when fetching the template. + unevaluatedProperties: false + unevaluatedProperties: false + omakase_implicit: + allOf: + - type: object + properties: + urls: + type: array + items: + anyOf: + - allOf: + - type: object + properties: + url: + type: string + format: uri + description: URL of the media file + id: + type: string + description: Optional identifier for the URL + access: + oneOf: + - type: object + properties: + shared_key: + title: AWS Key + description: The AWS Key. + type: + - string + - 'null' + maxLength: 512 + secret_key: + title: AWS Secret + description: The AWS Secret. + type: + - string + - 'null' + maxLength: 512 + session_token: + title: AWS Session Token + description: The AWS Session Token. + type: + - string + - 'null' + maxLength: 2048 + region: + title: AWS Region + description: The AWS region (optional). + type: + - string + - 'null' + maxLength: 512 + required: + - shared_key + - secret_key + additionalProperties: false + description: 'The S3 credentials. It is recommended that IAM user credentials be used rather than master S3 credentials. ' + - type: object + properties: + credentials_key: + type: string + description: Key to retrieve stored credentials for accessing the URL + required: + - credentials_key + additionalProperties: false + description: Credentials granting access to the location. + required: + - url + - type: object + properties: + mime: + type: string + additionalProperties: true + - type: string + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + required: + - urls + - type: object + properties: + output_templates: + type: array + items: + type: object + properties: + type: + enum: + - audio + - video + - subtitle + name: + type: string + selectors: + type: array + items: + type: object + additionalProperties: true + encode_profile: + type: object + required: + - container + properties: + container: + type: object + required: + - kind + properties: + kind: + enum: + - hls + - hls/fmp4 + - mpegts + - mpeg2ts + - mp4 + - m4a + - fmp4 + - m4s + - wav + - nut + description: The type of media container for the output. + use_editlist: + type: boolean + description: This sets the edit list atom (elst) in MP4 files. Read more here https://developer.apple.com/documentation/quicktime-file-format/edit_list_atom. The default is false. + mpegts_initial_discontinuity: + type: boolean + default: false + segment_duration_sec: + type: number + description: The segment duration in seconds for segmented or fragmented streams such as HLS or mp4/MPEG-DASH. Decimal notation (e.g. 5.5) is supported. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + additionalProperties: false + video: + anyOf: + - type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + - type: array + items: + type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + audio: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the audio track. + program_name: + type: string + description: Program name of the audio track. + codec: + enum: + - aac + - aac_lc + - he_aac1 + - he_aac2 + - ac4 + - ddp_joc + description: The audio codec to use for the track. + bitrate_kb: + type: number + description: The audio bitrate in kilobits per second. This is the average bitrate in the case of vbr. + channels: + type: integer + description: The number of audio channels. + sample_rate: + type: integer + description: The audio sample rate in Hz. Typical values are 44100 and 48000. Omit to use the source sample rate. + auto_generate_silence_track: + type: boolean + description: 'This fills the track with silence. ' + filters: + type: array + title: Audio Filters + description: The array of audio filters to be applied to the output. + items: + type: object + description: The audio filter object with a specific kind and payload format. + required: + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: normalize + type: object + properties: + kind: + const: normalize + payload: + type: object + description: Specifies parameters for the image overlay filter. + properties: + kind: + const: ebur128 + analyze_vurl: + type: string + payload: + type: object + properties: + source: + type: object + properties: + integrated_lufs: + type: number + minimum: -99 + maximum: 0 + loudness_lra_lufs: + type: number + minimum: 0 + maximum: 99 + true_peak_dbfs: + type: number + minimum: -99 + maximum: 99 + integrated_threshold_lufs: + type: number + minimum: -99 + maximum: 0 + offset: + type: number + minimum: -99 + maximum: 99 + integrated_lufs: + type: number + minimum: -70 + maximum: -5 + loudness_lra_lufs: + type: number + minimum: 1 + maximum: 50 + true_peak_dbfs: + type: number + minimum: -9 + maximum: 0 + allow_unprecise_mode: + type: boolean + default: false + not: + required: + - analyze_vurl + - payload + required: + - kind + additionalProperties: false + required: + - kind + additionalProperties: false + language: + type: string + description: The audio language code in ISO-639 notation. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + abr_map: + type: object + properties: + hls_audio_group: + type: string + is_hls_group_default: + type: boolean + default: false + content: + type: string + compatibility_group: + type: string + required: + - content + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + ddp_joc_upmix_mode: + enum: + - remap + - upmix + default: upmix + description: When upconverting to Dolby Atmos, this specifies the type of upmixing for DD+JOC encoding. + additionalProperties: false + description: Each audio track is an element of the array. + subtitle: + type: array + items: + type: object + properties: + id: + type: string + language: + type: string + program_name: + type: string + codec: + enum: + - webvtt + - stl + format_options: + type: object + properties: + sparse_vtt: + type: boolean + additionalProperties: false + track_selector: + type: object + additionalProperties: true + additionalProperties: false + additionalProperties: false + examples: + - encode_profile: + container: + kind: hls/fmp4 + segment_duration_sec: 2 + video: + - width: 1280 + height: 720 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 2500 + min_bitrate_kb: 2380 + max_bitrate_kb: 2620 + vbv_buffer_size_kb: 2650 + frame_rate: 30000/1001 + - width: 854 + height: 480 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 1200 + min_bitrate_kb: 1140 + max_bitrate_kb: 1260 + vbv_buffer_size_kb: 1260 + frame_rate: 30000/1001 + - width: 640 + height: 360 + codec: h264 + profile: high + level: '3.0' + bitrate_mode: vbr + bitrate_kb: 600 + min_bitrate_kb: 570 + max_bitrate_kb: 630 + vbv_buffer_size_kb: 630 + frame_rate: 30000/1001 + audio: + - codec: aac + bitrate_kb: 128 + channels: 2 + filters: + - kind: normalize + payload: + kind: ebur128 + payload: + integrated_lufs: -23 + required: + - type + - encode_profile + additionalProperties: false + required: + - output_templates + - type: object + properties: + analyzers: + type: array + items: + type: object + properties: + type: + type: string + enum: + - black_detection + - scene_detection + - silence_detection + - duplicate_frames_detection + config: + type: object + required: + - type + additionalProperties: false + - type: object + properties: + options: + allOf: + - type: object + properties: + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + - type: object + properties: + render_waveforms: + type: boolean + default: true + render_thumbnails: + type: boolean + default: true + show_dolby_vision_metadata_markers: + type: boolean + default: true + use_source_start_time_code: + type: boolean + default: false + template_authentication_token: + type: string + description: Authentication token to be included in requests made by the player when fetching the template. + unevaluatedProperties: false + unevaluatedProperties: false + hls_explicit: + allOf: + - type: object + properties: + urls: + type: array + items: + anyOf: + - allOf: + - type: object + properties: + url: + type: string + format: uri + description: URL of the media file + id: + type: string + description: Optional identifier for the URL + access: + oneOf: + - type: object + properties: + shared_key: + title: AWS Key + description: The AWS Key. + type: + - string + - 'null' + maxLength: 512 + secret_key: + title: AWS Secret + description: The AWS Secret. + type: + - string + - 'null' + maxLength: 512 + session_token: + title: AWS Session Token + description: The AWS Session Token. + type: + - string + - 'null' + maxLength: 2048 + region: + title: AWS Region + description: The AWS region (optional). + type: + - string + - 'null' + maxLength: 512 + required: + - shared_key + - secret_key + additionalProperties: false + description: 'The S3 credentials. It is recommended that IAM user credentials be used rather than master S3 credentials. ' + - type: object + properties: + credentials_key: + type: string + description: Key to retrieve stored credentials for accessing the URL + required: + - credentials_key + additionalProperties: false + description: Credentials granting access to the location. + required: + - url + - type: object + properties: + mime: + type: string + additionalProperties: true + - type: string + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + required: + - urls + - type: object + properties: + map: + type: object + properties: + audio: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + channels: + type: array + items: + type: object + additionalProperties: false + video: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + dolby_vision_metadata_url_id: + type: string + additionalProperties: false + subtitle: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + additionalProperties: false + additionalProperties: false + outputs: + type: array + items: + type: object + properties: + name: + type: string + encode_profile: + type: object + required: + - container + properties: + container: + type: object + required: + - kind + properties: + kind: + enum: + - hls + - hls/fmp4 + - mpegts + - mpeg2ts + - mp4 + - m4a + - fmp4 + - m4s + - wav + - nut + description: The type of media container for the output. + use_editlist: + type: boolean + description: This sets the edit list atom (elst) in MP4 files. Read more here https://developer.apple.com/documentation/quicktime-file-format/edit_list_atom. The default is false. + mpegts_initial_discontinuity: + type: boolean + default: false + segment_duration_sec: + type: number + description: The segment duration in seconds for segmented or fragmented streams such as HLS or mp4/MPEG-DASH. Decimal notation (e.g. 5.5) is supported. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + additionalProperties: false + video: + anyOf: + - type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + - type: array + items: + type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + audio: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the audio track. + program_name: + type: string + description: Program name of the audio track. + codec: + enum: + - aac + - aac_lc + - he_aac1 + - he_aac2 + - ac4 + - ddp_joc + description: The audio codec to use for the track. + bitrate_kb: + type: number + description: The audio bitrate in kilobits per second. This is the average bitrate in the case of vbr. + channels: + type: integer + description: The number of audio channels. + sample_rate: + type: integer + description: The audio sample rate in Hz. Typical values are 44100 and 48000. Omit to use the source sample rate. + auto_generate_silence_track: + type: boolean + description: 'This fills the track with silence. ' + filters: + type: array + title: Audio Filters + description: The array of audio filters to be applied to the output. + items: + type: object + description: The audio filter object with a specific kind and payload format. + required: + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: normalize + type: object + properties: + kind: + const: normalize + payload: + type: object + description: Specifies parameters for the image overlay filter. + properties: + kind: + const: ebur128 + analyze_vurl: + type: string + payload: + type: object + properties: + source: + type: object + properties: + integrated_lufs: + type: number + minimum: -99 + maximum: 0 + loudness_lra_lufs: + type: number + minimum: 0 + maximum: 99 + true_peak_dbfs: + type: number + minimum: -99 + maximum: 99 + integrated_threshold_lufs: + type: number + minimum: -99 + maximum: 0 + offset: + type: number + minimum: -99 + maximum: 99 + integrated_lufs: + type: number + minimum: -70 + maximum: -5 + loudness_lra_lufs: + type: number + minimum: 1 + maximum: 50 + true_peak_dbfs: + type: number + minimum: -9 + maximum: 0 + allow_unprecise_mode: + type: boolean + default: false + not: + required: + - analyze_vurl + - payload + required: + - kind + additionalProperties: false + required: + - kind + additionalProperties: false + language: + type: string + description: The audio language code in ISO-639 notation. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + abr_map: + type: object + properties: + hls_audio_group: + type: string + is_hls_group_default: + type: boolean + default: false + content: + type: string + compatibility_group: + type: string + required: + - content + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + ddp_joc_upmix_mode: + enum: + - remap + - upmix + default: upmix + description: When upconverting to Dolby Atmos, this specifies the type of upmixing for DD+JOC encoding. + additionalProperties: false + description: Each audio track is an element of the array. + subtitle: + type: array + items: + type: object + properties: + id: + type: string + language: + type: string + program_name: + type: string + codec: + enum: + - webvtt + - stl + format_options: + type: object + properties: + sparse_vtt: + type: boolean + additionalProperties: false + track_selector: + type: object + additionalProperties: true + additionalProperties: false + additionalProperties: false + examples: + - encode_profile: + container: + kind: hls/fmp4 + segment_duration_sec: 2 + video: + - width: 1280 + height: 720 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 2500 + min_bitrate_kb: 2380 + max_bitrate_kb: 2620 + vbv_buffer_size_kb: 2650 + frame_rate: 30000/1001 + - width: 854 + height: 480 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 1200 + min_bitrate_kb: 1140 + max_bitrate_kb: 1260 + vbv_buffer_size_kb: 1260 + frame_rate: 30000/1001 + - width: 640 + height: 360 + codec: h264 + profile: high + level: '3.0' + bitrate_mode: vbr + bitrate_kb: 600 + min_bitrate_kb: 570 + max_bitrate_kb: 630 + vbv_buffer_size_kb: 630 + frame_rate: 30000/1001 + audio: + - codec: aac + bitrate_kb: 128 + channels: 2 + filters: + - kind: normalize + payload: + kind: ebur128 + payload: + integrated_lufs: -23 + additionalProperties: false + required: + - outputs + - type: object + properties: + analyzers: + type: array + items: + type: object + properties: + type: + type: string + enum: + - black_detection + - scene_detection + - silence_detection + - duplicate_frames_detection + config: + type: object + required: + - type + additionalProperties: false + - type: object + properties: + options: + allOf: + - type: object + properties: + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + - type: object + properties: + render_waveforms: + type: boolean + default: true + render_thumbnails: + type: boolean + default: true + show_dolby_vision_metadata_markers: + type: boolean + default: true + use_source_start_time_code: + type: boolean + default: false + template_authentication_token: + type: string + description: Authentication token to be included in requests made by the player when fetching the template. + unevaluatedProperties: false + unevaluatedProperties: false + hls_implicit: + allOf: + - type: object + properties: + urls: + type: array + items: + anyOf: + - allOf: + - type: object + properties: + url: + type: string + format: uri + description: URL of the media file + id: + type: string + description: Optional identifier for the URL + access: + oneOf: + - type: object + properties: + shared_key: + title: AWS Key + description: The AWS Key. + type: + - string + - 'null' + maxLength: 512 + secret_key: + title: AWS Secret + description: The AWS Secret. + type: + - string + - 'null' + maxLength: 512 + session_token: + title: AWS Session Token + description: The AWS Session Token. + type: + - string + - 'null' + maxLength: 2048 + region: + title: AWS Region + description: The AWS region (optional). + type: + - string + - 'null' + maxLength: 512 + required: + - shared_key + - secret_key + additionalProperties: false + description: 'The S3 credentials. It is recommended that IAM user credentials be used rather than master S3 credentials. ' + - type: object + properties: + credentials_key: + type: string + description: Key to retrieve stored credentials for accessing the URL + required: + - credentials_key + additionalProperties: false + description: Credentials granting access to the location. + required: + - url + - type: object + properties: + mime: + type: string + additionalProperties: true + - type: string + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + required: + - urls + - type: object + properties: + output_templates: + type: array + items: + type: object + properties: + type: + enum: + - audio + - video + - subtitle + name: + type: string + selectors: + type: array + items: + type: object + additionalProperties: true + encode_profile: + type: object + required: + - container + properties: + container: + type: object + required: + - kind + properties: + kind: + enum: + - hls + - hls/fmp4 + - mpegts + - mpeg2ts + - mp4 + - m4a + - fmp4 + - m4s + - wav + - nut + description: The type of media container for the output. + use_editlist: + type: boolean + description: This sets the edit list atom (elst) in MP4 files. Read more here https://developer.apple.com/documentation/quicktime-file-format/edit_list_atom. The default is false. + mpegts_initial_discontinuity: + type: boolean + default: false + segment_duration_sec: + type: number + description: The segment duration in seconds for segmented or fragmented streams such as HLS or mp4/MPEG-DASH. Decimal notation (e.g. 5.5) is supported. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + additionalProperties: false + video: + anyOf: + - type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + - type: array + items: + type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + audio: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the audio track. + program_name: + type: string + description: Program name of the audio track. + codec: + enum: + - aac + - aac_lc + - he_aac1 + - he_aac2 + - ac4 + - ddp_joc + description: The audio codec to use for the track. + bitrate_kb: + type: number + description: The audio bitrate in kilobits per second. This is the average bitrate in the case of vbr. + channels: + type: integer + description: The number of audio channels. + sample_rate: + type: integer + description: The audio sample rate in Hz. Typical values are 44100 and 48000. Omit to use the source sample rate. + auto_generate_silence_track: + type: boolean + description: 'This fills the track with silence. ' + filters: + type: array + title: Audio Filters + description: The array of audio filters to be applied to the output. + items: + type: object + description: The audio filter object with a specific kind and payload format. + required: + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: normalize + type: object + properties: + kind: + const: normalize + payload: + type: object + description: Specifies parameters for the image overlay filter. + properties: + kind: + const: ebur128 + analyze_vurl: + type: string + payload: + type: object + properties: + source: + type: object + properties: + integrated_lufs: + type: number + minimum: -99 + maximum: 0 + loudness_lra_lufs: + type: number + minimum: 0 + maximum: 99 + true_peak_dbfs: + type: number + minimum: -99 + maximum: 99 + integrated_threshold_lufs: + type: number + minimum: -99 + maximum: 0 + offset: + type: number + minimum: -99 + maximum: 99 + integrated_lufs: + type: number + minimum: -70 + maximum: -5 + loudness_lra_lufs: + type: number + minimum: 1 + maximum: 50 + true_peak_dbfs: + type: number + minimum: -9 + maximum: 0 + allow_unprecise_mode: + type: boolean + default: false + not: + required: + - analyze_vurl + - payload + required: + - kind + additionalProperties: false + required: + - kind + additionalProperties: false + language: + type: string + description: The audio language code in ISO-639 notation. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + abr_map: + type: object + properties: + hls_audio_group: + type: string + is_hls_group_default: + type: boolean + default: false + content: + type: string + compatibility_group: + type: string + required: + - content + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + ddp_joc_upmix_mode: + enum: + - remap + - upmix + default: upmix + description: When upconverting to Dolby Atmos, this specifies the type of upmixing for DD+JOC encoding. + additionalProperties: false + description: Each audio track is an element of the array. + subtitle: + type: array + items: + type: object + properties: + id: + type: string + language: + type: string + program_name: + type: string + codec: + enum: + - webvtt + - stl + format_options: + type: object + properties: + sparse_vtt: + type: boolean + additionalProperties: false + track_selector: + type: object + additionalProperties: true + additionalProperties: false + additionalProperties: false + examples: + - encode_profile: + container: + kind: hls/fmp4 + segment_duration_sec: 2 + video: + - width: 1280 + height: 720 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 2500 + min_bitrate_kb: 2380 + max_bitrate_kb: 2620 + vbv_buffer_size_kb: 2650 + frame_rate: 30000/1001 + - width: 854 + height: 480 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 1200 + min_bitrate_kb: 1140 + max_bitrate_kb: 1260 + vbv_buffer_size_kb: 1260 + frame_rate: 30000/1001 + - width: 640 + height: 360 + codec: h264 + profile: high + level: '3.0' + bitrate_mode: vbr + bitrate_kb: 600 + min_bitrate_kb: 570 + max_bitrate_kb: 630 + vbv_buffer_size_kb: 630 + frame_rate: 30000/1001 + audio: + - codec: aac + bitrate_kb: 128 + channels: 2 + filters: + - kind: normalize + payload: + kind: ebur128 + payload: + integrated_lufs: -23 + required: + - type + - encode_profile + additionalProperties: false + required: + - output_templates + - type: object + properties: + analyzers: + type: array + items: + type: object + properties: + type: + type: string + enum: + - black_detection + - scene_detection + - silence_detection + - duplicate_frames_detection + config: + type: object + required: + - type + additionalProperties: false + - type: object + properties: + options: + allOf: + - type: object + properties: + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + - type: object + properties: + render_waveforms: + type: boolean + default: true + render_thumbnails: + type: boolean + default: true + show_dolby_vision_metadata_markers: + type: boolean + default: true + use_source_start_time_code: + type: boolean + default: false + template_authentication_token: + type: string + description: Authentication token to be included in requests made by the player when fetching the template. + unevaluatedProperties: false + unevaluatedProperties: false + codemill_explicit_outputs: + allOf: + - type: object + properties: + name: + type: string + description: Pretty name for this asset + x-apps: + - core-api + urls: + type: array + items: + anyOf: + - allOf: + - type: object + properties: + url: + type: string + format: uri + description: URL of the media file + id: + type: string + description: Optional identifier for the URL + access: + oneOf: + - type: object + properties: + shared_key: + title: AWS Key + description: The AWS Key. + type: + - string + - 'null' + maxLength: 512 + secret_key: + title: AWS Secret + description: The AWS Secret. + type: + - string + - 'null' + maxLength: 512 + session_token: + title: AWS Session Token + description: The AWS Session Token. + type: + - string + - 'null' + maxLength: 2048 + region: + title: AWS Region + description: The AWS region (optional). + type: + - string + - 'null' + maxLength: 512 + required: + - shared_key + - secret_key + additionalProperties: false + - type: object + properties: + credentials_key: + type: string + description: Key to retrieve stored credentials for accessing the URL + required: + - credentials_key + additionalProperties: false + required: + - url + - type: object + properties: + dolby_vision_metadata_xml: + type: string + deprecated: true + config: + type: object + properties: {} + x-internal: true + additionalProperties: true + media_indices: + type: object + properties: + obtain_media_index: + type: boolean + default: true + obtain_libmediainfo: + type: boolean + default: true + obtain_ffprobe: + type: boolean + default: true + obtain_streaminfo: + type: boolean + default: true + obtain_dolby_e: + type: boolean + default: true + additionalProperties: false + mime: + type: string + additionalProperties: true + - type: string + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + encryption: + type: object + properties: + enabled: + type: + - boolean + kind: + enum: + - aws_kms + aws_kms_region: + type: + - string + additionalProperties: false + x-internal: true + required: + - urls + - type: object + properties: + map: + type: object + properties: + audio: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + channels: + type: array + items: + type: object + additionalProperties: false + video: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + dolby_vision_metadata_url_id: + type: string + additionalProperties: false + subtitle: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + additionalProperties: false + additionalProperties: false + outputs: + type: array + items: + type: object + properties: + name: + type: string + encode_profile: + type: object + required: + - container + properties: + container: + type: object + required: + - kind + properties: + kind: + enum: + - hls + - hls/fmp4 + - mpegts + - mpeg2ts + - mp4 + - m4a + - fmp4 + - m4s + - wav + - nut + description: The type of media container for the output. + use_editlist: + type: boolean + description: This sets the edit list atom (elst) in MP4 files. Read more here https://developer.apple.com/documentation/quicktime-file-format/edit_list_atom. The default is false. + mpegts_initial_discontinuity: + type: boolean + default: false + segment_duration_sec: + type: number + description: The segment duration in seconds for segmented or fragmented streams such as HLS or mp4/MPEG-DASH. Decimal notation (e.g. 5.5) is supported. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + additionalProperties: false + video: + anyOf: + - type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + ffmpeg_cli_insert: + type: string + description: The FFmpeg command line arguments to be used. Note that these will override competing settings in the JSON. + x-internal: true + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + track_selector: + type: object + additionalProperties: true + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + - type: array + items: + type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + ffmpeg_cli_insert: + type: string + description: The FFmpeg command line arguments to be used. Note that these will override competing settings in the JSON. + x-internal: true + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + track_selector: + type: object + additionalProperties: true + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + audio: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the audio track. + program_name: + type: string + description: Program name of the audio track. + codec: + enum: + - aac + - aac_lc + - he_aac1 + - he_aac2 + - ac4 + - ddp_joc + description: The audio codec to use for the track. + bitrate_kb: + type: number + description: The audio bitrate in kilobits per second. This is the average bitrate in the case of vbr. + channels: + type: integer + description: The number of audio channels. + sample_rate: + type: integer + description: The audio sample rate in Hz. Typical values are 44100 and 48000. Omit to use the source sample rate. + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + auto_generate_silence_track: + type: boolean + description: 'This fills the track with silence. ' + filters: + type: array + title: Audio Filters + description: The array of audio filters to be applied to the output. + items: + type: object + description: The audio filter object with a specific kind and payload format. + required: + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: normalize + type: object + properties: + kind: + const: normalize + payload: + type: object + description: Specifies parameters for the image overlay filter. + properties: + kind: + const: ebur128 + analyze_vurl: + type: string + payload: + type: object + properties: + source: + type: object + properties: + integrated_lufs: + type: number + minimum: -99 + maximum: 0 + loudness_lra_lufs: + type: number + minimum: 0 + maximum: 99 + true_peak_dbfs: + type: number + minimum: -99 + maximum: 99 + integrated_threshold_lufs: + type: number + minimum: -99 + maximum: 0 + offset: + type: number + minimum: -99 + maximum: 99 + integrated_lufs: + type: number + minimum: -70 + maximum: -5 + loudness_lra_lufs: + type: number + minimum: 1 + maximum: 50 + true_peak_dbfs: + type: number + minimum: -9 + maximum: 0 + allow_unprecise_mode: + type: boolean + default: false + not: + required: + - analyze_vurl + - payload + required: + - kind + additionalProperties: false + required: + - kind + additionalProperties: false + language: + type: string + description: The audio language code in ISO-639 notation. + duration_sec: + type: number + x-internal: true + track_selector: + type: object + additionalProperties: true + description: Allows the selection of specific source tracks as the source(s) for this audio track. + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + abr_map: + type: object + properties: + hls_audio_group: + type: string + is_hls_group_default: + type: boolean + default: false + content: + type: string + compatibility_group: + type: string + required: + - content + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + ddp_joc_upmix_mode: + enum: + - remap + - upmix + default: upmix + description: When upconverting to Dolby Atmos, this specifies the type of upmixing for DD+JOC encoding. + linear_audio_encoding: + type: boolean + default: false + deprecated: true + additionalProperties: false + description: Each audio track is an element of the array. + subtitle: + type: array + items: + type: object + properties: + id: + type: string + language: + type: string + program_name: + type: string + codec: + enum: + - webvtt + - stl + format_options: + type: object + properties: + sparse_vtt: + type: boolean + additionalProperties: false + track_selector: + type: object + additionalProperties: true + additionalProperties: false + additionalProperties: false + examples: + - encode_profile: + container: + kind: hls/fmp4 + segment_duration_sec: 2 + video: + - width: 1280 + height: 720 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 2500 + min_bitrate_kb: 2380 + max_bitrate_kb: 2620 + vbv_buffer_size_kb: 2650 + frame_rate: 30000/1001 + - width: 854 + height: 480 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 1200 + min_bitrate_kb: 1140 + max_bitrate_kb: 1260 + vbv_buffer_size_kb: 1260 + frame_rate: 30000/1001 + - width: 640 + height: 360 + codec: h264 + profile: high + level: '3.0' + bitrate_mode: vbr + bitrate_kb: 600 + min_bitrate_kb: 570 + max_bitrate_kb: 630 + vbv_buffer_size_kb: 630 + frame_rate: 30000/1001 + audio: + - codec: aac + bitrate_kb: 128 + channels: 2 + filters: + - kind: normalize + payload: + kind: ebur128 + payload: + integrated_lufs: -23 + additionalProperties: false + required: + - outputs + - type: object + properties: + analyzers: + type: array + items: + type: object + properties: + type: + type: string + enum: + - black_detection + - scene_detection + - silence_detection + - duplicate_frames_detection + config: + type: object + required: + - type + additionalProperties: false + - type: object + properties: + options: + allOf: + - type: object + properties: + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + encryption: + type: object + properties: + enabled: + type: + - boolean + kind: + enum: + - aws_kms + aws_kms_region: + type: + - string + additionalProperties: false + x-internal: true + cors_policy: + type: object + properties: + enabled: + type: + - boolean + origins: + type: array + items: + type: string + additionalProperties: false + - type: object + properties: + response_type: + x-internal: true + enum: + - player_url + - template_url + - session_data + - hybrik_player_json + - full + x-docs-enum: + player_url: Returns a URL to a web player that will play the content. + template_url: Returns a URL to the player JSON template that can be used to launch the player. + full: Returns all available information including player URL, template_url, and more. + default: player_url + render_waveforms: + type: boolean + default: true + render_thumbnails: + type: boolean + default: true + show_dolby_vision_metadata_markers: + type: boolean + default: true + use_source_start_time_code: + type: boolean + default: false + template_authentication_token: + type: string + description: Authentication token to be included in requests made by the player when fetching the template. + http_query_auth_token: + type: string + x-internal: true + http_header_auth_token: + type: string + x-internal: true + native_dolby_e: + type: boolean + default: false + x-internal: true + use_discrete_media: + type: boolean + default: false + x-internal: true + track_index_base: + type: integer + default: 0 + x-internal: true + unevaluatedProperties: false + unevaluatedProperties: false + codemill_implicit_templates: + allOf: + - type: object + properties: + name: + type: string + description: Pretty name for this asset + x-apps: + - core-api + urls: + type: array + items: + anyOf: + - allOf: + - type: object + properties: + url: + type: string + format: uri + description: URL of the media file + id: + type: string + description: Optional identifier for the URL + access: + oneOf: + - type: object + properties: + shared_key: + title: AWS Key + description: The AWS Key. + type: + - string + - 'null' + maxLength: 512 + secret_key: + title: AWS Secret + description: The AWS Secret. + type: + - string + - 'null' + maxLength: 512 + session_token: + title: AWS Session Token + description: The AWS Session Token. + type: + - string + - 'null' + maxLength: 2048 + region: + title: AWS Region + description: The AWS region (optional). + type: + - string + - 'null' + maxLength: 512 + required: + - shared_key + - secret_key + additionalProperties: false + - type: object + properties: + credentials_key: + type: string + description: Key to retrieve stored credentials for accessing the URL + required: + - credentials_key + additionalProperties: false + required: + - url + - type: object + properties: + dolby_vision_metadata_xml: + type: string + deprecated: true + config: + type: object + properties: {} + x-internal: true + additionalProperties: true + media_indices: + type: object + properties: + obtain_media_index: + type: boolean + default: true + obtain_libmediainfo: + type: boolean + default: true + obtain_ffprobe: + type: boolean + default: true + obtain_streaminfo: + type: boolean + default: true + obtain_dolby_e: + type: boolean + default: true + additionalProperties: false + mime: + type: string + additionalProperties: true + - type: string + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + encryption: + type: object + properties: + enabled: + type: + - boolean + kind: + enum: + - aws_kms + aws_kms_region: + type: + - string + additionalProperties: false + x-internal: true + required: + - urls + - type: object + properties: + output_templates: + type: array + items: + type: object + properties: + type: + enum: + - audio + - video + - subtitle + name: + type: string + selectors: + type: array + items: + type: object + additionalProperties: true + encode_profile: + type: object + required: + - container + properties: + container: + type: object + required: + - kind + properties: + kind: + enum: + - hls + - hls/fmp4 + - mpegts + - mpeg2ts + - mp4 + - m4a + - fmp4 + - m4s + - wav + - nut + description: The type of media container for the output. + use_editlist: + type: boolean + description: This sets the edit list atom (elst) in MP4 files. Read more here https://developer.apple.com/documentation/quicktime-file-format/edit_list_atom. The default is false. + mpegts_initial_discontinuity: + type: boolean + default: false + segment_duration_sec: + type: number + description: The segment duration in seconds for segmented or fragmented streams such as HLS or mp4/MPEG-DASH. Decimal notation (e.g. 5.5) is supported. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + additionalProperties: false + video: + anyOf: + - type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + ffmpeg_cli_insert: + type: string + description: The FFmpeg command line arguments to be used. Note that these will override competing settings in the JSON. + x-internal: true + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + track_selector: + type: object + additionalProperties: true + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + - type: array + items: + type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + ffmpeg_cli_insert: + type: string + description: The FFmpeg command line arguments to be used. Note that these will override competing settings in the JSON. + x-internal: true + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + track_selector: + type: object + additionalProperties: true + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + audio: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the audio track. + program_name: + type: string + description: Program name of the audio track. + codec: + enum: + - aac + - aac_lc + - he_aac1 + - he_aac2 + - ac4 + - ddp_joc + description: The audio codec to use for the track. + bitrate_kb: + type: number + description: The audio bitrate in kilobits per second. This is the average bitrate in the case of vbr. + channels: + type: integer + description: The number of audio channels. + sample_rate: + type: integer + description: The audio sample rate in Hz. Typical values are 44100 and 48000. Omit to use the source sample rate. + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + auto_generate_silence_track: + type: boolean + description: 'This fills the track with silence. ' + filters: + type: array + title: Audio Filters + description: The array of audio filters to be applied to the output. + items: + type: object + description: The audio filter object with a specific kind and payload format. + required: + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: normalize + type: object + properties: + kind: + const: normalize + payload: + type: object + description: Specifies parameters for the image overlay filter. + properties: + kind: + const: ebur128 + analyze_vurl: + type: string + payload: + type: object + properties: + source: + type: object + properties: + integrated_lufs: + type: number + minimum: -99 + maximum: 0 + loudness_lra_lufs: + type: number + minimum: 0 + maximum: 99 + true_peak_dbfs: + type: number + minimum: -99 + maximum: 99 + integrated_threshold_lufs: + type: number + minimum: -99 + maximum: 0 + offset: + type: number + minimum: -99 + maximum: 99 + integrated_lufs: + type: number + minimum: -70 + maximum: -5 + loudness_lra_lufs: + type: number + minimum: 1 + maximum: 50 + true_peak_dbfs: + type: number + minimum: -9 + maximum: 0 + allow_unprecise_mode: + type: boolean + default: false + not: + required: + - analyze_vurl + - payload + required: + - kind + additionalProperties: false + required: + - kind + additionalProperties: false + language: + type: string + description: The audio language code in ISO-639 notation. + duration_sec: + type: number + x-internal: true + track_selector: + type: object + additionalProperties: true + description: Allows the selection of specific source tracks as the source(s) for this audio track. + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + abr_map: + type: object + properties: + hls_audio_group: + type: string + is_hls_group_default: + type: boolean + default: false + content: + type: string + compatibility_group: + type: string + required: + - content + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + ddp_joc_upmix_mode: + enum: + - remap + - upmix + default: upmix + description: When upconverting to Dolby Atmos, this specifies the type of upmixing for DD+JOC encoding. + linear_audio_encoding: + type: boolean + default: false + deprecated: true + additionalProperties: false + description: Each audio track is an element of the array. + subtitle: + type: array + items: + type: object + properties: + id: + type: string + language: + type: string + program_name: + type: string + codec: + enum: + - webvtt + - stl + format_options: + type: object + properties: + sparse_vtt: + type: boolean + additionalProperties: false + track_selector: + type: object + additionalProperties: true + additionalProperties: false + additionalProperties: false + examples: + - encode_profile: + container: + kind: hls/fmp4 + segment_duration_sec: 2 + video: + - width: 1280 + height: 720 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 2500 + min_bitrate_kb: 2380 + max_bitrate_kb: 2620 + vbv_buffer_size_kb: 2650 + frame_rate: 30000/1001 + - width: 854 + height: 480 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 1200 + min_bitrate_kb: 1140 + max_bitrate_kb: 1260 + vbv_buffer_size_kb: 1260 + frame_rate: 30000/1001 + - width: 640 + height: 360 + codec: h264 + profile: high + level: '3.0' + bitrate_mode: vbr + bitrate_kb: 600 + min_bitrate_kb: 570 + max_bitrate_kb: 630 + vbv_buffer_size_kb: 630 + frame_rate: 30000/1001 + audio: + - codec: aac + bitrate_kb: 128 + channels: 2 + filters: + - kind: normalize + payload: + kind: ebur128 + payload: + integrated_lufs: -23 + required: + - type + - encode_profile + additionalProperties: false + required: + - output_templates + - type: object + properties: + analyzers: + type: array + items: + type: object + properties: + type: + type: string + enum: + - black_detection + - scene_detection + - silence_detection + - duplicate_frames_detection + config: + type: object + required: + - type + additionalProperties: false + - type: object + properties: + options: + allOf: + - type: object + properties: + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + encryption: + type: object + properties: + enabled: + type: + - boolean + kind: + enum: + - aws_kms + aws_kms_region: + type: + - string + additionalProperties: false + x-internal: true + cors_policy: + type: object + properties: + enabled: + type: + - boolean + origins: + type: array + items: + type: string + additionalProperties: false + - type: object + properties: + response_type: + x-internal: true + enum: + - player_url + - template_url + - session_data + - hybrik_player_json + - full + x-docs-enum: + player_url: Returns a URL to a web player that will play the content. + template_url: Returns a URL to the player JSON template that can be used to launch the player. + full: Returns all available information including player URL, template_url, and more. + default: player_url + render_waveforms: + type: boolean + default: true + render_thumbnails: + type: boolean + default: true + show_dolby_vision_metadata_markers: + type: boolean + default: true + use_source_start_time_code: + type: boolean + default: false + template_authentication_token: + type: string + description: Authentication token to be included in requests made by the player when fetching the template. + http_query_auth_token: + type: string + x-internal: true + http_header_auth_token: + type: string + x-internal: true + native_dolby_e: + type: boolean + default: false + x-internal: true + use_discrete_media: + type: boolean + default: false + x-internal: true + track_index_base: + type: integer + default: 0 + x-internal: true + unevaluatedProperties: false + unevaluatedProperties: false + omakase_explicit_outputs: + allOf: + - type: object + properties: + name: + type: string + description: Pretty name for this asset + x-apps: + - core-api + urls: + type: array + items: + anyOf: + - allOf: + - type: object + properties: + url: + type: string + format: uri + description: URL of the media file + id: + type: string + description: Optional identifier for the URL + access: + oneOf: + - type: object + properties: + shared_key: + title: AWS Key + description: The AWS Key. + type: + - string + - 'null' + maxLength: 512 + secret_key: + title: AWS Secret + description: The AWS Secret. + type: + - string + - 'null' + maxLength: 512 + session_token: + title: AWS Session Token + description: The AWS Session Token. + type: + - string + - 'null' + maxLength: 2048 + region: + title: AWS Region + description: The AWS region (optional). + type: + - string + - 'null' + maxLength: 512 + required: + - shared_key + - secret_key + additionalProperties: false + - type: object + properties: + credentials_key: + type: string + description: Key to retrieve stored credentials for accessing the URL + required: + - credentials_key + additionalProperties: false + required: + - url + - type: object + properties: + dolby_vision_metadata_xml: + type: string + deprecated: true + config: + type: object + properties: {} + x-internal: true + additionalProperties: true + media_indices: + type: object + properties: + obtain_media_index: + type: boolean + default: true + obtain_libmediainfo: + type: boolean + default: true + obtain_ffprobe: + type: boolean + default: true + obtain_streaminfo: + type: boolean + default: true + obtain_dolby_e: + type: boolean + default: true + additionalProperties: false + mime: + type: string + additionalProperties: true + - type: string + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + encryption: + type: object + properties: + enabled: + type: + - boolean + kind: + enum: + - aws_kms + aws_kms_region: + type: + - string + additionalProperties: false + x-internal: true + required: + - urls + - type: object + properties: + map: + type: object + properties: + audio: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + channels: + type: array + items: + type: object + additionalProperties: false + video: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + dolby_vision_metadata_url_id: + type: string + additionalProperties: false + subtitle: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + additionalProperties: false + additionalProperties: false + outputs: + type: array + items: + type: object + properties: + name: + type: string + encode_profile: + type: object + required: + - container + properties: + container: + type: object + required: + - kind + properties: + kind: + enum: + - hls + - hls/fmp4 + - mpegts + - mpeg2ts + - mp4 + - m4a + - fmp4 + - m4s + - wav + - nut + description: The type of media container for the output. + use_editlist: + type: boolean + description: This sets the edit list atom (elst) in MP4 files. Read more here https://developer.apple.com/documentation/quicktime-file-format/edit_list_atom. The default is false. + mpegts_initial_discontinuity: + type: boolean + default: false + segment_duration_sec: + type: number + description: The segment duration in seconds for segmented or fragmented streams such as HLS or mp4/MPEG-DASH. Decimal notation (e.g. 5.5) is supported. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + additionalProperties: false + video: + anyOf: + - type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + ffmpeg_cli_insert: + type: string + description: The FFmpeg command line arguments to be used. Note that these will override competing settings in the JSON. + x-internal: true + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + track_selector: + type: object + additionalProperties: true + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + - type: array + items: + type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + ffmpeg_cli_insert: + type: string + description: The FFmpeg command line arguments to be used. Note that these will override competing settings in the JSON. + x-internal: true + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + track_selector: + type: object + additionalProperties: true + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + audio: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the audio track. + program_name: + type: string + description: Program name of the audio track. + codec: + enum: + - aac + - aac_lc + - he_aac1 + - he_aac2 + - ac4 + - ddp_joc + description: The audio codec to use for the track. + bitrate_kb: + type: number + description: The audio bitrate in kilobits per second. This is the average bitrate in the case of vbr. + channels: + type: integer + description: The number of audio channels. + sample_rate: + type: integer + description: The audio sample rate in Hz. Typical values are 44100 and 48000. Omit to use the source sample rate. + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + auto_generate_silence_track: + type: boolean + description: 'This fills the track with silence. ' + filters: + type: array + title: Audio Filters + description: The array of audio filters to be applied to the output. + items: + type: object + description: The audio filter object with a specific kind and payload format. + required: + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: normalize + type: object + properties: + kind: + const: normalize + payload: + type: object + description: Specifies parameters for the image overlay filter. + properties: + kind: + const: ebur128 + analyze_vurl: + type: string + payload: + type: object + properties: + source: + type: object + properties: + integrated_lufs: + type: number + minimum: -99 + maximum: 0 + loudness_lra_lufs: + type: number + minimum: 0 + maximum: 99 + true_peak_dbfs: + type: number + minimum: -99 + maximum: 99 + integrated_threshold_lufs: + type: number + minimum: -99 + maximum: 0 + offset: + type: number + minimum: -99 + maximum: 99 + integrated_lufs: + type: number + minimum: -70 + maximum: -5 + loudness_lra_lufs: + type: number + minimum: 1 + maximum: 50 + true_peak_dbfs: + type: number + minimum: -9 + maximum: 0 + allow_unprecise_mode: + type: boolean + default: false + not: + required: + - analyze_vurl + - payload + required: + - kind + additionalProperties: false + required: + - kind + additionalProperties: false + language: + type: string + description: The audio language code in ISO-639 notation. + duration_sec: + type: number + x-internal: true + track_selector: + type: object + additionalProperties: true + description: Allows the selection of specific source tracks as the source(s) for this audio track. + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + abr_map: + type: object + properties: + hls_audio_group: + type: string + is_hls_group_default: + type: boolean + default: false + content: + type: string + compatibility_group: + type: string + required: + - content + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + ddp_joc_upmix_mode: + enum: + - remap + - upmix + default: upmix + description: When upconverting to Dolby Atmos, this specifies the type of upmixing for DD+JOC encoding. + linear_audio_encoding: + type: boolean + default: false + deprecated: true + additionalProperties: false + description: Each audio track is an element of the array. + subtitle: + type: array + items: + type: object + properties: + id: + type: string + language: + type: string + program_name: + type: string + codec: + enum: + - webvtt + - stl + format_options: + type: object + properties: + sparse_vtt: + type: boolean + additionalProperties: false + track_selector: + type: object + additionalProperties: true + additionalProperties: false + additionalProperties: false + examples: + - encode_profile: + container: + kind: hls/fmp4 + segment_duration_sec: 2 + video: + - width: 1280 + height: 720 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 2500 + min_bitrate_kb: 2380 + max_bitrate_kb: 2620 + vbv_buffer_size_kb: 2650 + frame_rate: 30000/1001 + - width: 854 + height: 480 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 1200 + min_bitrate_kb: 1140 + max_bitrate_kb: 1260 + vbv_buffer_size_kb: 1260 + frame_rate: 30000/1001 + - width: 640 + height: 360 + codec: h264 + profile: high + level: '3.0' + bitrate_mode: vbr + bitrate_kb: 600 + min_bitrate_kb: 570 + max_bitrate_kb: 630 + vbv_buffer_size_kb: 630 + frame_rate: 30000/1001 + audio: + - codec: aac + bitrate_kb: 128 + channels: 2 + filters: + - kind: normalize + payload: + kind: ebur128 + payload: + integrated_lufs: -23 + additionalProperties: false + required: + - outputs + - type: object + properties: + analyzers: + type: array + items: + type: object + properties: + type: + type: string + enum: + - black_detection + - scene_detection + - silence_detection + - duplicate_frames_detection + config: + type: object + required: + - type + additionalProperties: false + - type: object + properties: + options: + allOf: + - type: object + properties: + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + encryption: + type: object + properties: + enabled: + type: + - boolean + kind: + enum: + - aws_kms + aws_kms_region: + type: + - string + additionalProperties: false + x-internal: true + cors_policy: + type: object + properties: + enabled: + type: + - boolean + origins: + type: array + items: + type: string + additionalProperties: false + - type: object + properties: + response_type: + x-internal: true + enum: + - player_url + - template_url + - session_data + - hybrik_player_json + - full + x-docs-enum: + player_url: Returns a URL to a web player that will play the content. + template_url: Returns a URL to the player JSON template that can be used to launch the player. + full: Returns all available information including player URL, template_url, and more. + default: player_url + render_waveforms: + type: boolean + default: true + render_thumbnails: + type: boolean + default: true + show_dolby_vision_metadata_markers: + type: boolean + default: true + use_source_start_time_code: + type: boolean + default: false + template_authentication_token: + type: string + description: Authentication token to be included in requests made by the player when fetching the template. + http_query_auth_token: + type: string + x-internal: true + http_header_auth_token: + type: string + x-internal: true + native_dolby_e: + type: boolean + default: false + x-internal: true + use_discrete_media: + type: boolean + default: false + x-internal: true + track_index_base: + type: integer + default: 0 + x-internal: true + unevaluatedProperties: false + unevaluatedProperties: false + omakase_implicit_templates: + allOf: + - type: object + properties: + name: + type: string + description: Pretty name for this asset + x-apps: + - core-api + urls: + type: array + items: + anyOf: + - allOf: + - type: object + properties: + url: + type: string + format: uri + description: URL of the media file + id: + type: string + description: Optional identifier for the URL + access: + oneOf: + - type: object + properties: + shared_key: + title: AWS Key + description: The AWS Key. + type: + - string + - 'null' + maxLength: 512 + secret_key: + title: AWS Secret + description: The AWS Secret. + type: + - string + - 'null' + maxLength: 512 + session_token: + title: AWS Session Token + description: The AWS Session Token. + type: + - string + - 'null' + maxLength: 2048 + region: + title: AWS Region + description: The AWS region (optional). + type: + - string + - 'null' + maxLength: 512 + required: + - shared_key + - secret_key + additionalProperties: false + - type: object + properties: + credentials_key: + type: string + description: Key to retrieve stored credentials for accessing the URL + required: + - credentials_key + additionalProperties: false + required: + - url + - type: object + properties: + dolby_vision_metadata_xml: + type: string + deprecated: true + config: + type: object + properties: {} + x-internal: true + additionalProperties: true + media_indices: + type: object + properties: + obtain_media_index: + type: boolean + default: true + obtain_libmediainfo: + type: boolean + default: true + obtain_ffprobe: + type: boolean + default: true + obtain_streaminfo: + type: boolean + default: true + obtain_dolby_e: + type: boolean + default: true + additionalProperties: false + mime: + type: string + additionalProperties: true + - type: string + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + encryption: + type: object + properties: + enabled: + type: + - boolean + kind: + enum: + - aws_kms + aws_kms_region: + type: + - string + additionalProperties: false + x-internal: true + required: + - urls + - type: object + properties: + output_templates: + type: array + items: + type: object + properties: + type: + enum: + - audio + - video + - subtitle + name: + type: string + selectors: + type: array + items: + type: object + additionalProperties: true + encode_profile: + type: object + required: + - container + properties: + container: + type: object + required: + - kind + properties: + kind: + enum: + - hls + - hls/fmp4 + - mpegts + - mpeg2ts + - mp4 + - m4a + - fmp4 + - m4s + - wav + - nut + description: The type of media container for the output. + use_editlist: + type: boolean + description: This sets the edit list atom (elst) in MP4 files. Read more here https://developer.apple.com/documentation/quicktime-file-format/edit_list_atom. The default is false. + mpegts_initial_discontinuity: + type: boolean + default: false + segment_duration_sec: + type: number + description: The segment duration in seconds for segmented or fragmented streams such as HLS or mp4/MPEG-DASH. Decimal notation (e.g. 5.5) is supported. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + additionalProperties: false + video: + anyOf: + - type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + ffmpeg_cli_insert: + type: string + description: The FFmpeg command line arguments to be used. Note that these will override competing settings in the JSON. + x-internal: true + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + track_selector: + type: object + additionalProperties: true + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + - type: array + items: + type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + ffmpeg_cli_insert: + type: string + description: The FFmpeg command line arguments to be used. Note that these will override competing settings in the JSON. + x-internal: true + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + track_selector: + type: object + additionalProperties: true + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + audio: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the audio track. + program_name: + type: string + description: Program name of the audio track. + codec: + enum: + - aac + - aac_lc + - he_aac1 + - he_aac2 + - ac4 + - ddp_joc + description: The audio codec to use for the track. + bitrate_kb: + type: number + description: The audio bitrate in kilobits per second. This is the average bitrate in the case of vbr. + channels: + type: integer + description: The number of audio channels. + sample_rate: + type: integer + description: The audio sample rate in Hz. Typical values are 44100 and 48000. Omit to use the source sample rate. + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + auto_generate_silence_track: + type: boolean + description: 'This fills the track with silence. ' + filters: + type: array + title: Audio Filters + description: The array of audio filters to be applied to the output. + items: + type: object + description: The audio filter object with a specific kind and payload format. + required: + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: normalize + type: object + properties: + kind: + const: normalize + payload: + type: object + description: Specifies parameters for the image overlay filter. + properties: + kind: + const: ebur128 + analyze_vurl: + type: string + payload: + type: object + properties: + source: + type: object + properties: + integrated_lufs: + type: number + minimum: -99 + maximum: 0 + loudness_lra_lufs: + type: number + minimum: 0 + maximum: 99 + true_peak_dbfs: + type: number + minimum: -99 + maximum: 99 + integrated_threshold_lufs: + type: number + minimum: -99 + maximum: 0 + offset: + type: number + minimum: -99 + maximum: 99 + integrated_lufs: + type: number + minimum: -70 + maximum: -5 + loudness_lra_lufs: + type: number + minimum: 1 + maximum: 50 + true_peak_dbfs: + type: number + minimum: -9 + maximum: 0 + allow_unprecise_mode: + type: boolean + default: false + not: + required: + - analyze_vurl + - payload + required: + - kind + additionalProperties: false + required: + - kind + additionalProperties: false + language: + type: string + description: The audio language code in ISO-639 notation. + duration_sec: + type: number + x-internal: true + track_selector: + type: object + additionalProperties: true + description: Allows the selection of specific source tracks as the source(s) for this audio track. + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + abr_map: + type: object + properties: + hls_audio_group: + type: string + is_hls_group_default: + type: boolean + default: false + content: + type: string + compatibility_group: + type: string + required: + - content + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + ddp_joc_upmix_mode: + enum: + - remap + - upmix + default: upmix + description: When upconverting to Dolby Atmos, this specifies the type of upmixing for DD+JOC encoding. + linear_audio_encoding: + type: boolean + default: false + deprecated: true + additionalProperties: false + description: Each audio track is an element of the array. + subtitle: + type: array + items: + type: object + properties: + id: + type: string + language: + type: string + program_name: + type: string + codec: + enum: + - webvtt + - stl + format_options: + type: object + properties: + sparse_vtt: + type: boolean + additionalProperties: false + track_selector: + type: object + additionalProperties: true + additionalProperties: false + additionalProperties: false + examples: + - encode_profile: + container: + kind: hls/fmp4 + segment_duration_sec: 2 + video: + - width: 1280 + height: 720 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 2500 + min_bitrate_kb: 2380 + max_bitrate_kb: 2620 + vbv_buffer_size_kb: 2650 + frame_rate: 30000/1001 + - width: 854 + height: 480 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 1200 + min_bitrate_kb: 1140 + max_bitrate_kb: 1260 + vbv_buffer_size_kb: 1260 + frame_rate: 30000/1001 + - width: 640 + height: 360 + codec: h264 + profile: high + level: '3.0' + bitrate_mode: vbr + bitrate_kb: 600 + min_bitrate_kb: 570 + max_bitrate_kb: 630 + vbv_buffer_size_kb: 630 + frame_rate: 30000/1001 + audio: + - codec: aac + bitrate_kb: 128 + channels: 2 + filters: + - kind: normalize + payload: + kind: ebur128 + payload: + integrated_lufs: -23 + required: + - type + - encode_profile + additionalProperties: false + required: + - output_templates + - type: object + properties: + analyzers: + type: array + items: + type: object + properties: + type: + type: string + enum: + - black_detection + - scene_detection + - silence_detection + - duplicate_frames_detection + config: + type: object + required: + - type + additionalProperties: false + - type: object + properties: + options: + allOf: + - type: object + properties: + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + encryption: + type: object + properties: + enabled: + type: + - boolean + kind: + enum: + - aws_kms + aws_kms_region: + type: + - string + additionalProperties: false + x-internal: true + cors_policy: + type: object + properties: + enabled: + type: + - boolean + origins: + type: array + items: + type: string + additionalProperties: false + - type: object + properties: + response_type: + x-internal: true + enum: + - player_url + - template_url + - session_data + - hybrik_player_json + - full + x-docs-enum: + player_url: Returns a URL to a web player that will play the content. + template_url: Returns a URL to the player JSON template that can be used to launch the player. + full: Returns all available information including player URL, template_url, and more. + default: player_url + render_waveforms: + type: boolean + default: true + render_thumbnails: + type: boolean + default: true + show_dolby_vision_metadata_markers: + type: boolean + default: true + use_source_start_time_code: + type: boolean + default: false + template_authentication_token: + type: string + description: Authentication token to be included in requests made by the player when fetching the template. + http_query_auth_token: + type: string + x-internal: true + http_header_auth_token: + type: string + x-internal: true + native_dolby_e: + type: boolean + default: false + x-internal: true + use_discrete_media: + type: boolean + default: false + x-internal: true + track_index_base: + type: integer + default: 0 + x-internal: true + unevaluatedProperties: false + unevaluatedProperties: false + hls_explicit_outputs: + allOf: + - type: object + properties: + name: + type: string + description: Pretty name for this asset + x-apps: + - core-api + urls: + type: array + items: + anyOf: + - allOf: + - type: object + properties: + url: + type: string + format: uri + description: URL of the media file + id: + type: string + description: Optional identifier for the URL + access: + oneOf: + - type: object + properties: + shared_key: + title: AWS Key + description: The AWS Key. + type: + - string + - 'null' + maxLength: 512 + secret_key: + title: AWS Secret + description: The AWS Secret. + type: + - string + - 'null' + maxLength: 512 + session_token: + title: AWS Session Token + description: The AWS Session Token. + type: + - string + - 'null' + maxLength: 2048 + region: + title: AWS Region + description: The AWS region (optional). + type: + - string + - 'null' + maxLength: 512 + required: + - shared_key + - secret_key + additionalProperties: false + - type: object + properties: + credentials_key: + type: string + description: Key to retrieve stored credentials for accessing the URL + required: + - credentials_key + additionalProperties: false + required: + - url + - type: object + properties: + dolby_vision_metadata_xml: + type: string + deprecated: true + config: + type: object + properties: {} + x-internal: true + additionalProperties: true + media_indices: + type: object + properties: + obtain_media_index: + type: boolean + default: true + obtain_libmediainfo: + type: boolean + default: true + obtain_ffprobe: + type: boolean + default: true + obtain_streaminfo: + type: boolean + default: true + obtain_dolby_e: + type: boolean + default: true + additionalProperties: false + mime: + type: string + additionalProperties: true + - type: string + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + encryption: + type: object + properties: + enabled: + type: + - boolean + kind: + enum: + - aws_kms + aws_kms_region: + type: + - string + additionalProperties: false + x-internal: true + required: + - urls + - type: object + properties: + map: + type: object + properties: + audio: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + channels: + type: array + items: + type: object + additionalProperties: false + video: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + dolby_vision_metadata_url_id: + type: string + additionalProperties: false + subtitle: + type: array + items: + type: object + properties: + id: + type: string + url_id: + type: string + track_idx: + type: integer + additionalProperties: false + additionalProperties: false + outputs: + type: array + items: + type: object + properties: + name: + type: string + encode_profile: + type: object + required: + - container + properties: + container: + type: object + required: + - kind + properties: + kind: + enum: + - hls + - hls/fmp4 + - mpegts + - mpeg2ts + - mp4 + - m4a + - fmp4 + - m4s + - wav + - nut + description: The type of media container for the output. + use_editlist: + type: boolean + description: This sets the edit list atom (elst) in MP4 files. Read more here https://developer.apple.com/documentation/quicktime-file-format/edit_list_atom. The default is false. + mpegts_initial_discontinuity: + type: boolean + default: false + segment_duration_sec: + type: number + description: The segment duration in seconds for segmented or fragmented streams such as HLS or mp4/MPEG-DASH. Decimal notation (e.g. 5.5) is supported. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + additionalProperties: false + video: + anyOf: + - type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + ffmpeg_cli_insert: + type: string + description: The FFmpeg command line arguments to be used. Note that these will override competing settings in the JSON. + x-internal: true + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + track_selector: + type: object + additionalProperties: true + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + - type: array + items: + type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + ffmpeg_cli_insert: + type: string + description: The FFmpeg command line arguments to be used. Note that these will override competing settings in the JSON. + x-internal: true + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + track_selector: + type: object + additionalProperties: true + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + audio: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the audio track. + program_name: + type: string + description: Program name of the audio track. + codec: + enum: + - aac + - aac_lc + - he_aac1 + - he_aac2 + - ac4 + - ddp_joc + description: The audio codec to use for the track. + bitrate_kb: + type: number + description: The audio bitrate in kilobits per second. This is the average bitrate in the case of vbr. + channels: + type: integer + description: The number of audio channels. + sample_rate: + type: integer + description: The audio sample rate in Hz. Typical values are 44100 and 48000. Omit to use the source sample rate. + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + auto_generate_silence_track: + type: boolean + description: 'This fills the track with silence. ' + filters: + type: array + title: Audio Filters + description: The array of audio filters to be applied to the output. + items: + type: object + description: The audio filter object with a specific kind and payload format. + required: + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: normalize + type: object + properties: + kind: + const: normalize + payload: + type: object + description: Specifies parameters for the image overlay filter. + properties: + kind: + const: ebur128 + analyze_vurl: + type: string + payload: + type: object + properties: + source: + type: object + properties: + integrated_lufs: + type: number + minimum: -99 + maximum: 0 + loudness_lra_lufs: + type: number + minimum: 0 + maximum: 99 + true_peak_dbfs: + type: number + minimum: -99 + maximum: 99 + integrated_threshold_lufs: + type: number + minimum: -99 + maximum: 0 + offset: + type: number + minimum: -99 + maximum: 99 + integrated_lufs: + type: number + minimum: -70 + maximum: -5 + loudness_lra_lufs: + type: number + minimum: 1 + maximum: 50 + true_peak_dbfs: + type: number + minimum: -9 + maximum: 0 + allow_unprecise_mode: + type: boolean + default: false + not: + required: + - analyze_vurl + - payload + required: + - kind + additionalProperties: false + required: + - kind + additionalProperties: false + language: + type: string + description: The audio language code in ISO-639 notation. + duration_sec: + type: number + x-internal: true + track_selector: + type: object + additionalProperties: true + description: Allows the selection of specific source tracks as the source(s) for this audio track. + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + abr_map: + type: object + properties: + hls_audio_group: + type: string + is_hls_group_default: + type: boolean + default: false + content: + type: string + compatibility_group: + type: string + required: + - content + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + ddp_joc_upmix_mode: + enum: + - remap + - upmix + default: upmix + description: When upconverting to Dolby Atmos, this specifies the type of upmixing for DD+JOC encoding. + linear_audio_encoding: + type: boolean + default: false + deprecated: true + additionalProperties: false + description: Each audio track is an element of the array. + subtitle: + type: array + items: + type: object + properties: + id: + type: string + language: + type: string + program_name: + type: string + codec: + enum: + - webvtt + - stl + format_options: + type: object + properties: + sparse_vtt: + type: boolean + additionalProperties: false + track_selector: + type: object + additionalProperties: true + additionalProperties: false + additionalProperties: false + examples: + - encode_profile: + container: + kind: hls/fmp4 + segment_duration_sec: 2 + video: + - width: 1280 + height: 720 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 2500 + min_bitrate_kb: 2380 + max_bitrate_kb: 2620 + vbv_buffer_size_kb: 2650 + frame_rate: 30000/1001 + - width: 854 + height: 480 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 1200 + min_bitrate_kb: 1140 + max_bitrate_kb: 1260 + vbv_buffer_size_kb: 1260 + frame_rate: 30000/1001 + - width: 640 + height: 360 + codec: h264 + profile: high + level: '3.0' + bitrate_mode: vbr + bitrate_kb: 600 + min_bitrate_kb: 570 + max_bitrate_kb: 630 + vbv_buffer_size_kb: 630 + frame_rate: 30000/1001 + audio: + - codec: aac + bitrate_kb: 128 + channels: 2 + filters: + - kind: normalize + payload: + kind: ebur128 + payload: + integrated_lufs: -23 + additionalProperties: false + required: + - outputs + - type: object + properties: + analyzers: + type: array + items: + type: object + properties: + type: + type: string + enum: + - black_detection + - scene_detection + - silence_detection + - duplicate_frames_detection + config: + type: object + required: + - type + additionalProperties: false + - type: object + properties: + options: + allOf: + - type: object + properties: + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + encryption: + type: object + properties: + enabled: + type: + - boolean + kind: + enum: + - aws_kms + aws_kms_region: + type: + - string + additionalProperties: false + x-internal: true + cors_policy: + type: object + properties: + enabled: + type: + - boolean + origins: + type: array + items: + type: string + additionalProperties: false + - type: object + properties: + response_type: + x-internal: true + enum: + - player_url + - template_url + - session_data + - hybrik_player_json + - full + x-docs-enum: + player_url: Returns a URL to a web player that will play the content. + template_url: Returns a URL to the player JSON template that can be used to launch the player. + full: Returns all available information including player URL, template_url, and more. + default: player_url + render_waveforms: + type: boolean + default: true + render_thumbnails: + type: boolean + default: true + show_dolby_vision_metadata_markers: + type: boolean + default: true + use_source_start_time_code: + type: boolean + default: false + template_authentication_token: + type: string + description: Authentication token to be included in requests made by the player when fetching the template. + http_query_auth_token: + type: string + x-internal: true + http_header_auth_token: + type: string + x-internal: true + native_dolby_e: + type: boolean + default: false + x-internal: true + use_discrete_media: + type: boolean + default: false + x-internal: true + track_index_base: + type: integer + default: 0 + x-internal: true + unevaluatedProperties: false + unevaluatedProperties: false + hls_implicit_templates: + allOf: + - type: object + properties: + name: + type: string + description: Pretty name for this asset + x-apps: + - core-api + urls: + type: array + items: + anyOf: + - allOf: + - type: object + properties: + url: + type: string + format: uri + description: URL of the media file + id: + type: string + description: Optional identifier for the URL + access: + oneOf: + - type: object + properties: + shared_key: + title: AWS Key + description: The AWS Key. + type: + - string + - 'null' + maxLength: 512 + secret_key: + title: AWS Secret + description: The AWS Secret. + type: + - string + - 'null' + maxLength: 512 + session_token: + title: AWS Session Token + description: The AWS Session Token. + type: + - string + - 'null' + maxLength: 2048 + region: + title: AWS Region + description: The AWS region (optional). + type: + - string + - 'null' + maxLength: 512 + required: + - shared_key + - secret_key + additionalProperties: false + - type: object + properties: + credentials_key: + type: string + description: Key to retrieve stored credentials for accessing the URL + required: + - credentials_key + additionalProperties: false + required: + - url + - type: object + properties: + dolby_vision_metadata_xml: + type: string + deprecated: true + config: + type: object + properties: {} + x-internal: true + additionalProperties: true + media_indices: + type: object + properties: + obtain_media_index: + type: boolean + default: true + obtain_libmediainfo: + type: boolean + default: true + obtain_ffprobe: + type: boolean + default: true + obtain_streaminfo: + type: boolean + default: true + obtain_dolby_e: + type: boolean + default: true + additionalProperties: false + mime: + type: string + additionalProperties: true + - type: string + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + encryption: + type: object + properties: + enabled: + type: + - boolean + kind: + enum: + - aws_kms + aws_kms_region: + type: + - string + additionalProperties: false + x-internal: true + required: + - urls + - type: object + properties: + output_templates: + type: array + items: + type: object + properties: + type: + enum: + - audio + - video + - subtitle + name: + type: string + selectors: + type: array + items: + type: object + additionalProperties: true + encode_profile: + type: object + required: + - container + properties: + container: + type: object + required: + - kind + properties: + kind: + enum: + - hls + - hls/fmp4 + - mpegts + - mpeg2ts + - mp4 + - m4a + - fmp4 + - m4s + - wav + - nut + description: The type of media container for the output. + use_editlist: + type: boolean + description: This sets the edit list atom (elst) in MP4 files. Read more here https://developer.apple.com/documentation/quicktime-file-format/edit_list_atom. The default is false. + mpegts_initial_discontinuity: + type: boolean + default: false + segment_duration_sec: + type: number + description: The segment duration in seconds for segmented or fragmented streams such as HLS or mp4/MPEG-DASH. Decimal notation (e.g. 5.5) is supported. + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + additionalProperties: false + video: + anyOf: + - type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + ffmpeg_cli_insert: + type: string + description: The FFmpeg command line arguments to be used. Note that these will override competing settings in the JSON. + x-internal: true + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + track_selector: + type: object + additionalProperties: true + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + - type: array + items: + type: object + properties: + id: + type: string + description: An ID for the video layer. + width: + type: integer + description: Width of the output video. + height: + type: integer + description: Height of the output video. + bitrate_kb: + type: integer + description: The video bitrate in kilobits per second. For vbr, this is the average bitrate. + frame_rate: + oneOf: + - type: string + pattern: ^\d+\.?,?\/?\d+$ + - type: number + description: 'The video frame rate - can be expressed in decimal or fraction notation, examples: 29.97, 30000/1001' + codec: + enum: + - h264 + - h265 + description: The desired output video codec. + chroma_format: + type: string + description: The chroma format. + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - smpte428 + - linear + - log + - log_sqrt + - bt1361 + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + description: Color transfer characteristics. The default determined by video size. + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - ycgco + - bt2020c + - bt2020nc + - smpte2085 + - chroma-derived-nc + - chroma-derived-c + - ictcp + - fcc + description: YUV/YCbCr colorspace type. + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + range: + enum: + - sdr + - dolby_vision_5 + - dolby_vision_8.1 + - hdr10 + description: The color range of the output video. The default is sdr. + sdr_enhancement: + type: object + properties: + mode: + enum: + - simple + - lut_low + - lut_med + - lut_high + default: lut_med + description: The conversion stregth of the SDR to HDR conversion 3D LUT. + use_metadata_smoothing: + type: boolean + default: true + description: Flag to smooth the HDR metadata between encoding segments. + additionalProperties: false + description: Object defining SDR to HDR enhancement controls. + abr_map: + type: object + properties: + hls_audio_group: + type: string + description: The HLS group that this layer belongs to. + compatibility_group: + type: string + description: The compatibility group that this layer belongs to. + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + description: Object with parameters controlling HLS audio layer affinities. + ffmpeg_cli_insert: + type: string + description: The FFmpeg command line arguments to be used. Note that these will override competing settings in the JSON. + x-internal: true + dar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: 'The display aspect ratio. May expressed in decimal or fraction notation, examples: 1.33, 4/3' + sar: + oneOf: + - type: string + pattern: ^\d+\.?:?\/?\d+$ + - type: number + description: The storage aspect ratio. May expressed in decimal or fraction notation. The storage aspect ratio, display aspect ratio, and pixel aspect ratio are related by DAR = SAR x PAR + force_original_aspect_ratio: + type: boolean + description: This will force the output to have the same aspect ratio as the input. + profile: + type: string + description: The profile for your codec. Not all profiles are valid for all codecs. + level: + type: string + description: The codec-dependent level - please reference ISO/IEC 14496-10, ISO/IEC 13818-2 etc. + preset: + type: string + description: Codec preset. See https://trac.ffmpeg.org/wiki/Encode/H.264 for examples. + max_bitrate_kb: + type: number + description: The maximum video bitrate in kilobits per second. Only valid for crf and vbr. + min_bitrate_kb: + type: number + description: The minimum video bitrate in kilobits per second. Only valid for crf and vbr. + vbv_buffer_size_kb: + type: number + description: The vbv buffer size in kilobits. + vbv_init_occupancy_kb: + type: number + description: The vbv init occupancy in kilobits. + exact_gop_frames: + type: integer + description: Use a fixed GOP size of this many frames. + idr_interval: + type: object + properties: + seconds: + type: number + description: Describes IDR frame interval in seconds. + frames: + type: integer + description: Describes IDR frame interval in frames. + additionalProperties: false + description: Describes a IDR frame interval, as count or seconds. + refs: + type: integer + description: The number of h.264 reference frames to used for future frames. If not set, the profile/level combination will determine the proper number of reference frames. + use_scene_detection: + type: boolean + description: Enable or disable scene change detection. Disabling will come with a steep penalty on video quality. + use_closed_gop: + type: boolean + description: Force use of closed GOPs. + bitrate_mode: + type: string + description: The bitrate mode for the codec. Values include cbr, vbr, and crf. + crf: + type: number + description: If the bitrate mode is crf, then this value must be specified. A Constant Rate Factor setting of 18 is considered excellent. Higher values equal lower quality. A change of +6 should roughly halve the resulting file size. See https://trac.ffmpeg.org/wiki/Encode/H.264 + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + use_sequence_header_per_gop: + type: boolean + description: This will write a sequence header for each GOP. + closed_captions: + type: object + properties: + suppress: + type: boolean + enum: + - true + description: Suppress including captions in the output. + additionalProperties: false + description: Object describing the CC parameters for the targeted output. + track_selector: + type: object + additionalProperties: true + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + x264_options: + type: string + description: x.264 specific codec options - please reference https://ffmpeg.org/ffmpeg-codecs.html#toc-libx264_002c-libx264rgb + filters: + type: array + title: Video Filters + description: The array of video filters to be applied to the output. + items: + type: object + description: The video filter object with a specific kind and payload format. + required: + - kind + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: Image Overlay + properties: + kind: + const: image_overlay + description: 'Filter kind: ''image_overlay''.' + payload: + type: object + description: Specifies the parameters for the image overlay filter. + properties: + image_url: + type: string + description: Defines the http(-s) of the image to be used. + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + default: 1 + type: number + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Video Overlay + properties: + kind: + const: video_overlay + description: 'Filter kind: ''video_overlay''.' + payload: + type: object + description: Specifies the parameters for the video overlay filter. + properties: + video_url: + description: Defines the http(-s) of the video to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'X position of the overlay. Can use expressions such as overlay_w-20 (overlay_w: width of the overlay).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'Y position of the overlay. Can use expressions such as overlay_h-20 (overlay_h: height of the overlay).' + width: + oneOf: + - type: number + - type: string + description: Width of the overlay. Can use expressions such as source_w (width of the video source). + height: + oneOf: + - type: number + - type: string + description: Height of the overlay. Can use expressions such as source_h (height of the video source). + opacity: + type: number + default: 1 + description: Opacity of the overlay. 0 = fully transparent, 1 = fully opaque. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + repeat_count: + type: integer + description: How many times to repeat the video overlay on the primary video. To repeat indefinitely use "-1". + additionalProperties: false + - title: Text Overlay + properties: + kind: + const: text_overlay + description: 'Filter kind: ''text_overlay''.' + payload: + type: object + description: Specifies the parameters for the text overlay filter. + properties: + text_url: + description: Defines the http(-s) of the text file to be used. + type: string + font_url: + description: Defines the http(-s) of the font file to be used. + type: string + x: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The x location to start the imprint. Can use expressions such as w-20 (w: width of the video).' + y: + default: 25 + oneOf: + - type: integer + - type: string + description: 'The y location to start the imprint. Can use expressions such as h-20 (h: height of the video).' + opacity: + default: 1 + type: number + description: Opacity of the text overlay. 0 = fully transparent, 1 = fully opaque. + text: + type: string + description: The text string to be drawn. + font: + type: string + description: 'The font descriptor (compliant with fontconfig). Examples: ''Sans'', ''URW Bookman L:style=Demi Bold Italic''.' + font_color: + default: black + type: string + description: 'The color to be used for drawing fonts. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + font_size: + default: 16 + oneOf: + - type: integer + - type: string + description: 'The font size in points. Can use expressions such as h/10 (w: width of the video, h: height of the video). A font size of 16 is the default. ' + tab_size: + minimum: 1 + default: 4 + type: integer + description: The size of the tab in number of spaces. The \t character is replaced with spaces. + shadow_color: + default: black + type: string + description: 'The color to be used for drawing a shadow behind the drawn text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + shadow_x: + default: 0 + type: integer + description: The x offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + shadow_y: + default: 0 + type: integer + description: The y offset for the text shadow position with respect to the position of the text. It can be either positive or negative value. + border_color: + type: string + description: 'The color to be used for drawing border around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + border_size: + default: 0 + type: integer + description: The width of the border to be drawn around the text. + background_color: + type: string + description: 'The color to be used for drawing box around text. Example: black: opaque black, green@0.8: green with 0.8 alpha.' + background_size: + default: 0 + type: integer + description: The width of the box to be drawn around the background. + fix_bounds: + default: false + type: boolean + description: Correct text coords to avoid clipping. + start_sec: + type: number + description: Start point (in seconds) of the overlay. + duration_sec: + type: number + description: Duration (in seconds) of the overlay. + fadein_duration_sec: + type: number + description: Fade-in time (in seconds) of the overlay. + fadeout_duration_sec: + type: number + description: Fade-out time (in seconds) of the overlay. + additionalProperties: false + - title: Color Convert + x-apps: + - core-api + properties: + kind: + enum: + - color_convert + payload: + type: object + properties: + from: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + override_source_metadata: + type: boolean + default: false + additionalProperties: false + to: + type: object + properties: + color_primaries: + enum: + - bt601 + - smpte170m + - bt709 + - bt470m + - bt470bg + - smpte240m + - film + - bt2020 + - smpte428 + - smpte431 + - smpte432 + - jedec-p22 + description: Chroma coordinate reference of the source primaries. The default is determined by video size. + color_trc: + enum: + - bt601 + - smpte170m + - bt709 + - gamma22 + - bt470m + - gamma28 + - bt470bg + - smpte240m + - linear + - log + - log_sqrt + - smpte2084 + - iec61966_2_1 + - iec61966_2_4 + - bt2020_10bit + - bt2020_12bit + - hlg + - arib-std-b67 + color_matrix: + enum: + - rgb + - bt470bg + - bt709 + - smpte170m + - smpte240m + - fcc + - ycgco + - bt2020c + - bt2020nc + - chroma-derived-nc + - chroma-derived-c + - ictcp + ire_range_mode: + enum: + - full + - limited + - auto + description: The IRE range for the source video. The default is auto. + additionalProperties: false + nominal_peak_luminance: + type: integer + preset: + enum: + - hdr_hlg_to_sdr + - hdr_hlg_to_sdr_desat_mild + - hdr_hlg_to_sdr_desat_medium + - hdr_pq_to_sdr + - hdr_pq_to_sdr_desat_mild + - hdr_pq_to_sdr_desat_medium + - sdr_to_hdr_pq_200nit + - sdr_to_hdr_pq_300nit + lut_file: + type: object + properties: + url: + type: string + mime: + type: string + required: + - url + additionalProperties: false + additionalProperties: false + additionalProperties: false + additionalProperties: false + description: The video encoding parameters. + audio: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the audio track. + program_name: + type: string + description: Program name of the audio track. + codec: + enum: + - aac + - aac_lc + - he_aac1 + - he_aac2 + - ac4 + - ddp_joc + description: The audio codec to use for the track. + bitrate_kb: + type: number + description: The audio bitrate in kilobits per second. This is the average bitrate in the case of vbr. + channels: + type: integer + description: The number of audio channels. + sample_rate: + type: integer + description: The audio sample rate in Hz. Typical values are 44100 and 48000. Omit to use the source sample rate. + frames: + type: integer + x-internal: true + description: WHAT IS THIS? + auto_generate_silence_track: + type: boolean + description: 'This fills the track with silence. ' + filters: + type: array + title: Audio Filters + description: The array of audio filters to be applied to the output. + items: + type: object + description: The audio filter object with a specific kind and payload format. + required: + - payload + properties: + kind: + type: string + payload: + type: object + anyOf: + - title: normalize + type: object + properties: + kind: + const: normalize + payload: + type: object + description: Specifies parameters for the image overlay filter. + properties: + kind: + const: ebur128 + analyze_vurl: + type: string + payload: + type: object + properties: + source: + type: object + properties: + integrated_lufs: + type: number + minimum: -99 + maximum: 0 + loudness_lra_lufs: + type: number + minimum: 0 + maximum: 99 + true_peak_dbfs: + type: number + minimum: -99 + maximum: 99 + integrated_threshold_lufs: + type: number + minimum: -99 + maximum: 0 + offset: + type: number + minimum: -99 + maximum: 99 + integrated_lufs: + type: number + minimum: -70 + maximum: -5 + loudness_lra_lufs: + type: number + minimum: 1 + maximum: 50 + true_peak_dbfs: + type: number + minimum: -9 + maximum: 0 + allow_unprecise_mode: + type: boolean + default: false + not: + required: + - analyze_vurl + - payload + required: + - kind + additionalProperties: false + required: + - kind + additionalProperties: false + language: + type: string + description: The audio language code in ISO-639 notation. + duration_sec: + type: number + x-internal: true + track_selector: + type: object + additionalProperties: true + description: Allows the selection of specific source tracks as the source(s) for this audio track. + x-docs-hide: true + prefetch_hint_sec: + type: number + description: This determines how much to encode ahead of the current time during playback. It can be separately determined for the audio and video streams. + abr_map: + type: object + properties: + hls_audio_group: + type: string + is_hls_group_default: + type: boolean + default: false + content: + type: string + compatibility_group: + type: string + required: + - content + anyOf: + - required: + - hls_audio_group + - required: + - compatibility_group + additionalProperties: false + hls_options: + type: object + properties: + media_subfolder: + type: string + description: 'hls-packager relevant only: allows to place layers in specific subfolders' + media_filename_template: + type: string + description: 'hls-packager relevant only: allows to overwrite the default seg%04d file name template - must contain a c-sprintf-based converting an integer segment number' + full_rpu_smoothing: + type: boolean + default: false + description: Enables full RPU smoothing for Dolby Vision segments. + additionalProperties: false + x-internal: true + ddp_joc_upmix_mode: + enum: + - remap + - upmix + default: upmix + description: When upconverting to Dolby Atmos, this specifies the type of upmixing for DD+JOC encoding. + linear_audio_encoding: + type: boolean + default: false + deprecated: true + additionalProperties: false + description: Each audio track is an element of the array. + subtitle: + type: array + items: + type: object + properties: + id: + type: string + language: + type: string + program_name: + type: string + codec: + enum: + - webvtt + - stl + format_options: + type: object + properties: + sparse_vtt: + type: boolean + additionalProperties: false + track_selector: + type: object + additionalProperties: true + additionalProperties: false + additionalProperties: false + examples: + - encode_profile: + container: + kind: hls/fmp4 + segment_duration_sec: 2 + video: + - width: 1280 + height: 720 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 2500 + min_bitrate_kb: 2380 + max_bitrate_kb: 2620 + vbv_buffer_size_kb: 2650 + frame_rate: 30000/1001 + - width: 854 + height: 480 + codec: h264 + profile: high + level: '3.1' + bitrate_mode: vbr + bitrate_kb: 1200 + min_bitrate_kb: 1140 + max_bitrate_kb: 1260 + vbv_buffer_size_kb: 1260 + frame_rate: 30000/1001 + - width: 640 + height: 360 + codec: h264 + profile: high + level: '3.0' + bitrate_mode: vbr + bitrate_kb: 600 + min_bitrate_kb: 570 + max_bitrate_kb: 630 + vbv_buffer_size_kb: 630 + frame_rate: 30000/1001 + audio: + - codec: aac + bitrate_kb: 128 + channels: 2 + filters: + - kind: normalize + payload: + kind: ebur128 + payload: + integrated_lufs: -23 + required: + - type + - encode_profile + additionalProperties: false + required: + - output_templates + - type: object + properties: + analyzers: + type: array + items: + type: object + properties: + type: + type: string + enum: + - black_detection + - scene_detection + - silence_detection + - duplicate_frames_detection + config: + type: object + required: + - type + additionalProperties: false + - type: object + properties: + options: + allOf: + - type: object + properties: + expiration: + type: string + description: Expiration time for the RUID in ISO 8601 format + encryption: + type: object + properties: + enabled: + type: + - boolean + kind: + enum: + - aws_kms + aws_kms_region: + type: + - string + additionalProperties: false + x-internal: true + cors_policy: + type: object + properties: + enabled: + type: + - boolean + origins: + type: array + items: + type: string + additionalProperties: false + - type: object + properties: + response_type: + x-internal: true + enum: + - player_url + - template_url + - session_data + - hybrik_player_json + - full + x-docs-enum: + player_url: Returns a URL to a web player that will play the content. + template_url: Returns a URL to the player JSON template that can be used to launch the player. + full: Returns all available information including player URL, template_url, and more. + default: player_url + render_waveforms: + type: boolean + default: true + render_thumbnails: + type: boolean + default: true + show_dolby_vision_metadata_markers: + type: boolean + default: true + use_source_start_time_code: + type: boolean + default: false + template_authentication_token: + type: string + description: Authentication token to be included in requests made by the player when fetching the template. + http_query_auth_token: + type: string + x-internal: true + http_header_auth_token: + type: string + x-internal: true + native_dolby_e: + type: boolean + default: false + x-internal: true + use_discrete_media: + type: boolean + default: false + x-internal: true + track_index_base: + type: integer + default: 0 + x-internal: true + unevaluatedProperties: false + unevaluatedProperties: false +tags: +- name: Ad Engine +- name: Cloud Preview +- name: Media Info +- name: Image diff --git a/sidebarsAdEngine.ts b/sidebarsAdEngine.ts index 80c33007ab89..4ebab7ab611b 100644 --- a/sidebarsAdEngine.ts +++ b/sidebarsAdEngine.ts @@ -20,7 +20,11 @@ function cleanItems(data: SidebarItemConfig[]): SidebarItemConfig[] { // Rename the REST APIs title if (isCategory(item) && item.label === 'Ad Engine') { - item.label = 'REST APIs'; + item.label = 'Ad Engine APIs'; + item.collapsed = false; + } + if (isCategory(item) && item.label === 'Cloud Preview') { + item.label = 'Cloud Preview APIs'; item.collapsed = false; }