Skip to main content

Encoding & Decoding Options

Encoding and decoding options are format-specific settings that control how a profile reads or writes a caption file. They appear automatically in both the web application and the Job Description JSON when a profile that supports them is selected. Options vary considerably by format — some profiles have no configurable settings at all, while complex binary formats like EBU-STL expose dozens of metadata fields.

In the web application, options appear as a collapsible panel beneath the source and target profile selectors. In the Job Description JSON, they are passed in the decode_options and encode_options objects respectively.

Decoding options

Encoding options

Decoding Options

Decoding options control how a source file is read and interpreted during the decode step. The most common decoding options are channel selection (for formats that multiplex multiple language tracks), metadata extraction, and control over which content layers are imported.

Scenarist (SCC) — Decode Options

OptionTypeDefaultDescription
ChannelListautoSpecifies which CEA-608 channel to read from the file. Options are auto, ch01, ch02, ch03, and ch04. When set to auto, the decoder reads the most populated channel.

MacCaption 608/708 (MCC) — Decode Options

OptionTypeDefaultDescription
ChannelListch01Specifies which caption channel or service to read. Options include ch01ch04 (608 channels) and programAprogramF (708 services).

EBU-STL — Decode Options

OptionTypeDefaultDescription
Decode Speakers By ColorListfalseWhen enabled, the STL colour attribute is used to identify different speakers and populate the CCPRJ speaker object.
Speaker IdentifierText(empty)A text string used to identify speaker names within subtitle text. If the text of an event begins with this string, the prefix is treated as a speaker label and extracted accordingly.
Insert Speaker IdentifierListfalseWhen enabled, the decoded speaker name is prepended to each event's text in the output.
Speaker Is Greater ThanNumber1The minimum number of characters a speaker identifier must contain to be recognised.

Cavena 890 — Decode Options

OptionTypeDefaultDescription
Decode Line 1ListyesWhether to decode the first subtitle line track from the binary file.
Decode Line 2ListyesWhether to decode the second subtitle line track.

Text Transcript — Decode Options

OptionTypeDefaultDescription
Max Characters Per LineNumber32The maximum characters per line used when segmenting a plain-text transcript into timed events.
Max Lines Per EventNumber2The maximum number of lines per event generated from the transcript.
Reading RateNumber20The reading rate in characters per second used to calculate event durations from the transcribed text.
Split on CommaListnoWhether to create a new event at each comma.
Split on PunctuationListyesWhether to create a new event at each sentence boundary.
Block ImportListnoWhen enabled, imports paragraphs (blank-line-separated blocks) as single events rather than splitting by punctuation.

Encoding Options

Encoding options control how the target file is written. They cover metadata fields required by the format specification, formatting preferences, channel assignments, and structural settings.

Scenarist (SCC) — Encode Options

OptionTypeDefaultDescription
ChannelListch01The CEA-608 channel to write caption data into. Options: ch01, ch02, ch03, ch04. Use ch01 for the primary language and ch03 for a secondary language in dual-language deliveries.
Line EndingsListunixThe line ending style of the output text file. Options: windows (CRLF), unix (LF), macintosh (CR).
Timecode FormatListautoControls whether semicolons (drop-frame) or colons (non-drop-frame) are used in timecode strings in the SCC file. auto selects based on the job frame rate.

MacCaption 608/708 (MCC) — Encode Options

OptionTypeDefaultDescription
MCC VersionList2.0The MCC file format version to write. Version 2.0 supports both CEA-608 and CEA-708 data. Version 1.0 is a legacy option for older decoders.
Compress OutputListyesWhether to apply MCC's native run-length compression to the binary packet data in the output file, which reduces file size.

EBU-STL — Encode Options

EBU-STL has the most extensive set of encoding options because the format mandates a large header block (the GSI block) containing programme and distribution metadata. All text fields in the GSI block can be populated directly.

