Search Documentation
Search across all documentation pages
Outputs

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

AttributeTypeDescription
idstringUnique identifier for the output. Prefixed with out_.
specobjectThe output specification that was requested. Contains type, video, audio, and other configuration.
statusenumCurrent output status. One of: pending, processing, completed, failed, canceled. See Output statuses.
progressintegerProcessing progress percentage (0–100).
output_urlstring | nullURL of the output file or manifest. Populated when status is completed. For streaming outputs, this points to the master manifest.
output_size_bytesinteger | nullTotal size of the output in bytes. Includes all segments and manifests for streaming outputs.
duration_secondsinteger | nullDuration of the output in seconds.
pricingobjectPricing breakdown for this output. See Pricing snapshot.
estimated_duration_secondsinteger | nullEstimated encoding duration in seconds. Available after probing.
estimated_costnumber | nullEstimated cost in the job’s currency. Available after probing.
actual_costnumber | nullActual cost after encoding completes.
error_codestring | nullMachine-readable error code if the output failed.
error_messagestring | nullHuman-readable error message if the output failed.
started_atstring | nullISO 8601 timestamp when encoding started for this output.
completed_atstring | nullISO 8601 timestamp when encoding completed (or failed).
preset_idstring | nullPreset ID if this output was created from a preset (e.g., pst_x9y8z7w6v5).
preset_slugstring | nullPreset slug if this output was created from a preset (e.g., web_1080p_standard).
variant_pricingarrayPer-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

StatusDescription
pendingOutput is queued and waiting to be processed.
processingOutput is actively being encoded. Check progress for percentage.
completedOutput finished successfully. output_url and actual_cost are populated.
failedOutput failed. error_code and error_message contain details.
canceledOutput 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
AttributeTypeDescription
base_pricenumberBase price per minute in the job’s currency (e.g., 0.005 EUR/min).
codec_multipliernumberCodec cost multiplier. H.264 = 1.0, H.265 = 1.5, VP9 = 1.5, AV1 = 2.5.
resolution_multipliernumberResolution cost multiplier. 480p = 0.5, 720p = 0.75, 1080p = 1.0, 1440p = 1.5, 2160p = 2.5, 4320p = 5.0.
framerate_multipliernumberFrame rate cost multiplier. ≤30fps = 1.0, 60fps = 1.5.
quality_multipliernumberQuality tier multiplier. Economy = 0.75, Standard = 1.0, Premium = 2.0.
resolution_tierenumResolved resolution tier used for pricing (e.g., 1080p).
actual_frameratenumberActual frame rate used for pricing (from source or variant override).
pixel_countinteger | nullTotal pixel count per frame (width × height).
feature_multipliernumberCombined 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.

AttributeTypeDescription
indexintegerZero-based variant index in the ABR ladder.
codecenumVideo codec for this variant.
resolutionenumResolution tier for this variant.
framerateintegerFrame rate for this variant. 0 means source frame rate was used.
qualityenumQuality tier for this variant.
widthinteger | nullActual output width in pixels.
heightinteger | nullActual output height in pixels.
base_pricenumberBase price per minute.
codec_multipliernumberCodec cost multiplier.
resolution_multipliernumberResolution cost multiplier.
framerate_multipliernumberFrame rate cost multiplier.
quality_multipliernumberQuality tier multiplier.
resolution_tierenumResolved resolution tier.
actual_frameratenumberActual frame rate used.
pixel_countinteger | nullPixel count per frame.
estimated_costnumber | nullEstimated cost for this variant.
actual_costnumber | nullActual cost after encoding.
statusstringVariant encoding status.
progressintegerVariant encoding progress (0–100).
feature_multipliernumberFeature cost multiplier for this variant.

The total output cost equals the sum of actual_cost across 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 Phaseestimated_costactual_cost
Job creatednullnull
Probing completePopulatednull
Encoding in progressPopulatednull
Output completedPopulatedPopulated
Output failedPopulatedMay be null or partial