Overview
NextGen Live supports closed captions for live playback in two ways:
- In-band passthrough: EIA-608 and EIA-708 captions embedded in your encoder output are passed through to playback manifests
- Media AI autocaptions: automatically generated captions from the live audio track
For Control Room caption language settings, see Creating and Managing NextGen Live Events (Captions section).
In-band captions (608/708)
Brightcove Live accepts captions in-band inside H.264 headers. Configure caption languages so players, especially on Android, can identify tracks correctly.
- Specify up to 4 caption languages using 3-letter ISO 639-2 codes (
eng,spa,fra, etc.) - Order languages to match your encoder: first language maps to CC1, second to CC2, and so on
- Set caption positioning in the 608 data at the encoder when using 608 captions
API configuration
Include caption outputs when you create or update a job:
{
"name": "Captioned channel",
"type": "channel",
"region": "us-west-2",
"input": { "protocol": "srt" },
"outputs": {
"video": [{ "label": "720p", "height": 720, "width": 1280, "bitrate": 3000000, "codec": "h264" }],
"audio": [{ "label": "default", "codec": "aac", "bitrate": 128000 }],
"caption": [
{
"type": "embedded_closed_caption",
"passthrough": true,
"language_code": "eng"
},
{
"type": "embedded_closed_caption",
"passthrough": true,
"language_code": "spa"
}
]
}
}
Media AI autocaptions
Enable autocaptions in the media_ai object on create or update:
{
"media_ai": {
"autocaption": {
"source_language": "en-US",
"filter_profanity": true,
"filter_disfluency": true,
"diarization": false,
"use_dictionary": false
},
"buffer": 5
}
}
| Field | Description |
|---|---|
source_language |
BCP-47 language tag for spoken audio (e.g. en-US). Omit to disable autocaption |
filter_profanity |
Mask profanity when true (default) |
filter_disfluency |
Remove filler words when true (default) |
diarization |
Attribute speech to speakers when supported |
buffer |
Latency buffer in seconds (5–90) for caption timing relative to audio |