macOS User Guide (see Windows)

6.5 Scenarist Closed Captions (SCC)

New in InqScribe 2.1.

InqScribe can import and export Scenarist Closed Caption (henceforth SCC) files. SCC files provide a textual representation of the Line 21 closed caption format, and may be used to generate closed captions in a variety of applications.

You can find general guidance for importing and exporting data elsewhere.

This page does not delve into the arcana of Line 21 and the SCC format. Here are some links to more exhaustive coverage of those topics.

  • The core elements of SCC are described in part 15.119 of Title 47 of the Federal Code of Regulations. You can go to the GPO Access site and browse your way to a downloadable PDF.
  • mcpoodle's great site covering SCC and CCD, mcpoodle's human-readable disassembly format. This site covers extensions to SCC that are not covered in the FCR reference.
  • The underpinnings of SCC are formalized as EIA-608 or CEA-608. You can also purchase the specification from the CEA. This includes the extended characters and codes not described in the (free) FCR reference.

6.5.1 Representing SCC Codes in InqScribe

SCC files use four-digit hex values to represent various commands as well as to encode text values. For example, "9420" represents the Resume Caption Loading command in channel CC1.

To simplify editing within InqScribe, we've adopted a version of the Closed Caption Disassembly (CCD) format defined by mcpoodle. This format uses tags in brackets to represent various SCC characters and codes. For example, the Resume Caption Loading command would be represented in InqScribe as "{RCL}".

Our version of CCD, InqScribe Closed Caption Disassembly (ICCD), is documented below.

6.5.2 Importing SCC

InqScribe will import SCC files into the current transcript, replacing the current text selection if it exists. Importing is undoable.

