Closed Caption Video

Captioning your online videos makes a difference. In the US alone, there are an estimated 28 million people with hearing loss. The vast majority of those people did not grow up using sign language. In addition there are many individuals who speak English as a second language who appreciate the appearance of words supporting what they hear and see. If you're able to caption your videos in English, you'll also have the ability to translate into other languages with captions. Captioning reaches a mostly unappreciated audience, and videos with captioning get far more views than those without.

The following is a guide for individuals interested in captioning their own videos for the internet. Except where noted, these methods can be applied without any additonal cost. If you get stuck anywhere in the process feel free to contact me at

  • What is "Closed Captioning"?.
  • Advantages to Captioning.
  • What skills are required?
  • How does Internet Captioning work?
  • Captioning Software and training guides.
  • Scripting your own captioned videos for use on your website.
  • Making common Windows Media Player playback captioned text from your website.
  • Captioning in Silverlight and one option for Mac Users.
  • Some common questions.

What is "Closed Captioning?:
Closed Captions are subtitles that can be either open and seen, or "closed" and not seen. They are different from subtitles which are permanently visible. The international symbol for Closed Captioning is a television shaped box containing the letters "CC".

The technology behind television CC and internet CC is different. What will be discussed here is Internet Captioning.

Other than turning the words on and off, are there other advantages to Closed Captioning?:
Yes. Most of the advantages to Closed Captioning are on the production end, because the Captioned text can be edited apart from the video with a separate program in an efficient manner.

You CAN use your movie editing program's "Add Title" function to place subtitles on a video, but this is a very inefficient and imprecise option with less than desirable visual results.

Here's why:
- Just as important as the words themselves are the spaces in between word groups. Captioning software helps you place words in a manner that matches the audio and visual cues.
- the text will not have a contrasting background. (like a black box)
- the text font size may change from one word set showing to another. As the number of characters increases, the size of the letters automatically decreases.
- you can't correct or translate the text into another language in post production without completely re-burning the video.

By contrast, here is an example of a Subtitled Video (NOT CC) done in Microsoft's "Windows Movie Maker". Using the "Title" or "Subtitle" function in your movie editor can be used effectively in some situations. But, for conversational dialog, the task of word placement and spaces inbetween is exceptionally cumbersome. You can use this method for songs and slow speech, but imagine what it would be like with a natural speaker.

Does Close Captioning require special computer skills? Can anyone do this?
Anyone can caption online videos. Some sites, such as YouTube and, require only that you upload a video and then upload a caption file. The caption file is prepared separately by you in Captioning Software and then uploaded after your video is uploaded. After that, you can then either embed or hyperlink the video into your website.

Google/YouTube now provides automatic machine-captioning for every video uploaded! It wouldn't be necessary to go further in this topic if it were not for duration limits and transcription errors. On YouTube the duration limit is 10 minutes. If you want to avoid chopping a sermon in half ( or asking your pastor to speed things up) other alternatives need to be considered. The rest of this tutorial describes what you need to know to create a fully idependent options from your website, and it assumes that you have the ability to upload individual files to your website server.

How does Internet Captioning work?

Closed Captioning is really two major components: the video itself, and a separate coded text file. Closed Captions are not embedded in the video. They are a separate entity. That separate text file is prepared in Captioning Software, like "Subtitle Workshop", and saved as either a ".sub", ".srt" or ".smi / sami" file. On top of that, there is a set of instructions, a "player", which has to be uploaded to the website in the same location as the other two files. It is that "player" program on the server that plays the video and the caption file at the same time. In addition there are coded parameters on the webpage where the video will be playing. The diagram below shows how captioning works on hosting sites like and, where most of the "behind the scenes" work on the server side and the webpage embed is done for you. If you're interested in doing the behind-the-scenes work on your own with your web server, that is explained later. The point is that they all work the same way...

How Captioning Works on YouTube

The caption files themselves are really nothing more than text files (.txt). They contain scripted code in the header which indicate things like format and font size, color, and background color. Each line of text to be shown has its own set of timing codes preceding it which cause the text to appear and disappear at the appropriate times. There are Captioning Programs that create this scripting for you, and save the file to the format required. Here's what part of an .smi (SAMI) file looks like that was prepared in a Captioning program. Notice that the program sets formatting instructions at the top, synchronized timings with the text below that:

