Captioneer v1.0

Captioneer is a tool for creating popup-style closed captions on 29.97fps NTSC video as defined by the CEA-608-B standard. Mostly its purpose is to allow you to easily add closed captions and subtitles to amateur video productions on DVD. Captioneer lets you directly edit each popup caption, then convert your captions into a subtitle file that you can import into other applications, such as DVD-Lab Pro.

Captioneer supports the following features of the closed caption system:

Flashing and colored text are not yet supported. I do not plan to implement paint-on or roll-on captions, ATSC (CEA-708-B) captions or captions for 24fps video.

System Requirements

Download and Installation Instructions

Click here to download Captioneer.

  1. Open the zip file and run CaptioneerSetup.msi
  2. Download and install the Microsoft Visual C++ 2008 Redistributable Package (x86).

Tech notes

In commercial DVD's and TV broadcasts, every double-byte control code is normally repeated in the next frame, in order to compensate for weak signals. While working on this program, I found that repeating the codes caused most TV's to interpret the codes twice, corrupting the caption display.

Because of this, Captioneer does not repeat control codes. Given that the signal from the DVD player should be clean and strong, repetition of codes is unnecessary, and every television I've tested the captions with interprets them correctly.

If a code should in fact be interpreted twice (for instance, two consecutive note characters), Captioneer automatically inserts a pair of NULL characters between the codes to avoid confusion. Unfortunately, this does not work properly on some televisions.

Using Captioneer

Adding captions to a DVD is a process that takes time and patience. Here are the steps that I go through to add captions and subtitles to my DVD's:

  1. Create a preview version of the video and select it into your new caption project
  2. Create each caption at the desired frame and screen position
  3. Set the timing options for each caption
  4. Save the captions to a file or multiplex them into the final MPEG-2 video stream
  5. Export the captions to a subtitle file
  6. Edit the subtitle file in a text editor to correct capitalization and spacing
  7. Import the MPEG-2 video and subtitle file into a DVD authoring program

The Captioneer GUI

All caption editing functions are in easy reach, arranged in one window.

Creating the preview video

To add captions to a movie using Captioneer, begin by selecting a preview video stream to work with. Adding captions should be one of the later stages of post-production, after all the video editing is finished, and you have the final cut. The media file you select should also contain an audio stream, so you can hear the dialogue as you edit the captions.

I recommend using an MPEG-1 or AVI version of the video for the caption project, since MPEG-2 playback is not frame-accurate in DirectX, and your captions will end up out of sync. In most cases, a 30fps Video CD-quality MPEG-1 file (1150 kbits/sec) is sufficient for the preview.

To select the video stream in Captioneer, click the filmstrip icon in the toolbar, or select "Choose Video Stream" from the File menu.

Locating the desired frame for the first caption

Once you have selected the video stream, find the frame in the video where you wish to place the first caption.

To move back and forth in the video, you can either position the slider, use the navigation buttons below the preview pane, or click and drag in the white area of the timeline. Each of the three methods has different advantages:

Creating the caption

With the desired frame displayed, click in the preview pane at the position you want the upper-left corner of the caption, and begin typing. Captioneer automatically creates a new caption and places it at the current frame.

Captions are displayed in a fixed-with font, aligned on a grid 32 characters wide and 15 rows high. You cannot type past the right edge of the grid.

According to the standard, each caption can use up to four lines of the display, but Captioneer does not enforce this requirement. You may use any four of the 15 lines - they do not have to be consecutive.

While you are typing in the preview pane, the following key combinations have special functions:

You can also enter special symbols and international characters using the key combinations given in the character set table below. Many of these characters are part of the extended character set. On televisions that do not support the extended character set, extended characters are replaced by a close approximation from the standard characters. For instance, on some televisions, the Spanish caption ¡NO SÉ! may display as: !NO SE!

