MacCaption Ancillary Data Packet Transfer File
A video's captions as its frames carry them: each frame's caption packet, in hex, after its timecode. Where SCC holds CEA-608 alone, MCC holds the whole packet, CEA-608 and CEA-708 together. Named after MacCaption, the captioning software whose format it is.
At a glance
| Extension | .mcc |
|---|---|
| Media type | None registered |
| Specification | The file: MacCaption's, described in its own header. The packets: SMPTE ST 291 and ST 334. The captions: CTA-608 and CTA-708. |
| Time precision | A frame, at 23.976 to 60 a second |
| Text encoding | Hex digits, with letters for runs of bytes that recur. The characters are CEA-608's and CEA-708's own. |
| Styling | CEA-608's italics, underline and seven colours; CEA-708's own fonts, sizes and colours |
| Positioning | CEA-608's grid of 15 rows of 32 columns; CEA-708's windows |
| Speakers | None in the format. Captioners write >> at each change of speaker. |
| In containers | The packets, not the file: the ancillary data of SDI video, and MXF's ancillary data track |
Anatomy of a file
A header, then a line for each frame that carries captions: its timecode, a tab, and the frame's packet.
File Format=MacCaption_MCC V1.0 // Computer Prompting and … Creation Program=Subtitld Time Code Rate=30DF 00:00:22;07 T…FC9420…AB 00:00:22;08 T…FC9420…AB 00:00:22;09 T…FC94AE…AB
- 1 · Header
The version, 1.0 or 2.0, then MacCaption's description of the format, copied whole into every file.
- 2 · About the file
What wrote the file and when, and the rate its timecodes count.
- 3 · Timecode
The frame the packet goes out with.
- 4 · Packet
The frame's caption packet, in hex. Inside, the two bytes of CEA-608 an SCC file would hold for that frame:
9420,9420,94ae…
A packet, byte by byte
T49S494F43ZZ72F4FC9420ROO74ZZ0BAB, the first line above, whole:
| In the file | What it is |
|---|---|
T |
61 01 An ancillary data packet of CEA-708 captions |
49 |
Count 73 bytes follow |
S |
96 69 A caption distribution packet begins |
49 |
Its length, 73 bytes |
4F |
Its frame rate: 4, for 29.97 |
43 |
Flags Caption data follows; the caption service is on |
ZZ |
Its number, counting up a packet at a time |
72 F4 |
Caption data 20 sets of three bytes follow |
FC9420 |
Field 1 A CEA-608 pair: 9420, SCC's RCL |
R |
Field 2 FD 80 80: nothing |
OO |
CEA-708 18 × FA 00 00: nothing this frame |
74 ZZ |
Footer The packet's number again |
0B |
The caption packet's checksum |
AB |
The ancillary packet's checksum |
600 sets a second, whatever the rate. A frame carries 25 sets at 24 frames a second, 24 at 25, and 20 at 30, as many at 23.976 and 29.97: two bytes of captions in each set, 9,600 bits a second. CEA-608 uses a few of them; CEA-708 has the rest.
Letters for bytes
Runs that recur in every packet are written as a letter.
| Letter | Bytes |
|---|---|
G to O |
FA 00 00, one to nine times: CEA-708 with nothing to send |
P Q R |
FB 80 80, FC 80 80, FD 80 80 |
S |
96 69, the start of a caption distribution packet |
T |
61 01, the start of an ancillary packet of CEA-708 |
U |
E1 00 00 00 |
Z |
00 |
The timecode
The header's Time Code Rate says how frames are counted: 24, 25, 30, 30DF (drop-frame, with ; before the frames), 50 or 60, and 60DF from version 2.0. Video at 23.976 counts as 24, and at 29.97 as 30 or 30DF: the frame rate in each packet says which it is.
MCC or SCC?
| SCC | MCC | |
|---|---|---|
| Holds | CEA-608's bytes | Each frame's caption packet: CEA-608 and CEA-708 |
| Frame rates | 29.97 | 23.976 to 60 |
| A line | Words from a frame on, one word a frame | One frame's packet |
MCC in Subtitld
- Every subtitle's text, in rows of 32 columns
- Italics, underline and seven colours
- Where it sits: top, middle or bottom; left, centre or right
- Speakers, as
>>at each change - Start and end, to the frame
- Bold, fonts and sizes
- Characters outside CEA-608's set, which become their plain letter or "?"
- CEA-708 captions: Subtitld reads and writes the CEA-608 ones
- Translations beside the original
- Dubs, speakers' names and faces
Save a .usfx project to keep what is Subtitld's.
Opening an MCC file
Subtitld reads:
- the frame rate the header and the packets give, drop-frame or not;
- the letters, and each packet's caption data;
- the CEA-608 captions of the first field, or of the second when the first has none, and those of CEA-608's own ancillary packets;
- version 2.0's field and line after the timecode.
It decodes the captions as it does SCC's: pop-on, roll-up and paint-on captions; italics, underline and colours; rows and columns as the subtitle's place. The file's frame rate is kept, to save it again as it was. A file with only CEA-708 captions says so: Subtitld does not read them yet.
Exporting MCC
Export, then Subtitles and MCC, offers:
- TextThe original, or a translation.
- Speaker namesLeft out, before the text (Thom: …), or as
>>at each change of speaker. - FormattingKept, or removed.
- Shift timesEvery subtitle earlier or later by the same amount.
- Frame rate23.976, 24, 25, 29.97 (drop-frame or not) or 30: the video's, unless you choose.
Subtitld writes version 1.0, with MacCaption's header whole. The captions are the pop-on ones it writes for SCC, in the first channel: a packet for each frame that carries a pair, with nothing for the second field and CEA-708's share left empty.
Trivia
Lines of comments open every MCC file: MacCaption's description of the format, and its terms. The format may be written as long as they are included whole.
Computer Prompting & Captioning Co. was founded. Its captioning software, MacCaption for the Mac and CaptionMaker for Windows, went to Telestream with the company in 2013.
Every caption distribution packet begins with these two bytes, MCC's S. The packet was first defined in CEA-708-B, and is now SMPTE ST 334-2.
Related formats
-
.sccScenarist Closed Caption
-
.ttmlTimed Text Markup Language
-
.stlEBU Subtitling Data Exchange Format
Open it in Subtitld with the video and retime it on the waveform.