- About the Projects
- Planning the Projects
- Project: Navigation Cue Points in a .flv File
- Project: ActionScript Cue Points for Captions in an XML File
- Project: Basic Caption Display Template
- Project: Channeling Cue Points to the Caption Display
- Project: Code for Audio-only Captions
- Project: Advanced Captioning Template
- Project: Synchronized Images Template
- Exploring the Support Classes
- Final Thoughts
Project: ActionScript Cue Points for Captions in an XML File
In this project, we’ll create an XML document containing cue point information. Namely, we’ll specify the text captions and when—in the video—they should appear. The process involves using a separate application I built just for this purpose called gathering_tool.swf. The data you collect will become ActionScript cue points that get added at runtime simply because they won’t be embedded in the .flv video; rather they’ll be stored in an XML document.
- Preparing to use the offline gathering tool
- Loading the video and transcript into the gathering tool
- Setting cue points while the video plays
- Exporting the XML file
Step 1: Preparing to Use the Offline Gathering Tool
Copy the gathering_tool.swf file from the gathering_tool folder you downloaded and place a copy next to the .flv file produced in the first project (automatically named the_children_must_learn.flv). (You can also find a finished version of the_children_must_learn.flv in the finished_source folder you downloaded for this chapter.)
Copy the video_captions.txt file from the starter_files folder and place a copy of that file in your working directory.
Step 2: Loading the Video and Transcript into the Gathering Tool
Double-click the gathering_tool.swf file to launch it in the Flash player. Type the name of the caption file (in this case, video_captions.txt) into the Transcription field and click the Load Text button. The contents of that text file appear in a list on the right, and the first row of that list is selected as shown in Figure 3.9.
Type the name of the .flv video file to which you want to add the captions (in this case, type the_children_must_learn.flv) into the Media field and click the Load button.
Next, you’ll be using the gathering_tool.swf to collect cue points. Familiarize yourself with this tool (see Figure 3.10).
Figure 3.9 The gathering_tool.swf can load the entire transcript from a text file.
Step 3: Setting Cue Points While the Video Plays
Now for the fun part. Click the Play button to watch the video as many times as needed to get an idea of when the captions are supposed to appear. You can scrub the video (drag the upward-pointing triangle), but when you let go, the video will jump to the closest keyframe. That is, when you encode a video, it automatically embeds keyframes where significant changes occur onscreen. The in-between frames contain only the parts that have changed. Therefore, you can only seek to keyframes (not to the in-between frames).
When you’re ready, make sure the first row of the transcription list is still selected. Rewind the video and then click the Play button to start the video playing. Get ready to click the Add button! When the narrator says, "Next year," click the Add button to create a cue point and automatically advance to the next line in the transcription list (which is, "the children will study materials"). Then, at the right moment, click the Add button again to insert a cue point for the second line in the transcript. Because the captions appear quickly, you might need a few tries to get it right. If you accidentally add a cue point, you can click its triangle and then click the Remove button. Just remember that if you’re coming back through to add more cue points, you need to first select the row in the transcription list for the text you want to insert next.
Figure 3.10 The gathering_tool.swf has a bunch of handy features.
After you insert the cue points, rewind and then click the Play button to watch the captions appear in the cue point area. See whether the synchronization is close. For your reference, my five cue points were inserted at 3.239 seconds, 4.257 seconds, 5.825 seconds, 8.071 seconds, and 11.311 seconds. However, it’s not as though you need to have those exact numbers because no one will notice if the caption appears a fraction of a second too early or late.
Don’t close gathering_tool.swf because we still have to export the cue points! (Note that we haven’t actually injected the caption cue points into the .flv file the way we did with the Navigation cue points in the project "Navigation Cue Points in a .flv File.") In the next step, you will take the cue point information and export it to a text file.
Step 4: Exporting the XML File
In gathering_tool.swf, click the Export XML button. Press Ctrl+C to copy the XML string the tool just generated for you. Create a new text file using Notepad or a similar program, and paste the contents of the XML string you just copied. Save the file as video_captions.xml in your working directory (we’ll use it in the upcoming projects). You might want to view the XML file in a tool such as Internet Explorer (shown in Figure 3.11).
Figure 3.11 The XML file is much easier to read when viewed in Internet Explorer.
Now you have an XML file containing both the captions’ values (the text) and the exact moment during the video when those captions should appear. You can use gathering_tool.swf for any video or audio file. Just import a different .flv video file (or .mp3 file) and a corresponding transcript of the captions you want to add. The advantage of this tool is that you can identify the cue points in a natural manner—while the video plays.