The Output object
The Output object represents a single output rendition within a Job. Each job produces one or more outputs based on the output specifications you provide at creation time. Outputs track their own status, progress, pricing, and per-variant costs independently.
Output objects are returned in the outputs array of a Job response. They are read-only — you configure outputs via OutputSpec at job creation time, and the API populates the Output object with results as processing progresses.
Attributes
| Attribute | Type | Description |
|---|---|---|
id | string | Unique identifier for the output. Prefixed with out_. |
spec | object | The output specification that was requested. Contains type, video, audio, and other configuration. |
status | enum | Current output status. One of: pending, processing, completed, failed, canceled. See Output statuses. |
progress | integer | Processing progress percentage (0–100). |
output_url | string | null | URL of the output file or manifest. Populated when status is completed. For streaming outputs, this points to the master manifest. |
output_size_bytes | integer | null | Total size of the output in bytes. Includes all segments and manifests for streaming outputs. |
duration_seconds | integer | null | Duration of the output in seconds. |
pricing | object | Pricing breakdown for this output. See Pricing snapshot. |
estimated_duration_seconds | integer | null | Estimated encoding duration in seconds. Available after probing. |
estimated_cost | number | null | Estimated cost in the job’s currency. Available after probing. |
actual_cost | number | null | Actual cost after encoding completes. |
error_code | string | null | Machine-readable error code if the output failed. |
error_message | string | null | Human-readable error message if the output failed. |
started_at | string | null | ISO 8601 timestamp when encoding started for this output. |
completed_at | string | null | ISO 8601 timestamp when encoding completed (or failed). |
preset_id | string | null | Preset ID if this output was created from a preset (e.g., pst_x9y8z7w6v5). |
preset_slug | string | null | Preset slug if this output was created from a preset (e.g., web_1080p_standard). |
variant_pricing | array | Per-variant pricing breakdown for streaming outputs with multiple variants. See Variant pricing. Empty array for single-variant outputs. |
{
"id": "out_m1n2o3p4q5",
"spec": {
"type": "mp4",
"video": [
{"codec": "h264", "resolution": "1080p", "quality": "standard"}
]
},
"status": "completed",
"progress": 100,
"output_url": "gs://acme-video-assets/2025/02/28/job_a1b2c3d4e5f6/out_m1n2o3p4q5/output.mp4",
"output_size_bytes": 67108864,
"duration_seconds": 125,
"pricing": {
"base_price": 0.005,
"codec_multiplier": 1.0,
"resolution_multiplier": 1.0,
"framerate_multiplier": 1.0,
"quality_multiplier": 1.0,
"resolution_tier": "1080p",
"actual_framerate": 30,
"pixel_count": 2073600,
"feature_multiplier": 1.0
},
"estimated_duration_seconds": 45,
"estimated_cost": 0.63,
"actual_cost": 0.63,
"error_code": null,
"error_message": null,
"started_at": "2025-02-28T10:00:03Z",
"completed_at": "2025-02-28T10:00:48Z",
"preset_id": null,
"preset_slug": null,
"variant_pricing": []
}HLS output with ABR ladder
{
"id": "out_r5s6t7u8v9",
"spec": {
"type": "hls",
"video": [
{"codec": "h264", "resolution": "1080p", "quality": "standard"},
{"codec": "h264", "resolution": "720p", "quality": "standard"},
{"codec": "h264", "resolution": "480p", "quality": "economy"}
],
"hls": {
"manifest": "master",
"segment_format": "fmp4",
"playlist_type": "vod"
},
"segments": {
"duration": 6,
"gop_alignment": "aligned"
}
},
"status": "completed",
"progress": 100,
"output_url": "gs://acme-video-assets/2025/02/28/hls/master.m3u8",
"output_size_bytes": 142606336,
"duration_seconds": 125,
"pricing": {
"base_price": 0.005,
"codec_multiplier": 1.0,
"resolution_multiplier": 1.0,
"framerate_multiplier": 1.0,
"quality_multiplier": 1.0,
"resolution_tier": "1080p",
"actual_framerate": 30,
"pixel_count": 2073600,
"feature_multiplier": 1.0
},
"estimated_cost": 1.45,
"actual_cost": 1.42,
"started_at": "2025-02-28T10:00:03Z",
"completed_at": "2025-02-28T10:01:30Z",
"variant_pricing": [
{
"index": 0,
"codec": "h264",
"resolution": "1080p",
"framerate": 30,
"quality": "standard",
"base_price": 0.005,
"codec_multiplier": 1.0,
"resolution_multiplier": 1.0,
"framerate_multiplier": 1.0,
"quality_multiplier": 1.0,
"resolution_tier": "1080p",
"actual_framerate": 30,
"pixel_count": 2073600,
"estimated_cost": 0.63,
"actual_cost": 0.63,
"status": "completed",
"progress": 100,
"feature_multiplier": 1.0
},
{
"index": 1,
"codec": "h264",
"resolution": "720p",
"framerate": 30,
"quality": "standard",
"base_price": 0.005,
"codec_multiplier": 1.0,
"resolution_multiplier": 0.75,
"framerate_multiplier": 1.0,
"quality_multiplier": 1.0,
"resolution_tier": "720p",
"actual_framerate": 30,
"pixel_count": 921600,
"estimated_cost": 0.47,
"actual_cost": 0.45,
"status": "completed",
"progress": 100,
"feature_multiplier": 1.0
},
{
"index": 2,
"codec": "h264",
"resolution": "480p",
"framerate": 30,
"quality": "economy",
"base_price": 0.005,
"codec_multiplier": 1.0,
"resolution_multiplier": 0.50,
"framerate_multiplier": 1.0,
"quality_multiplier": 0.75,
"resolution_tier": "480p",
"actual_framerate": 30,
"pixel_count": 345600,
"estimated_cost": 0.35,
"actual_cost": 0.34,
"status": "completed",
"progress": 100,
"feature_multiplier": 1.0
}
]
}Output statuses
| Status | Description |
|---|---|
pending | Output is queued and waiting to be processed. |
processing | Output is actively being encoded. Check progress for percentage. |
completed | Output finished successfully. output_url and actual_cost are populated. |
failed | Output failed. error_code and error_message contain details. |
canceled | Output was canceled (parent job was canceled). Partially completed data may be deleted. |
Pricing snapshot
The pricing object shows the cost multipliers applied to this output. The final cost is calculated as:
cost = base_price × duration_minutes × codec_multiplier × resolution_multiplier × framerate_multiplier × quality_multiplier × feature_multiplier| Attribute | Type | Description |
|---|---|---|
base_price | number | Base price per minute in the job’s currency (e.g., 0.005 EUR/min). |
codec_multiplier | number | Codec cost multiplier. H.264 = 1.0, H.265 = 1.5, VP9 = 1.5, AV1 = 2.5. |
resolution_multiplier | number | Resolution cost multiplier. 480p = 0.5, 720p = 0.75, 1080p = 1.0, 1440p = 1.5, 2160p = 2.5, 4320p = 5.0. |
framerate_multiplier | number | Frame rate cost multiplier. ≤30fps = 1.0, 60fps = 1.5. |
quality_multiplier | number | Quality tier multiplier. Economy = 0.75, Standard = 1.0, Premium = 2.0. |
resolution_tier | enum | Resolved resolution tier used for pricing (e.g., 1080p). |
actual_framerate | number | Actual frame rate used for pricing (from source or variant override). |
pixel_count | integer | null | Total pixel count per frame (width × height). |
feature_multiplier | number | Combined multiplier for add-on features. DRM = 1.25x, HDR = 1.40x, per-title = 1.15x, thumbnails = 1.10x. Multiplied together when multiple features are used. |
Variant pricing
For streaming outputs with multiple variants (ABR ladders), variant_pricing provides per-variant cost breakdowns. The total output cost is the sum of all variant costs.
| Attribute | Type | Description |
|---|---|---|
index | integer | Zero-based variant index in the ABR ladder. |
codec | enum | Video codec for this variant. |
resolution | enum | Resolution tier for this variant. |
framerate | integer | Frame rate for this variant. 0 means source frame rate was used. |
quality | enum | Quality tier for this variant. |
width | integer | null | Actual output width in pixels. |
height | integer | null | Actual output height in pixels. |
base_price | number | Base price per minute. |
codec_multiplier | number | Codec cost multiplier. |
resolution_multiplier | number | Resolution cost multiplier. |
framerate_multiplier | number | Frame rate cost multiplier. |
quality_multiplier | number | Quality tier multiplier. |
resolution_tier | enum | Resolved resolution tier. |
actual_framerate | number | Actual frame rate used. |
pixel_count | integer | null | Pixel count per frame. |
estimated_cost | number | null | Estimated cost for this variant. |
actual_cost | number | null | Actual cost after encoding. |
status | string | Variant encoding status. |
progress | integer | Variant encoding progress (0–100). |
feature_multiplier | number | Feature cost multiplier for this variant. |
The total output cost equals the sum of
actual_costacross all variants:output.actual_cost = Σ variant_pricing[i].actual_cost
Cost lifecycle
Cost fields are populated progressively as the job advances through its pipeline.
| Job Phase | estimated_cost | actual_cost |
|---|---|---|
| Job created | null | null |
| Probing complete | Populated | null |
| Encoding in progress | Populated | null |
| Output completed | Populated | Populated |
| Output failed | Populated | May be null or partial |