16 February 2009
As you work through the tutorial, you should try to avoid clicking things that are not specifically mentioned in the step-by-step instructions. Many clicks can change an application's context, possibly causing the next step in the tutorial not to work as expected. The tutorial is designed to minimize such opportunities for unexpected results, but it's a good idea to stay on the path.
Beginning
In this tutorial, you'll learn how XMP metadata is created, how it flows through Adobe Creative Suite 4 Production Premium, and how it can enhance your workflow. To show how you can use XMP metadata in general, this tutorial focuses on one specific method for using Speech Search metadata to create a user experience in which a viewer can search for, and navigate to, specific spoken words in a video.
Beyond the simple workflow described in this tutorial, XMP metadata features in Creative Suite 4 Production Premium applications make many common editing, asset tracking, animating, and compositing tasks easier. After you've completed the simple steps in this tutorial and seen how much information is readily available to you at each stage of your work, you should realize how easy it is to use these features in each application to streamline your workflow and expand the possibilities of your creative work.
In this tutorial, you'll complete the following tasks:
Throughout this tutorial, you'll see references to documentation on the Adobe website. These documents provide additional information about each feature used in this tutorial.
Note: The term context-click means right-click (Windows) or Control-click (Mac OS).
Metadata, by definition, is simply data about data. An example from the physical world is a library's card catalog entry for a book. Such an entry contains data about the book, including the title, author, and publisher. In the electronic world, digital cameras add metadata to image files. This metadata can include the camera model, film speed, exposure settings, date and time the image was taken, and so forth.
The Extensible Metadata Platform (XMP) is the metadata standard used by Adobe applications. Metadata that is stored in other formats—such as the Exif standard used for digital photographs—is synchronized and described with XMP so that it can be more easily viewed and managed together with other metadata.
In the context of Creative Suite Production Premium, metadata is descriptive information about a file. The files in this case are the assets used in your projects and even the project files themselves. In most cases, XMP metadata is embedded as text within the file and remains with the file, even if it's converted to another format. In some cases in which the file format does not support the embedding of XMP metadata, it can be stored in a sidecar file with the same name but with the filename extension .xmp. In either case, Creative Suite Production Premium applications can read the data and present it for viewing or editing.
For additional information about XMP metadata, see About XMP metadata and Project Intelligence and the XMP metadata website.
Some basic metadata is generated automatically when you create or capture a file, including information about the camera and its settings. You can add other metadata such as your name, copyright information, and much more. Creative Suite Production Premium provides an integrated set of tools for the creation, viewing, and editing of metadata. Metadata is broken into categories in systems known as schemas. You can add new data fields to a schema, or even create your own schema (see Create schemas and properties).
Metadata is also divided into project, file, and clip metadata. Project metadata in After Effects is associated with an entire project; file metadata is associated with an individual asset, such as a video or audio source file. Both project and file metadata are embedded in the asset files, so this metadata is available to other applications, either directly through the graphical user interface or through scripting. Clip metadata in Adobe Premiere Pro and Adobe Soundbooth is stored in the project file, not in the asset file (see About file, clip, and project metadata).
Metadata can be static or temporal. Static metadata applies to the entire asset. This includes data like author, copyright, and creation date. Temporal metadata is metadata that is associated with a particular time within an audio or video file. The metadata generated from Speech Search is an example of temporal metadata.
The Speech Search feature in Adobe Premiere Pro and Adobe Soundbooth CS4 provides the ability to convert speech in a video or audio file to text metadata. Each word is stored as a temporal metadata element at the corresponding time in the timeline. When a file with Speech Search metadata is imported into After Effects and used as the source for a layer, each word appears in a layer marker at the corresponding time. The duration of the layer marker represents the duration of the spoken word (see Convert speech to text metadata).
After Effects scripts and expressions can read and use the metadata stored in markers. You can use an expression in After Effects to display the transcript stored in layer markers. You can use a script to convert the layer markers to Flash cue points and render the file to F4V or FLV format with the temporal metadata embedded in the file. Then, in Flash, you can use ActionScript to search for specific words of dialog, allowing the user to begin playback at a specific word (see XMP metadata in After Effects).
In this section, you'll learn how to use Adobe OnLocation to generate and edit metadata. You'll create an Adobe OnLocation project, organize your shot list with placeholders, populate the entries with metadata, and capture the video.
Note: You may find it beneficial to just read through this section; you don't need to follow along by performing the steps. Typically, you use Adobe OnLocation to capture the video assets for your project. However, to maximize the usefulness of this tutorial, it's important that your results with Speech Search match those described in the tutorial. Therefore, after this section, you won't actually be using any video you capture in Adobe OnLocation; instead, you'll switch to the video file supplied for the tutorial.
For video assets, much of the static metadata that flows through a project will originate with Adobe OnLocation. Some is captured automatically when you record a shot, and you can even add some before you begin shooting.
For more information about using shot lists in Adobe OnLocation, see Organizing and logging shots.
Begin by creating an Adobe OnLocation project, in which you'll set up your shot list:
In the Shot List panel, click the menu icon in the upper-right corner and select Shot-Recording Mode.
Note: OnLocation provides two recording modes. Shot-Recording mode is for more spontaneous shooting. Take-Recording mode is more useful for a pre-planned shoot. Since you'll only be recording one segment of video in this tutorial, Shot-Recording mode will be sufficient to demonstrate the use of metadata.
Note: Most of this user-enterable data will end up as static metadata. One notable exception is the Sequence property, which is used within OnLocation to order the shots in the Shot List. Notice also that many properties are not enabled for editing. These will be populated automatically when you actually record the shot.
Notice that the duplicate placeholder has the metadata you entered, except that the clip name has been incremented and the Comments property has been left blank. This allows you to quickly create placeholders for related shots.
Adobe OnLocation communicates with your camera using the IEEE 1394 standard (of which FireWire is a common implementation) and will automatically detect your camera's video standard and format:
In the upper-right corner of the Field Monitor panel, click the panel menu icon, choose Recording File Format, and select QuickTime (All Frames).
Adobe OnLocation provides a number of excellent tools for analyzing lighting, exposure, and color, which you can explore at your leisure. For this tutorial, you'll jump right to recording some video.
Note: The Speech Search portion of this tutorial calls for the use of the video clip provided. However, you may also want to practice the same techniques with your own video. With that in mind, as you record, speak as clearly as possible to optimize the quality of the transcription.
In the Shot List panel, notice that much more metadata has been filled in for the shot (see Figure 5).
Another way to view a file's metadata is with the Metadata panel. The Shot List panel shows a subset of the metadata that you can also view in the Metadata panel (see Edit, copy, or search shot properties):
Note: For this and subsequent sections of this tutorial, you'll be using Legato_Ames_BTS_02.mov as the video source file. Download and unzip the package containing the tutorial files, if you haven't already done so:
Now that you've learned how static metadata is generated and embedded in a file, you'll learn how to create temporal metadata in the form of transcribed speech using Adobe Premiere Pro. You'll then edit the transcript, use it to navigate to specific words in the clip, and edit the clip itself based on words spoken in the clip.
For additional information about XMP metadata in Adobe Premiere Pro, see the following references in the documentation:
Your first task in Adobe Premiere Pro is to create a new project and save it:
Now you need to import the file that you'll be transcribing. Remember that if you want your results to match this tutorial, you'll need to use the file provided:
The Metadata panel allows you examine a file's metadata and also contains the controls that you'll use to transcribe the speech:
Now you'll use the Speech Transcript section of the Metadata panel to convert the file's spoken words to text:
Important: The next step will cause temporal metadata to be embedded into your source video clip.
Make sure that the Legato_Ames_BTS_02.mov clip is still selected in the Project panel:
Notice that not all the transcribed words are accurate, but that the transcription actually does a pretty good job. The accuracy, of course, depends on the quality of the audio and clearness of the spoken words, but enough keywords are generated to make the transcription useful for keyword search. Also, as you'll see, you can easily correct and edit the transcript to make it more accurate if desired.
From this point forward, you'll focus on the specific spoken phrase, "You can actually produce a film noir movie and then use After Effects and all the rest of the tools in the package to actually assemble a real professional looking movie."
Now you'll use the Speech Transcript section of the Metadata window to navigate to specific words in the clip:
Now you'll use the transcript to set the In and Out Points of the clip to contain just the phrase of interest:
Since you want the trimmed clip to end with the word movie, you now need to select the word after movie and then back up a few frames to ensure that only movie is included.
Next, you'll edit the words in the transcript to more accurately match the actual spoken phrase. There are several problem areas which you'll need to correct. Instead of the word noir, the transcription has in a war. They actually sound very similar, but you'll need to correct it because noir is one of the key words of the phrase (see Edit metadata):
Notice that even though you've inserted a new word here, it has a duration of 00:00:00:00000, which means there wasn't really room to fit in a new word between the adjacent words. When you play the clip in Adobe Premiere Pro, the word won't be highlighted. Also, when you import the clip into After Effects later, you'll notice that there is no layer marker generated for this word. This is not a serious problem, because it's unlikely that anyone would search for the word a.
Next, you'll render and export a new version of the clip that contains only the phrase of interest:
Like other Creative Suite Production Premium applications, Adobe Bridge provides a Metadata panel that you can use to view and edit a file's metadata. In this section of the tutorial, you'll learn how to use Adobe Bridge to verify that you have appropriate usage rights for a file (see View and edit metadata in Adobe Bridge).
Follow these steps to view the metadata of the tutorial assets:
In this section, you'll import the video file you created in Adobe Premiere Pro and a PSD logo file. You'll use the video file to create a composition, and you'll add the logo to it. You'll examine the temporal speech metadata contained in the video layer's marker comments. You'll also examine the static metadata of both files and the project itself. Then you'll use an expression to display the transcript in a text layer. Later, you'll use an After Effects script to convert the layer markers to navigation cue points and export the composition as an FLV movie.
Start by importing the video file you created in Adobe Premiere Pro and a PSD logo file:
Next, create a composition:
Notice that each word in the transcription appears as a layer marker in the timeline of the new composition. In the Timeline panel, the text appears as the comment, and the duration appears as the small horizontal bar below each word (see Figure 21).
If you examine the markers carefully, you may notice a potential problem that was introduced when you edited the speech text in Adobe Premiere Pro. It turns out that two markers are located at the same time on the timeline. This will create a problem for the simple ActionScript code that you'll use when you get to the Flash section of the tutorial, so you need to correct it here.
Now add a logo to the composition you just created:
By now you should be familiar with the Metadata panel that is common throughout Creative Suite Production Premium. Here you'll examine a slightly different implementation in After Effects:
In this part of the tutorial, you'll learn how to access speech metadata with After Effects expressions. This doesn't actually get you any closer to the final objective of a word-searchable movie in Flash Player, but as long as you're here (in After Effects), you might as well see how to do it. You'll create a text layer and apply an expression to its Source Text property. The expression will display the speech metadata five words at a time as a simple form of captioning:
//****************************************************
// This expression creates a text string consisting
// of groups of five marker comment fields
// (separated by spaces). Each text string is displayed
// when the current time has reached the first marker
// of that group.
L = thisComp.layer("Legato_Ames_BTS_02_trans.mov");
max = 5; // number of words to display
n = 0;
if (L.marker.numKeys > 0){
n = L.marker.nearestKey(time).index;
if (L.marker.key(n).time > time){
n--;
}
}
s = " ";
if (n > 0){
base = Math.floor((n-1)/max)*max + 1;
for (i = base; i < base + max; i++){
if (i <= L.marker.numKeys){
s += L.marker.key(i).comment + " ";
}
}
}
s
text.sourceText
Now you'll learn how to use scripting in After Effects to convert the video layer's markers to navigation cue points for use in Flash CS4 Professional and Flash Player. Then you'll export an FLV movie which you'll use later in Flash Professional to create a word-searchable movie.
Here you'll examine the details of one of the video layer's markers. Then you'll run an After Effects script to convert the layer markers to Flash navigation cue points. Finally, you'll examine the marker again to observe the change:
#target aftereffects-9.0
//********************************************
// This script searches the selected layer for
// layer markers, and converts each one it finds
// to a navigation cue point by setting the
// marker's eventCuePoint attribute to false
// and copying its Comment value to the cue point
// Name field.
{
var myComp = app.project.activeItem;
if (myComp && myComp instanceof CompItem){
var selLayers = myComp.selectedLayers;
for (var i = 0; i < selLayers.length; i++){
var myMarker = selLayers[i].property("Marker");
for (var j = 1; j <= myMarker.numKeys; j++){
var curMarker = myMarker.keyValue(j);
curMarker.cuePointName = curMarker.comment;
curMarker.eventCuePoint = false;
myMarker.setValueAtKey(j,curMarker);
}
}
}
}
You're almost done with your work in After Effects. All that's left to do is render an FLV movie with the embedded navigation cue points to allow ActionScript code to find specific words in the video:
You've arrived at the final task in your metadata journey. You now have an FLV file with embedded speech navigation metadata that will allow you to create a word-searchable movie. Here you'll create a Flash project and add an FLVPlayback component to the Stage. You'll link the FLVPlayback component to the FLV file that you created in After Effects. Then you'll add navigation controls (a button and a text entry field) that will allow you to search for specific words in the movie. Finally, you'll add the ActionScript code necessary to connect the controls to the movie, and test your movie.
For more information about adding or editing metadata in Flash, see Add XMP metadata to a document.
Start by setting up the Flash project:
Now add the FLVPlayback component to the Stage and link the component to the FLV file you created in After Effects:
Note: The Components panel shows only ActionScript 3.0–compatible components because that's the type of file you chose when you created the project. A different list of components appears when working with ActionScript 2.0 files.
<Instance Name> to my_video in the Property inspector.source parameter in the Name column. Click in the Value field for the source parameter.cuePoints parameter contains the text and time data for each of the transcribed words. Click in the Value field and then click the magnifying glass icon to see all the cuePoints data (see Figure 31).
autoPlay parameter from true to false. This will keep the video from starting to play after it loads.For more information about the FLVPlayback component, see Using the FLVPlayback component. For information about Flash components in general, see Using Adobe ActionScript 3.0 components.
Now you'll add a button that lets you advance to the next cue point, and a text input control that lets you specify a spoken word to search for:
<Instance Name> to my_button.label parameter from Label to Next Cue Point.<Instance Name> to my_text.
For more information about the Button and TextInput components, see Use the Button component and Use the TextInput component in the documentation.
Now it's time to add the code that connects all the components together. It's only a small bit of code, but it does a lot behind the scenes:
//*******************************
// import necessary video classes
//
import fl.video.*;
//******************************************
// function that runs when button is clicked
//
function buttonSeek(event:MouseEvent):void
{
my_video.seekToNextNavCuePoint();
}
//****************************************
// function that runs when text is entered
//
function textSeek(evt_obj:Event)
{
my_video.seekToNavCuePoint(my_text.text.toLowerCase());
}
//**********************************************
// add an event listener to the video player to
// call function buttonSeek when button is clicked
//
my_button.addEventListener(MouseEvent.CLICK, buttonSeek);
//**********************************************
// add an event listener to the video player to
// call function textSeek when text is entered
//
my_text.addEventListener("enter", textSeek);
For more information about the ActionScript elements used in the previous code, see Programming Adobe ActionScript 3.0 for Adobe Flash and the ActionScript 3.0 Language and Components Reference.
This is where you get to see the results of all your hard work. Test your movie to demonstrate that you can position it at a particular word and begin playback from there:
Congratulations! You've completed a journey where you've seen many ways in which you can make metadata work for you and how it might simplify your workflow. You've seen how it's seamlessly integrated throughout Creative Suite Production Premium and how you can use it to locate, categorize, and tag your project assets. In the case of Speech Search, you've seen how metadata allows you to do things that were not possible before. Although this tutorial has provided only a brief examination of what is possible with metadata, hopefully you've seen enough that it will encourage you to take advantage of these amazing tools.
As Adobe develops additional technologies and instructional materials to help you to take advantage of XMP metadata, these resources will be posted to the XMP metadata website. Be sure to check back periodically for more information about XMP metadata.
For information about using XMP metadata in each application in Adobe Creative Suite 4 Production Premium, see the respective Help documents:
Adobe also provides several video instructional tutorials on Adobe TV and the Adobe Video Workshop about XMP metadata, markers, and cue points: