608 Captions in HLS
608 captions, also known as CEA-608 captions, EIA-608 captions and Line 21 captions, are a standard for closed captioning for NTSC TV analog broadcasts in the United States and Canada. The 608 captions can be inserted into a live stream where they are mixed into the HLS ts (transport stream) files.
The 608 specification doesn't allow for custom naming of captions tracks, and by default will always be named CC1
or CC2
, regardless of the language being used.
Renaming captions
It is possible to rename the captions tracks to comply with 608 requirements in the Brightcove Player 6.56.0+ by using a player configuration. In the player's JSON, add the following:
Single language
"hls": {
"captionServices": {
"CC1": {
"language": "en",
"label": "English"
}
}
}
Two languages
"hls": {
"captionServices": {
"CC1": {
"language": "en",
"label": "English"
},
"CC2": {
"language": "es",
"label": "Español"
}
}
Note that you can edit the player's JSON configuration in the Studio Players module or using the Player Management API.
708 captions
708 captions require a different set of variables and other additions to reflect.
The format for 708 captions is the following for a single language:
"hls": {
"parse708captions": true,
"captionServices": {
"SERVICE1": {
"language": "en",
"label": "English"
}
}
Multiple languages are the following:
"hls": {
"parse708captions": true,
"captionServices": {
"SERVICE1": {
"language": "en",
"label": "English"
}
"SERVICE2": {
"language": "es",
"label": "Español"
}
}
For the change to work, “parse708captions”
has to be set to true, and the variable is changed to SERVICE instead of CC.
If your encoder is sending both 608 and 708 captions, and you wish to hide the 708 captions, add the line "parse708captions": false
immediately before the captionServices
block:
"hls": {
"parse708captions": false,
"captionServices": {
"CC1": {
"language": "en",
"label": "English"
}
}