OptionTypeDefaultDescription
Display Standard CodeListOpen subtitlingThe STL display standard: Undefined, Open subtitling, Level-1 teletext, or Level-2 teletext.
Double Height CharactersListnoWhether to use double-height character rendering for the subtitle text.
Program TitleText(empty)Programme title written into the GSI block.
Episode TitleText(empty)Episode title written into the GSI block.
Translated Program TitleText(empty)Translated programme title for the GSI block.
Translated Episode TitleText(empty)Translated episode title for the GSI block.
Translator's NameText(empty)Translator name for the GSI block.
Translator's Contact DetailsText(empty)Contact details for the translator.
Subtitle List Ref CodeText(empty)Reference code for the subtitle list.
PublisherText(empty)Distributor or publisher name.
Editor's NameText(empty)Subtitling editor name.
Editor's Contact DetailsText(empty)Editor contact details.
Language CodeListEnglishThe language of the subtitle content, written into the GSI language code field. Full list of EBU-defined languages is supported.
GSI Character SetListMultilingualThe GSI character set code. Options: United States, Multilingual, Portuguese, Canada-French, Nordic.
Character Code TableListLatinThe character code table used for subtitle text encoding. Options: Latin, Cyrillic, Arabic, Greek, Hebrew.
Country of OriginListCanadaThe country of origin for the STL file's GSI block, selected from the full ISO 3166 country list.
SOM (Start of Message)Text00:00:00:00The programme start timecode written into the GSI block.
Max Number of RowsNumber23Maximum number of subtitle rows, written into the GSI block.
Max Number of Characters Per RowNumber40Maximum characters per row, written into the GSI block.
Include Blank Subtitle At StartListnoWhen enabled, a blank subtitle event is inserted at the beginning of the file, which some STL systems require.

Cavena 890 — Encode Options

OptionTypeDefaultDescription
Line 1 LanguageListEnglishLanguage of the first subtitle track: Danish, Norwegian, English, Russian, Greek, Romanian, Swedish, Arabic, Hebrew, Traditional Chinese, Simplified Chinese.
Line 2 LanguageListEnglishLanguage of the second subtitle track.
Font Family Line 1ListautoThe font family code for the first track, corresponding to Cavena hardware font IDs.

Text Transcript — Encode Options

OptionTypeDefaultDescription
Include Speaker NameListnoWhether to prepend the speaker name to each event's text in the output.
Include TimestampListnoWhether to include a timestamp at the start of each line.
Split On Event GapNumber4The minimum gap in seconds between events that triggers a paragraph break in the output text.
Max WordsNumber99999Maximum number of words per output file.
Event PrefixText(empty)A string prepended to each event in the output.
Event SuffixText(empty)A string appended to each event in the output.
Encode FormattingListfalseWhether to include inline formatting codes (italic, bold) in the output text.

TTML / DFXP / IMSC Variants — Common Encode Options

Most TTML-family profiles expose the following options where applicable:

OptionTypeDefaultDescription
Language CodeTextenThe BCP-47 language tag written into the TTML xml:lang attribute (e.g. en, fr, de, ja).
TimebaseListmediaWhether timecodes are expressed relative to media time (media) or wall-clock time (clock).
TitleText(empty)The programme title written into the TTML metadata header.
DescriptionText(empty)Description metadata written into the TTML header.
CopyrightText(empty)Copyright string written into the TTML header.

Passing Options in the API

When submitting a Job Description to the API, encoding and decoding options are passed as the encoding_options and decoding_options fields respectively. Each field is an array of option objects — the same structure returned by the GET /help/profiles/all endpoint. Every option object contains four fields:

FieldDescription
nameThe option name, matching the label shown in the web application.
typeThe input type: list, text-input, number-input, or textarea.
valuesFor list types, an array of allowed values. For other types, an empty string.
selectedThe value to use for this conversion. Set this to override the default.

The easiest way to construct the options array is to call GET https://api.closedcaptionconverter.com/help/profiles/all, find your profile, copy the decode or encode array from the response, and then set the selected field on any options you want to change.

The example below converts from EBU STL to Scenarist V1.0, using the ch02 channel on the target:

{
"source_profile": "EBU STL",
"target_profile": "Scenarist V1.0",
"decoding_options": [
{
"name": "Decode Speakers By Color",
"type": "list",
"values": [true, false],
"selected": false
},
{
"name": "Speaker Identifier",
"type": "text-input",
"values": "",
"selected": ""
},
{
"name": "Insert Speaker Identifier",
"type": "list",
"values": [true, false],
"selected": false
},
{
"name": "Speaker Is Greater Than",
"type": "number-input",
"values": "",
"selected": 1
}
],
"encoding_options": [
{
"name": "Channel",
"type": "list",
"values": ["ch01", "ch02", "ch03", "ch04"],
"selected": "ch02"
},
{
"name": "Line Endings",
"type": "list",
"values": ["windows", "unix", "macintosh"],
"selected": "unix"
},
{
"name": "Timecode Format",
"type": "list",
"values": ["colon", "semi-colon", "auto"],
"selected": "auto"
}
]
}

You do not need to include every option in the array — omitted options use their profile defaults. However, if you do include an option object, the entire object (including name, type, and values) must be present and accurate; only the selected field needs to differ from the default.