Accented letters
Vowel with acute accent á é í ó ú
Ctrl+' then the letter
Vowel with grave accent à è ì ò ù
Ctrl+` then the letter
Vowel with circumflex â ê î ô û
Ctrl+Shift+^ then the letter
Vowel with dieresis ä ë ï ö ü
Ctrl+Shift+: then the letter
A, N, or O with tilde à ã Ñ ñ Õ õ Ctrl+Shift+~ then the letter
C with cedilla Ç ç Ctrl+, then the letter
A with ring Å å Ctrl+Shift+@ then the letter
O with stroke Ø ø Ctrl+/ then the letter
Ess-tsett (German sharp S) ß Ctrl+Shift+& then s
Inverted question mark ¿ Ctrl+Alt+Shift+?
Inverted exclamation point ¡ Ctrl+Alt+Shift+!
Opening single quote Ctrl+` then '
Closing single quote Ctrl+' then '
Opening double quote Ctrl+` then "
Closing double quote Ctrl+' then "
Opening angle quote « Ctrl+` then <
Closing angle quote » Ctrl+` then >
En dash Ctrl+- then -
Copyright © Ctrl+Alt+c
Registered Trademark ® Ctrl+Alt+r
Service Mark SM Ctrl+Alt+s
Trademark symbol Ctrl+Alt+t
Degree ° Ctrl+Shift+@ then space
One-half ½ Ctrl+/ then 2
Divide symbol ÷ Ctrl+Shift+: then -
Cent ¢ Ctrl+/ then c
British Pound £ Ctrl+- then L
Japanese Yen ¥ Ctrl+- then Y
Currency symbol ¤ Ctrl+Shift+@ then x
Broken vertical bar ¦ Ctrl+- then |
Musical note `
Bullet Ctrl+Alt+.
Line-drawing characters
Upper left corner Ctrl+Numpad 7
Upper right corner Ctrl+Numpad 9
Lower left corner Ctrl+Numpad 1
Lower right corner Ctrl+Numpad 3
Block Ctrl+Alt+Shift+|

Note: Sometimes when you add italic or underline text, an extra space is inserted into the caption. This is not a mistake; in the CEA-608-B specification, the formatting control codes double as visible whitespace characters. If the first character in the line is to be italic and/or underlined,you can avoid the extra whitespace at the beginning of the line by placing the left edge of the line within the first four columns.

Tip: If you make or obtain a transcript before inserting the captions, you can cut down on the number of times you backtrack in the preview, and thereby enter the captions more quickly.

Setting the caption timing mode

When you are finished typing the caption, select a display mode for the caption in the right-hand pane:

If you choose Normal or Persistent for the last caption in the project, it is given a default duration of one second. Once you add a new caption beyond it, its time on screen extends to the start of the new caption.

Fine-tuning the caption timing

Now that you have chosen a display mode, the caption appears in the timeline at the bottom of the window. The timeline is shown at a scale of one video frame per pixel.

Each caption is depicted using two rectangular blocks that touch at one corner. The upper block, colored light gray, represents the encoding time, or the time necessary to transmit the caption to the television before it is displayed. The lower block, colored dark gray, represents the caption's display time.

You can select a caption by clicking anywhere in the rectangular blocks. When you select a caption, the preview pane shows the first frame that the caption is on screen.

You can move a caption in time by clicking and dragging the caption, but you cannot overlap two encoding (upper) blocks. You can change a caption's duration by clicking and dragging the right edge of the display time (lower) block. Changing a caption's duration automatically sets its display mode to Manual.

Exporting the finished captions

When you are finished entering all the captions for the project and are ready to author the DVD, you can either save the closed caption data to a separate file or multiplex the captions into the final MPEG-2 elemental video stream (*.m2v). Do not re-encode the video after adding captions, or the data may be lost.

To save the captions in a separate file, click the "CC" disk icon in the toolbar or select "Export Captions" from the File menu. You can save them in raw binary format (*.bin/*.dat), the Scenarist hexadecimal format (*.scc), or a human-readable disassembly format (*.ccd).

To multiplex the captions into an existing MPEG-2 video stream, select "Multiplex into MPEG2 Stream" from the File menu.

If your DVD authoring software doesn't provide explicit support for closed-captions, try multiplexing the captions into the stream. Odds are that the authoring program correctly copies the captions into the VOB files as part of the video stream, but doesn't announce their presence in the IFO files. Most consumer DVD players will still output the closed caption information in the NTSC signal, regardless of the value of the flag in the IFO files.

If you have problems displaying the captions, you can use IFOEdit to change the VTS header (in VTS_*.IFO) to specify that closed captioning data is included for field 1 in the video stream.

Converting captions to subtitles

When your project is done, you can easily create a subtitle stream for DVD-authoring from the closed caption data. Note, however, that the subtitle export process converts all captions to lowercase, since captioned dialog is commonly written in all caps.

To export to a subtitle file, choose "Convert to Subtitle" from the File menu. You can load the resulting file (*.srt) into an authoring program such as DVD-Lab. You may find it easier to edit the captions in a text editor first, to correct the capitalization, line breaks and whitespace usage, and to add special characters such as ellipses or opening and closing quotes.

Frequently Asked Questions

Q: How do I run the program? Whenever I try to start it, Windows says the program's "configuration is incorrect."
A: In order to run the program, you must download and install the Microsoft Visual C++ 2008 Redistributable Package (x86).