As part of the import, InqScribe will convert any special characters or codes to the equivalent ICCD value. If InqScribe finds a four-digit hex value that is does not understand, it will import that value, surrounded by brackets, like this: {#8080}. (Generally, this only happens if the SCC file contains invalid data.)

InqScribe will also convert the timecode from its SCC representation (either NTSC or NTSC drop frame) to the transcript's current timecode setting. Note that if you are importing a SCC file and want to perfect timecode match, you should make sure that you have set the transcript's timecode appropriately.

You can open SCC files with a text editor to determine whether they use NTSC or NTSC DF. If the timecodes use a semi-colon to separate seconds and frames, it's DF.

Here's an example. The following line of SCC:

00:01:14:20 9425 9425 94ad 94ad 9470 9470 d94f d552 20d0 4cc1 4345 2054 4f20 4c45 c152 ce20 c1ce c420 54c1 4ccb

will be imported into InqScribe as:

[00:01:14.20] {RU2}{RU2}{CR}{CR}{1500}{1500}YOUR PLACE TO LEARN AND TALK

Note that in this example, some codes are repeated. The SCC specification recommends repeating control codes for redundancy. Whether you do this is up to you.

6.5.3 Exporting SCC

When you export a SCC file, you can specify which CC channel (CC1, CC2, CC3 or CC4) you'd like to generate codes for. (Most control codes in SCC have different values depending on their destination channel.) If you're unsure of this, just export to CC1.

You can also define a caption prefix which is prepended to every entry in the SCC file. For example, if we return to the sample above, perhaps you want your captions to always roll up two rows and start in colum 0 of row 15.

Instead of having to do this in InqScribe:

[00:01:14.20] {RU2}{RU2}{CR}{CR}{1500}{1500}YOUR PLACE TO LEARN AND TALK

You can just do this:

[00:01:14.20] YOUR PLACE TO LEARN AND TALK

and export to SCC with the prefix {RU2}{RU2}{CR}{CR}{1500}{1500}. For long transcripts with lots of captions, this keep transcripts much simpler.

Tip: Any text prior to the first timecode in your transcript is ignored during export. This is a good place to store any prefix codes you want to use with your transcript. That way, the prefix is saved and you can easily copy and paste it in the export dialog.

If you'd like a caption to not include the prefix -- sometimes there are special cases -- just include {NOP} somewhere in the caption, like this:

[00:01:14.20] {NOP}{RU1}{RU1}{CR}{CR}{1500}{1500}ONE-LINER

InqScribe will convert characters and ICCD entities to the appropriate SCC equivalent. Note that SCC uses a fairly limited character set, and since InqScribe supports UTF-8, you may have characters in your transcript that have no SCC equivalent. In this case, InqScribe will convert such characters to £, which is a relatively standard practice. After exporting the file, InqScribe will notify you of all characters that it needed to convert in this way.

Note that curly brackets take on special significance when exporting to SCC: we use them to indicate ICCD codes that need to be converted to a hex value. That means that you should not use curly brackets for anything else in your transcript. It's best to use square brackets to surround timecodes. If you really need a curly bracket inserted into your caption, use the {lb} or {rb} equivalent.

Framerates

If your transcript is NTSC DF, then the framerate is exported as NTSC DF. Anything else is converted to NTSC NDF.

6.5.4 InqScribe Closed Caption Disassembly Reference

This section summarizes the bracketed codes that InqScribe uses to represent SCC codes and characters. The format (let's call it ICCD) differs slightly from mcpoodle's CCD:

  • Since InqScribe uses UTF-8, accented characters may be typed normally and do not require special codes.
  • Characters that may not have obvious keyboard equivalents (e.g. trademark, degree sign, 1/2 fraction) have codes for convenience.

Generally speaking, control codes are shown in upper case, while character codes are lower case. However, none of these codes are actually case sensitive, so {RCL} and {rcl} are equivalent.

You can enter hex codes directly, as 4-character blocks, by adding a hash sign after the opening bracket. For example, you can enter a Resume Caption Loading (in channel 1) code like this: {#9420}.

Recall that InqScribe imports hex codes it doesn't understand in this way. Generally, you should not need or want to enter raw hex yourself, but if you imported a SCC file created elsewhere, it's possible that you'll get codes like this and need to export them back out later.

Character Reference

Enter accented characters normally. Special characters may be entered using the entity values shown.

Entity Description
1/2 Fractional value -- ½
block A solid block
copy Copyright symbol -- ©
deg Degree symbol -- °
div Division sign -- ÷
lb Left curly bracket -- {
ll Lower left of a box -- └
lr Lower right of a box -- ┘
note Music note
rb Right curly bracket -- }
reg Registered mark -- ®
sm Service mark -- ℠
tm Trademark -- ™
ts Transparent space
ul Upper left of a box -- ┌
ur Upper right of a box -- ┐

Mid-row Codes

Mid-row codes are used to change the font color and/or underline state.

Entity Description
Wh White
WhU White, underlined
Gr Green
GrU Green, underlined
Bl Blue
BlU Blue, underlined
Cy Cyan
CyU Cyan, underlined
R Red
RU Red, underlined
Y Yellow
YU Yellow, underlined
Ma Magenta
MaU Magenta, underlined
I Italic
IU Italic, underlined

Misc Control Codes

These control codes are typically used at the start of the subtitle to clear out any prior text and position the caption appropriately.

Please note that we are not expert SCC captioners and cannot help you learn which control codes to use for your particular needs. We recommend reviewing the reference web pages listed at the top of this list for more in-depth coverage of SCC.

Entity Description
AOF Reserved (formerly Alarm Off)
AON Reserved (formerly Alarm On)
BS Backspace
CR Carriage Return
DER Delete to End of Row
EDM Erase Displayed Memory
ENM Erase Non-displayed Memory
EOC End of Caption
FON Flash On
NOP Not a SCC code. If present in a caption, InqScribe will not prepend the caption prefix to that line
RCL Resume Caption Loading
RDC Resume Direct Captioning
RTD Resume Text Display
RU2 Roll-up Captions: 2 Rows
RU3 Roll-up Captions: 3 Rows
RU4 Roll-up Captions: 4 Rows
TO1 Tab Offset: 1 Column
TO2 Tab Offset: 2 Columns
TO3 Tab Offset: 3 Columns
TR Text Restart

Preamble Access Codes

Preable codes are represented in a consistent way. Rather than list them all, we'll show you examples that let you generate all possible combinations.

These codes are typically used to position the text and (optionally) set its color. Recall that there are 15 possible rows and 32 columns to work with, and that text must be aligned horizontally in a column that is divisible by 4 (e.g. 0, 4, 8, ...).

For each of these commands, replace the "##" with a two-digit row number (e.g. "01", "02", ..., "15"). Row 1 is the top of the screen; row 15 the bottom.

Entity Description
##Wh White at row ##
##WhU White, underlined at row ##
##Gr Green at row ##
##GrU Green, underlined at row ##
##Bl Blue at row ##
##BlU Blue, underlined at row ##
##Cy Cyan at row ##
##CyU Cyan, underlined at row ##
##R Red at row ##
##RU Red, underlined at row ##
##Y Yellow at row ##
##YU Yellow, underlined at row ##
##Ma Magenta at row ##
##MaU Magenta, underlined at row ##
##WhI White italic at row ##
##WhIU White italic, underlined at row ##
##00 Indent 0 columns at row ##
##00U Indent 0 columns, underlined, at row ##
##04 Indent 4 columns at row ##
##04U Indent 4 columns, underlined, at row ##
##08 Indent 8 columns at row ##
##08U Indent 8 columns, underlined, at row ##
##12 Indent 12 columns at row ##
##12U Indent 12 columns, underlined, at row ##
##16 Indent 16 columns at row ##
##16U Indent 16 columns, underlined, at row ##
##20 Indent 20 columns at row ##
##20U Indent 20 columns, underlined, at row ##
##24 Indent 24 columns at row ##
##24U Indent 24 columns, underlined, at row ##
##28 Indent 28 columns at row ##
##28U Indent 28 columns, underlined, at row ##

macOS User Guide (see Windows)