Introduction
The Live 2.0 API is a powerful, RESTful API designed to support the creation, management, and distribution of high-quality live video streams. Built with scalability, flexibility, and performance in mind, the Live 2.0 API enables you to handle complex live streaming workflows with ease. Optional features include:
- Real-Time Notifications.
- Metrics and Monitoring.
- Automatic Failover and Redundancy.
- Regional Availability.
Also see the API Reference.
Supported AWS regions
The following AWS regions are supported:
Location | AWS Name | Support |
---|---|---|
Oregon | us-west-2 | |
Virginia | us-east-1 | |
Tokyo | ap-northeast-1 | |
Singapore | ap-southeast-1 | |
Seoul | ap-northeast-2 | |
Sydney | ap-southeast-2 | |
Mumbai | ap-south-1 | |
Frankfurt | eu-central-1 | |
Ireland | eu-west-1 |
DVR capability
Brightcove Live streams have DVR capability. To use this capability, you must:
- Use a player that has DVR capability
- Set the DVR window (e.g.,
dvr
.playlist_window_seconds
) in the manifest configuration - Enable DVR in the playback token by setting
"dvr": true
.
The DVR stream will remain available for 7 days after the live stream is completed.
General information
Base URL
The base URL for the Live 2.0 API is:
https://api.live.brightcove.com
Authentication
Authentication for requests requires an Authorization header:
Authorization: Bearer {access_token}
The access_token
is a temporary OAuth2 access token that must be obtained from the Brightcove OAuth service. For more details,see the Brightcove OAuth Overview.
The easiest way to create client credentials is through the Brightcove Studio admin pages. For detailed instructions, see Managing API Authentication Credentials
Operations
Depending on the actions you need to perform, define specific scopes
video-cloud/livev2/jobs/read
: Provides read-only access to view job details.video-cloud/livev2/jobs/create
: Allows the creation of new live streaming jobs.video-cloud/livev2/jobs/update
: Permits updates to existing live jobs. This scope is required for performing actions like starting or stopping a job.video-cloud/livev2/jobs/delete
: Enables the deletion of live jobs.video-cloud/livev2/jobs/all
: Grants job admin access to all job-related operations.video-cloud/livev2/metrics/read
: Grants access to job's metrics.
Endpoints
Each endpoint is designed to perform specific tasks related to live streaming management, from job creation and configuration to playback control and real-time monitoring. These operations are carried out through requests to following endpoints, which are explained in more detail in the remainder of the document.
Creating and managing jobs
- Configure a new job
- Update a given job
- Get a job
- Start a given job
- Stop a job
- Delete a job
- List all jobs in an account
- Healthcheck
Playback Management
Job Listings and Notifications
Metrics
Creating and managing jobs
These operations allow you to create a live job, start it, get the details of it, and stop it.
Configure a new job
POST /v2/accounts/{account_id}/jobs
This endpoint is used to create live streams via a POST
request. Initialize a live stream tailored to specific requirements. Details of the fields that can be included in the request body are given in the API Reference.
Input protocol
Brightcove Live supports multiple input protocols. Use the input.protocol
field in the request body when you create the job to specify the one you will use. Supported values are:
rtmp
(the default)rtp
srt
Sample payload
{
"name": "Test Job",
"description": "Blive Job",
"long_description": "Blive Job long description",
"playback_rights_id": "",
"tags": [
"sports"
],
"input": {
"protocol": "rtmp",
"whitelist_cidr_blocks": ["0.0.0.0/0"],
"fixed_ingest_ip": false
},
"type": "event",
"live_to_vod": false,
"outputs": {
"video": [
{
"label": "1080p",
"height": 1080,
"width": 1920,
"framerate": "30/1",
"bitrate": 6000000,
"codec": "h264",
"codec_options": {
"profile": "high",
"level": "4.2"
},
"keyframe_rate": 0.5,
"sample_aspect_ratio": "1:1",
"decoder_buffer_size":9000000,
"max_bitrate":7200000
},
{
"label": "720p",
"height": 720,
"width": 1280,
"framerate": "30/1",
"bitrate": 4000000,
"codec": "h264",
"codec_options": {
"level": "4",
"profile": "main"
}
},
{
"label": "480p",
"height": 480,
"width": 640,
"framerate": "30/1",
"bitrate": 2000000,
"codec": "h264",
"codec_options": {
"profile": "main"
}
}
],
"audio": [
{
"label": "aac1",
"input_selector_name": "default",
"language_code": "eng",
"codec": "aac",
"bitrate": 128000,
"sample_rate": 44100
}
]
},
"manifest": {
"name": "playlist",
"segment_duration_seconds": 6,
"playlist_window_seconds": 60,
"segment_container_format": "cmaf",
"hls": {
"startover_window_seconds": 300
},
"dvr": {
"playlist_window_seconds": 300
},
"dash": {
"startover_window_seconds": 300
},
"low_latency": {},
"playlist_groups": [
{
"name": "playlist-fullhd",
"video_height": {
"min": 721,
"max": 1080
}
},
{
"name": "playlist-hd",
"video_height": {
"min": 1,
"max": 720
}
}
]
},
"region": "us-east-1",
"maintenance_preferences": {
"day": "MONDAY"
}
}
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
account_id |
String | Path | Yes | Account ID associated with the API call. |
custom_fields |
Object | Body | No | Custom metadata fields for the job. |
description |
String | Body | No | A brief description of the job. |
input.protocol |
String | Body | Yes | The ingest protocol for the input stream. Allowed values: For more details on additional input properties and configurations, refer to the API Reference. |
live_to_vod |
Boolean | Body | No | Determines if the live stream should be converted to Video-on-Demand (VOD). |
long_description |
String | Body | No | Detailed description of the job. |
maintenance_preferences |
Object (external.MaintenancePreferences) | Body | No | Preferences for maintenance scheduling like For more details, refer to the API Reference. . |
manifest |
Object (external.ManifestOptions) | Body | No | Configures HLS, DASH, and DVR playback settings, along with playlist options, segment formatting, and output configurations. For more details on manifest properties and configurations, refer to the API Reference. |
name |
String | Body | No | Name of the job. |
notifications |
Array of objects (external.Notification) | Body | No | Defines job lifecycle notifications, specifying event types and destination URLs. For more details, refer to the API Reference. |
outputs |
Object (external.OutputVariants) | Body | Yes | Specifies audio and video output variants, including codec, bitrate, resolution, and framerate. For more details on output properties and configurations, refer to the API Reference. |
reference_id |
String | Body | No | An optional unique identifier for the job. |
region |
String | Body | Yes | The region where the job is created. |
tags |
Array of strings | Body | No | Array of string tags for the job. |
type |
String (Enum: "channel", "event") | Body | Yes | Defines whether the job is a channel or an event. |
Live to VOD
Live to VOD allows you to automatically convert a live stream into a Video-on-Demand (VOD). Enabling this feature will automatically make the recorded media asset available in Video Cloud for playback after the live event has ended.
To enable Live to VOD when creating a new live event job, include the "live_to_vod": true
flag in the JSON payload.
Sample payload
{
"input": {
"audio_pids": [
{
"language_code": "eng",
"name": "English Audio",
"pid": 101
}
],
"fixed_ingest_ip": true,
"input_loss_behaviour": {
"fill_type": "slate"
},
"protocol": "rtmp",
"srt_options": {
"ingest_port": 1935,
"min_latency": 2000
},
"whitelist_cidr_blocks": [
"192.168.1.0/24"
]
},
"live_to_vod": true,
"maintenance_preferences": {
"day": "MONDAY",
"start_time": "02:00"
},
"manifest": {
"dash": {},
"dvr": {
"playlist_window_seconds": 300
},
"hls": {
"playlist_type": "event",
"startover_window_seconds": 300
},
"include_iframe_only_stream": true,
"low_latency": {},
"name": "My Live Stream",
"playlist_groups": [
{
"audio_bitrate": {
"max": 192000,
"min": 64000
},
"audio_codec": [
"aac"
],
"language_code": [
"eng"
],
"name": "HD Playlist",
"video_bitrate": {
"max": 5000000,
"min": 1000000
},
"video_codec": [
"h264"
],
"video_height": {
"max": 1080,
"min": 360
}
}
],
"playlist_window_seconds": 120,
"segment_container_format": "cmaf",
"segment_duration_seconds": 6
},
"notifications": [
{
"subscription_type": "state_changed",
"url": "https://mywebhook.site/notifications"
}
],
"outputs": {
"audio": [
{
"bitrate": 128000,
"codec": "aac",
"input_selector_name": "default",
"label": "English Audio",
"language_code": "eng",
"sample_rate": 48000
}
],
"video": [
{
"bitrate": 4000000,
"codec": "h264",
"codec_options": {
"level": "4.2",
"profile": "high"
},
"decoder_buffer_size": 6000000,
"framerate": "30",
"height": 1080,
"keyframe_rate": 2,
"label": "1080p",
"max_bitrate": 5000000,
"sample_aspect_ratio": "1:1",
"width": 1920,
"framerate": "30/1"
},
{
"bitrate": 2000000,
"codec": "h264",
"codec_options": {
"level": "4",
"profile": "main"
},
"decoder_buffer_size": 3000000,
"framerate": "30",
"height": 720,
"keyframe_rate": 2,
"label": "720p",
"max_bitrate": 2500000,
"sample_aspect_ratio": "1:1",
"width": 1280,
"framerate": "30/1",
}
]
},
"region": "us-east-1",
"type": "event",
}
Update a given job
PUT /v2/accounts/{account_id}/jobs/{id}
This endpoint is used to modify the configuration of an existing live streaming job via a PUT
request. adjust job settings such as video and audio parameters, playback options, and other attributes while the job is in an inactive state. Details of the fields that can be included in the request body are given in the API Reference
Sample payload
{
"input": {
"audio_pids": [
{
"language_code": "eng",
"name": "English Audio",
"pid": 101
}
],
"fixed_ingest_ip": true,
"input_loss_behaviour": {
"fill_type": "slate"
},
"protocol": "rtmp",
"srt_options": {
"ingest_port": 1935,
"min_latency": 2000
},
"whitelist_cidr_blocks": [
"192.168.1.0/24"
]
},
"live_to_vod": true,
"maintenance_preferences": {
"day": "MONDAY",
"start_time": "02:00"
},
"manifest": {
"dash": {},
"dvr": {
"playlist_window_seconds": 300
},
"hls": {
"playlist_type": "event",
"startover_window_seconds": 300
},
"include_iframe_only_stream": true,
"low_latency": {},
"name": "My Live Stream",
"playlist_groups": [
{
"audio_bitrate": {
"max": 192000,
"min": 64000
},
"audio_codec": [
"aac"
],
"language_code": [
"eng"
],
"name": "HD Playlist",
"video_bitrate": {
"max": 5000000,
"min": 1000000
},
"video_codec": [
"h264"
],
"video_height": {
"max": 1080,
"min": 360
}
}
],
"playlist_window_seconds": 120,
"segment_container_format": "cmaf",
"segment_duration_seconds": 6
},
"notifications": [
{
"subscription_type": "state_changed",
"url": "https://mywebhook.site/notifications"
}
],
"outputs": {
"audio": [
{
"bitrate": 128000,
"codec": "aac",
"input_selector_name": "default",
"label": "English Audio",
"language_code": "eng",
"sample_rate": 48000
}
],
"video": [
{
"bitrate": 4000000,
"codec": "h264",
"codec_options": {
"level": "4.2",
"profile": "high"
},
"decoder_buffer_size": 6000000,
"framerate": "30",
"height": 1080,
"keyframe_rate": 2,
"label": "1080p",
"max_bitrate": 5000000,
"sample_aspect_ratio": "1:1",
"width": 1920,
"framerate": "30/1"
},
{
"bitrate": 2000000,
"codec": "h264",
"codec_options": {
"level": "4",
"profile": "main"
},
"decoder_buffer_size": 3000000,
"framerate": "30",
"height": 720,
"keyframe_rate": 2,
"label": "720p",
"max_bitrate": 2500000,
"sample_aspect_ratio": "1:1",
"width": 1280,
"framerate": "30/1"
}
]
},
"region": "us-east-1",
"type": "event"
}
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
id |
String | Path | Yes | Job ID for the job to be updated. |
account_id |
String | Path | Yes | Account ID associated with the API call. |
input.protocol |
String | Body | Yes | The ingest protocol for the input stream. Allowed values: For more details on additional input properties and configurations, refer to the API Reference. |
live_to_vod |
Boolean | Body | No | Determines if the live stream should be converted to Video-on-Demand (VOD). |
maintenance_preferences |
Object (external.MaintenancePreferences) | Body | No | Preferences for maintenance scheduling like For more details, refer to the API Reference. . |
manifest |
Object (external.ManifestOptions) | Body | No | Configures HLS, DASH, and DVR playback settings, along with playlist options, segment formatting, and output configurations. For more details on manifest properties and configurations, refer to the API Reference. |
notifications |
Array of objects (external.Notification) | Body | No | Defines job lifecycle notifications, specifying event types and destination URLs. For more details, refer to the API Reference. |
outputs |
Object (external.OutputVariants) | Body | Yes | Specifies audio and video output variants, including codec, bitrate, resolution, and framerate. For more details on output properties and configurations, refer to the API Reference. |
region |
String | Body | Yes | The region where the job is created. |
type |
String (Enum: "channel", "event") | Body | Yes | Defines whether the job is a channel or an event. |
Get a job
GET /v2/accounts/{account_id}/jobs/{id}
This endpoint allows you to retrieve detailed information about a specific live streaming job via a GET
request. See the API Reference for more details.
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
id |
String | Path | Yes | Job ID for the job to retrieve details for. |
account_id |
String | Path | Yes | Account ID associated with the API call. |
Start a given job
PUT /v2/accounts/{account_id}/jobs/{id}/start
Initiates a previously configured live streaming job, start processing and distributing the stream according to the job’s settings. See the API Reference for details.
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
id |
String | Path | Yes | Job ID for the job to retrieve details for. |
account_id |
String | Path | Yes | Account ID associated with the API call. |
Stop a Live Job
PUT /v2/accounts/{account_id}/jobs/{id}/stop
Use this endpoint to end a live broadcast, disconnecting from the input source, and stopping the encoding and distribution processes. See the API Reference for details.
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
id |
String | Path | Yes | Job ID for the job to retrieve details for. |
account_id |
String | Path | Yes | Account ID associated with the API call. |
Delete a job
DELETE /v2/accounts/{account_id}/jobs/{id}
Use this endpoint to finalize a live streaming job, permanently. Unlike the "Stop" endpoint, which simply halts the stream, "Delete" ensures that the job is completed. See the API Reference for details.
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
id |
String | Path | Yes | Job ID for the job to retrieve details for. |
account_id |
String | Path | Yes | Account ID associated with the API call. |
List all jobs in an account
GET /v2/accounts/{account_id}/jobs
This endpoint retrieves a comprehensive list of all live streaming jobs associated with a specific account. See the API Reference for details.
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
account_id |
String | Path | Yes | The account ID for which to retrieve the jobs. |
regions |
Array of strings | Query | No | Filters jobs by the specified regions. |
modified_at |
String | Query | No | Filters jobs modified at a specific time (format: ISO 8601). |
created_at |
String | Query | No | Filters jobs created at a specific time (format: ISO 8601). |
processing_state |
String | Query | No | Filters jobs by their processing state (e.g., "active", "completed"). |
ingest_state |
String | Query | No | Filters jobs by their ingest state (e.g., "waiting", "processing"). |
Playback Management
This section provides endpoints for generating playback tokens and retrieving playback URLs, enabling secure and customizable access to live content.
Create a playback token for a job
POST /v2/accounts/{account_id}/playback/{id}/token
Generate a secure, time-limited token that allows authorized access to a specific live streaming job ensuring that only viewers with valid tokens can watch the live stream. See the API Reference for details.
Sample payload:
{
"dvr": true, //enables playlist with dvr
"manifest_format": "hls", //specifies playlist output type
"playlist_name": "playlist", //sets a custom playlist name
"low_latency": true //requests a low latency playlist
}
Parameters:
Name | Type | In | Required | Description |
---|---|---|---|---|
account_id |
String | Path | Yes | Account ID associated with the playback token request. |
id |
String | Path | Yes | Job ID for which the playback token is created. |
dvr |
Boolean | Body | No | Indicates whether DVR is enabled for the playback token. |
low_latency |
Boolean | Body | No | Indicates if the playback token should support low latency. |
manifest_format |
String | Body | No | Specifies the format of the manifest (e.g., HLS or DASH). |
playlist_name |
String | Body | No | Optional custom name for the playlist. |
Generate a playback URL for a job
GET /v2/playback/{id}?pt={playback_token}
This endpoint provides a direct URL to access the live stream of a specific job, incorporating a playback token for secure, authorized viewing. See the API Reference for details.
Name | Type | In | Required | Description |
---|---|---|---|---|
account_id |
String | Path | Yes | The account ID associated with the Brightcove Live account. |
id |
String | Path | Yes | The ID of the job for which the playback URL is being generated. |
pt |
String | Query | Yes | The playback token required for generating the playback URL. |
Generate sources for a job
GET /v2/accounts/{account_id}/playback/{job_id}/sources
This endpoint retrieves the list of playback sources (URLs) available for a specific live streaming job. See the API Reference for details.
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
id |
String | Path | Yes | Job ID for the job to retrieve details for. |
account_id |
String | Path | Yes | Account ID associated with the API call. |
Job Listings and Notifications
This section provides tools to manage and monitor live streaming jobs across an account.
List notifications for an account
GET /v2/accounts/{account_id}/notifications
This endpoint retrieves a list of notifications related to live streaming activities and job status changes within a specific Brightcove account. See the API Reference for details.
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
account_id |
String | Path | Yes | Account ID associated with the API call. |
List notifications for a job
GET /v2/accounts/{account_id}/jobs/{job_id}/notifications
This endpoint retrieves notifications specific to a particular live streaming job. See the API Reference for details.
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
id |
String | Path | Yes | Job ID for the job. |
account_id |
String | Path | Yes | Account ID associated with the API call. |
Metrics
This section allows you to monitor key indicators of streaming performance, enabling proactive management and optimization of live broadcasts.
Get Job metrics
GET /v2/accounts/{account_id}/jobs/{job_id}/metrics
This endpoint retrieves detailed performance metrics for a specific live streaming job, providing real-time data on key indicators. See the API Reference for details.
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
account_id |
String | Path | Yes | The account ID associated with the job. |
job_id |
String | Path | Yes | The job ID for which metrics are being queried. |
name |
String | Query | Yes | Comma-separated metric names to query. |
period |
String | Query | No | Period filter in seconds. Supported values: 30s, 60s, 300s, 900s, 3600s. |
range |
String | Query | No | Range filter in hours. The max range depends on the period value. See the table below. |
Supported Period and Range Mappings
Period (seconds) | Max Range (hours) |
---|---|
30s | 1h |
60s | 3h |
300s | 24h |
900s | 24h |
3600s | 240h |
Get all supported metrics
GET /v2/accounts/{account_id}/jobs/{job_id}/supported-metrics
This endpoint provides a list of all metrics available for monitoring live streaming jobs within an account. See the API Reference for details.
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
id |
String | Path | Yes | Job ID for the job. |
account_id |
String | Path | Yes | Account ID associated with the API call. |
Recommendation for Standard Ingest Profiles
The following recommended ingest profiles are designed to optimize the quality and compatibility of live streams in the Live 2.0 API. Each profile specifies standard settings, ensuring consistent video quality and performance across various playback devices
Profile Name | Color Format | Codec | Max Level | Max Resolution | Frame Rates | Deinterlace Modes | DAR |
---|---|---|---|---|---|---|---|
Live HD 1080 | BT.709 | H.264 | 4.0 | 1920x1080 | 23.976, 24, 25, 29.97, 30 | detect[default] /on/off | 16:9 |
Live HD 1080 HFR | BT.709 | H.264 | 4.2 | 1920x1080 | 50, 59.94, 60 | detect[default] /on/off | 16:9 |
Live HD 720 | BT.709 | H.264 | 3.1 | 1280x720 | 23.976, 24, 25, 29.97, 30 | detect[default] /on/off | 16:9 |
Live HD 720 HFR | BT.709 | H.264 | 3.2 | 1280x720 | 50, 59.94, 60 | detect[default] /on/off | 16:9 |
Live SD 576 | BT.709 | H.264 | 3.1 | 1024x576 | 23.976, 24, 25, 29.97, 30 | detect[default] /on/off | 16:9 |
Live SD 4:3 576 | BT.709 | H.264 | 3.1 | 768x576 | 23.976, 24, 25, 29.97, 30 | detect[default] /on/off | 4:3 |
Live 30 1080 | HDR10 | HEVC | 4.1 | 1920x1080 | 50, 59.94, 60 | off | 16:9 |
Live HDR10 2160 | HDR10 | HEVC | 5.1 | 3840x2160 | 50, 59.94, 60 | off | 16:9 |
Video Output Parameters
Name | Type | Default | Values Allowed | Required | Description |
---|---|---|---|---|---|
width | Integer | 192–4096 | Yes | Defines the frame width of the video. | |
height | Integer | 108–2160 (multiple of 2) | Yes | Defines the frame height of the video. | |
framerate | String | "24/1", "25/1", "30/1", "50/1" "60/1" | Yes | Sets the output framerate for encoding. Ensure framerate consistency across outputs. | |
sample_aspect_ratio | String | "1:1" | "1:1", "4:3" | No | Defines the sample aspect ratio for compatibility with players. |
video_color_format | String | "sdr" | "sdr", "hdr10" | No | Sets the color format SDR of the video. Must be consistent across renditions. |
codec | String | "h264", "hevc" | Yes | Specifies the codec used for encoding. Use HEVC for 4K and UHD/HDR content. | |
profile | String | H.264: "high"; HEVC / sdr: "main"; HEVC / hdr10: "main10" | H.264: "baseline", "main", "high"; HEVC: "main", "main10" | No | Defines the codec profile. Required for compatibility with commercial encoders and ecosystem requirements (e.g., AppleTV, HbbTV). |
tier | String | "main" | HEVC only: "main", "high" | No | Specifies the codec tier, applicable only to the HEVC codec. Higher tiers may have limited compatibility on some devices. |
codec_options.level | String | Automatic determination based on video resolution, framerate, bitrate, bitrate_cap, and decoder_buffer_size | H.264: "1", "1.1", "1.2", "1.3", "2", "2.1", "2.2", "3", "3.1", "3.2", "4", "4.1", "4.2", "5", "5.1", "5.2", "auto"; HEVC: "1", "2", "2.1", "3", "3.1", "4", "4.1", "5", "5.1", "6", "6.1", "6.2", "auto" | No | Defines the codec level. Required for compatibility with commercial encoders and to meet ecosystem requirements (e.g., AppleTV, HbbTV). If specified, it will be validated against other parameters like resolution, framerate, and bitrate. |
bitrate | Integer (kbps) | 100–20000 | Yes | Defines the video bitrate in kbps. This value should be chosen to stay within a meaningful range based on resolution and framerate parameters, and may be limited by codec profile or level. | |
decoder_bitrate_cap | Integer (kbps) | 1.2 * bitrate | Range: [1...2] * bitrate | No | Specifies the maximum allowable bitrate in the codec's HRD buffer model. For low-latency streaming, this should be close to CBR (i.e., `bitrate_cap` = `bitrate`). For normal latency, it can range from 1.2 to 1.5 times the bitrate. |
decoder_buffer_size | Integer (kbits) | 1.5 * bitrate | Range: [1...4] * bitrate | No | Specifies the buffer size in the codec HRD buffer model. For low-latency streaming, this should be close to CBR (i.e., `buffer_size` = `bitrate`). For normal latency, it can range from 1.5 to 2 times the bitrate. |
video_bframes | Integer | 3 (default for all codecs except H.264 baseline, which defaults to 0) | Range: 0–16 | No | Defines the number of B frames used in the stream. This setting may vary based on ecosystem guidelines (e.g., HbbTV, DVB, SCTE) or target framerate. For H.264 baseline profile, it must be set to 0. Commonly, 3 is used for US IPTV distribution. |
video_reference_frames | Integer | 4 (default for all codecs except H.264 baseline, which defaults to 1) | Range: 1–16 | No | Defines the number of reference frames used in the stream. This setting may vary based on ecosystem guidelines (e.g., HbbTV, DVB, SCTE) or target framerate. For H.264 baseline profile, it must be set to 1. A common setting for US IPTV distribution is 4. |
keyframe_rate | Float (fps) | 0.5 | 1, 0.5 | No | Defines the frequency of keyframes. This parameter must be consistent across all video renditions. It is the inverse of the smallest segment size that can be assigned to encoded streams. |
keyframe_interval_seconds | Float (seconds) | 2 | Any positive float | No | Specifies the interval in seconds between keyframe insertions. It is the inverse of `keyframe_rate`. |
deinterlace | String | detect | "on", "off", "detect" | No | Defines how to handle inputs from broadcast workflows. In broadcast settings, some streams are encoded as interlaced but contain progressive content. The "detect" option allows automatic detection, while "on" or "off" can be used to manually control deinterlacing if detection is inaccurate. |
Audio Output Parameters
Name | Type | Default | Values Allowed | Required | Description |
---|---|---|---|---|---|
codec | String | "aac" | "aac", "ac3", "eac3" | No | Defines the audio codec to be used. |
profile | String | "aac-lc" | AAC codec: "aac-lc", "he-aac", "he-aac-v2" | No | Defines the audio codec profile. It is important to specify this parameter accurately for precise control over audio quality and compatibility. |
bitrate | Integer (kbps) | 128 for stereo, 384 for 5.1 | Range: 32–512 | No | Defines the audio codec bitrate. This should be cross-checked against the sampling rate and the number of channels for each codec profile to ensure compatibility. An error will be reported if the bitrate is inadequate for the configuration. |
sample_rate | String | "48000" | "32000", "44100", "48000", "96000" | No | Defines the sample rate of the audio signal to be delivered. It’s important to control this setting carefully, as input mezzanines may have higher sample rates, which can cause issues if lower target bitrates are used. |
channels | Number | "2" | "1", "2", "6" | No | Defines the number of audio channels on the output. For example, setting "6" indicates a 5.1 surround sound configuration. This parameter should be controlled precisely to ensure compatibility with audio output requirements. |
Limitations
- Low Latency: Low-latency streaming is currently supported only for HLS outputs. Customization options are not yet available and remain under development.
- TS Segment Container Jobs: The TS segment container is configured to include muxed audio with all video renditions. As a result, any audio-only chunklist generated in the playlist manifest may not load correctly, potentially affecting audio-only playback.
- 4K Output Rendition: Support for 4K output renditions has not been implemented.