<STYLE TYPE="Text/css">
P {margin-left: 29pt; margin-right: 29pt; font-size: 24pt; text-align: center; font-family: Tahoma; font-weight: bold; color: #FFFFFF; background-color: #000000;}
.SUBTTL {Name: 'Subtitles'; Lang: en-US; SAMIType: CC;}
<SYNC START=24100>
<P CLASS=SUBTTL>[ congregation singing<br>the end of a hymn ]
<SYNC START=27800>
<SYNC START=40101>
<P CLASS=SUBTTL>Grace and Mercy, and Peace<br>are all yours
<SYNC START=43601>
<SYNC START=43602>
<P CLASS=SUBTTL>from our living Lord<br>Jesus Christ, Amen.
<SYNC START=47102>

Programs like "Subtitle Workshop" give you the flexibility to work on and save your work on your computer over many sessions . This page contains a power point presentation and a screenshot tuturial on how to use URUSOFT's Subtitle Workshop (donationware).


Scripting on your own should only be done if you have some way to upload files to your own website. You also have to insert code into a webpage for the video to be viewable to your audience. That code has all kinds of parameters that you have to specify. One tool, Longtailvideo, contains wizards that automate code for you and the "player" program that you have to upload along with your Caption file and video. 

Below are some links on that site with some examples I used a long time ago to a flash .flv video. To do this, I had to convert a movie into flash format first, because the Flash option was the only format available at the time. This site is constantly updated, so it's worth your time to look around the site for other more recent format options. You'll probably find ways to caption movies other than those in flash .flv format.

This first link provides a flash .flv player file.

a construction wizard within this site:

Here is an example of a video I did using the flash technique generated from Longtailvideo...

and the code used... (note the required "addVariable" for captions!) This is what goes on your .html file.
<div id="player" style="height: 340px; width: 517px; position: relative; left: 44px; top: 7px;"> This line positions the player and also designates a size larger than your video for the player frame.

<script type="text/javascript" src="../../swfobject.js">
</script> <script type="text/javascript">
var so = new SWFObject('','mpl','406','332','8') Mediaplayer.swf is the player existing on your website.
;so.addVariable('height','332') Height and width have to match the same instructions three lines up (green)
;so.addVariable('file','Sermon8-17-2008.flv') this is the video file which has to be "flash video" .flv format.
;so.addVariable('image','revelation.jpg') this is simply an opening picture, in this case, John on Patmos.
;so.addVariable('captions','') The path to your caption file.


One little known way to caption a video is to upload a .smi extension caption file to the same location as your .wmv file. The .wmv file and the .smi file have to have exactly the same name, (though of course they'll have different extensions, .wmv and .smi) The most recent versions of Windows Media Player look for .smi files and play them by default. Older players require that the user "turn on" their caption option ahead of time. One thing I haven't worked out is how to get the text to align in the center. So far all of the videos I've tried this with end up with the text over to the left and in Times Roman font.

If you have Microsoft Expression Encoder 2 or later, you can import .smi captions using the metadata tab's "Script Commands" section. Encoder 1 did not have this ability. One important thing to remember here is that you cannot have lines greater than 35 characters each. Exceeding that limit results in no words showing at all. Captioned presentations in silverlight are the most impressive of all.

An example of a captioned movie in Silverlight:

Mac people might be interested in this great, (though dated), tutorial by Israel Melendez.
Here, the movie editing program is "Quicktime Pro" assisted with the use of "Annotation Edit". The captioning text is in .scc format.


Yes, BUT... remember that in addition to preparing the words themselves is the problem of word placement. There are spaces between phrases that you have to set. If you import a text file, you'll soon find that you're pushing the start times for all subsequent lines further and further out. It becomes a cascading problem that gets worse as you go. It's easier to do one set of words at a time.

Efficiency improves with practice. The first videos I did seemed to take up to a week at a couple hours per evening. The most recent 20-minute sermon I did took 5 hours. The time required is a lot, but consider the return in the size of your audience: Captioning is all the difference between a video with a few hundred views and one with several thousand over a few months. And, you can work at any pace you want, a little at a time, saving between sessions.

YES! This is one of the most interesting possibilities, because you can have multi-lingual people translate a pre-prepared caption files right from the captioning editing software. One problem, however, is that many languages require more characters than English, and that can force you to make extra text showings. The powerpoint tuturial listed above shows a frame where the translation tool is in use.

Most of the issues have to do with play-time duration limits. Google Video, when it existed, was limitless. Google now owns YouTube, which only allows for 10 minutes per video UNLESS you happen to have specially granted "producer" priviledges. appears to allow for movies longer than 20 minutes, but is not well known. If you use, you might get more "hits" embedding the videos onto your own webpages. If you use YouTube's automatic captioning, you will still need to make corrections to the text and re-upload the revision.

The Department of Education and other Captioning advocates recommend that you use Arial or Tahoma font (or similar font). They recommend that you use no more than 35 characters per line, and no more than two lines per showing. It's a good idea to stay within these limits, because some software and hosting sites corrupt text outside of these limits.

DVD's contain .ifo and .vob files. The captioning is encoded into these files. I haven't yet figured out how to manipulate these files to contain captioning. If anyone knows, please contact me or leave your method on this wiki.