We've released an SDK that lets you extend the Vista versions of movie maker and DVD maker, though I should probably note that it's not a terribly simple thing to do.
Here's the blurb from the download page:
This SDK is helps you create and add your own custom special effects and transitions to Windows Movie Maker in Windows Vista, and your own custom transitions, buttons, and menu styles to Windows DVD Maker in Windows Vista.
A few things got mixed up in documenting some DVD Maker stuff, so I thought I'd like to the information out there and provide the information that hasn't quite made it out yet.
First of all, if you are looking at adding custom transitions, buttons, and menu styles to DVD Maker, there is an SDK for that. I didn't work on that section of DVD Maker, so I don't know exactly how it works, but I would not be surprised to find out that it takes a fair bit of effort to author a DVD maker style.
If you are wanting pass information into DVD maker on startup and/or use it for unattended burning, here's what you need to know...
Command Line Options:
dvdmaker <filename>
This is how you pass a project file to DVD Maker. You can use the .msdvd extension if you want happy things to happen around the file (ie clicking on it in explorer launches DVD Maker), but DVD Maker doesn't care what the extension is.
dvdmaker -drive:<driveLetter>
You can use this to start up DVD Maker and have it look at a specific burner, but you should probably just set the drive in the project file instead. This is here so that AutoPlay can do the right thing.
dvdmaker -clickonce <filename>
If you have captured a tape on Vista, you probably ran what we call the capture wizard. In this wizard, you have the option of burning a dvd directly after capturing. Capture wizard does that launching DVD Maker with the clickonce flag (yes, it should probably really be named "clickeighttimesandthenputablankdvdinthedrive"). This is precisely equivalent to starting DVD Maker without this flag, pressing "Next" to get to the hub page, and then pressing "Burn".
Project File Format
It's fairly easy to understand the project file format by simply saving a project file and looking at it, but here's a bit more information:
Windows DVD Maker uses a simple XML-based project file format.
<BurnWizard>
<Content>
<ContentFile Filename="c:\content\video1.avi”/>
<ContentFile Filename="c:\content\video2.wmv”/>
<ContentFile Filename="c:\content\sunset.jpg”/>
<ContentFile Filename="c:\content\winter.jpg”/>
<ContentFile Filename="c:\content\mysong.wma”/>
</Content>
<Title>4/27/2006</Title>
<Drive>D:</Drive>
<Style>Bandwidth</Style>
<Font Name="" Color="0xFF00FF00" Bold="1" Italic="0"/>
<Button Play="Play" Scenes="Scenes" Notes="Notes"/>
<Notes></Notes>
<InsetVideo></InsetVideo>
<BackgroundVideo></BackgroundVideo>
<MenuAudio></MenuAudio>
<SceneButtonName></SceneButtonName>
<SlideShow Transition="Cross fade" PanZoom="0" MatchMusic="0" Length="75.000000"/>
</BurnWizard>
Field information:
Field
Description
Denotes the content block. Only <ContentFile> elements are allowed inside.
<ContentFile>
A file to add to DVD Maker. A file in the content block is treated exactly the same way it would be if it were added through the “Add Items” dialog. Video files end up in the main list, still images are put in a slideshow folder, and audio is added to the slideshow.
<Title>
The title of the disc
<Drive>
Drive letter of the DVD burner to use
<Style>
Name of the style to use. If blank, uses the default.
<Font>
Defines the name and color of the font, and whether it is bold or italic. For the color value, the first two characters must be “FF”, and the values for the red, green, and blue components are defined by two character hexadecimal values. For example, “0xFF00FF00” is bright green, and “0xFF0000FF” is blue.
<Button>
Sets the names of the buttons used on the main DVD menu
<Notes>
The text that shows up on the notes page. The maximum number of characters supported is 256.
<InsetVideo>
The setting of the “Foreground video” editbox on the Customize page
<BackgroundVideo
The setting of the “Background video” editbox on the Customize page
<MenuAudio>
The setting of the “Menu audio” editbox on the Customize page
<SceneButtonName>
The name of the scene button style set on the Customize page
<SlideShow>
Settings for the slide show. Transition sets the name of the transition to use, length is the amount of time each slide will be on the screen, and PanZoom and MatchMusic are used to set the “use pan and zoom effects for pictures” and “Change slide show length to match music length” settings.
Last week, Paul Thurrott wrote a post entitled, "The Dark Side of Windows Vista RC1", in which he discusses a few things that he doesn't like about Vista.
And the first item in his article talks about the DVD Maker UI. Paul's complaint is that the "back" button for wizards has migrated from the previous location at the bottom of the wizard to the upper-left corner of the window, and morphed into an "IE-style button".
This part of the DVD Maker UI comes from the new Aero Wizard framework (for those of you using wizards, you add PSH_AEROWIZARD to your wizard flags to use the new framework...). I agree with Paul about the location and style of the back button, and gave feedback to the Wizard UI folks about that issue.
The second point that Paul brings up is the behavior of ALT + Right Arrow. As Paul notes, doing this will start the burn process, which I agree may be a bit of a surprise, though unless you're really slow in hitting cancel, you won't make a coaster (ie junk disc) as there's a lot of work to do before we start writing the disc.
This behavior came from our goal of creating a clean user experience.
There are two required steps for creating a DVD with DVD Maker. First, you need to add some content, and then you need to select a style (you can skip selecting if you like "Full Screen"). At that point, you can pick burn, and you're done.
Then there are the optional actions, customization and previewing. One choice would have been to put the customization pages in line after the choose style pages (in traditional wizard fashion), but that adds two or three pages for every DVD, and implies to the user that they need to do something on each of those pages. It also would have left us trying to fit our interactive preview somewhere in the UI.
Instead, we chose to implement the customization and preview pages the way that dialog boxes work - you go to them, make your changes, and then either accept or roll back the changes you made.
I think that we made the right tradeoff in this case.
It's true, however, that DVD Maker is bigger and more complex than the other wizards I've seen, and the constraints of the wizard framework therefore had more impact. If we had to do it again, we might perhaps choose to make DVD Maker an application rather than a wizard.
During our initial implementation of DVD Maker, one of our mantras was "We are not an authoring tool". Our target is people who currently aren't making DVDs, not those that have already mastered the intricacies of creating a DVD with the very extensive authoring packages already available.
That meant we kept things very simple. This was usually a good thing, but in one case, we made things too simple.
There was no easy way for users to save their work. If I created a nice DVD of a family vacation, and burned six copies, when Aunt Edna (the one from Florida, not the one from Maine with the fondness for martinis...) asked for an extra copy, I'd have to try to remember all the settings and walk through them again.
Nor could base my DVD of the May 17th soccer game on the settings I used for the May 10th soccer game.
We got a fair amount of feedback on this, and therefore decided to add real project files to DVD Maker.
Things that have changed:
Those are the official changes.
There are also a few "officialy unsupported so don't come to me if your porch is attacked by carpenter ants" details.
DVD Maker has always supported a format through which other applications could pass content. This is used by both Movie Maker and the Picture Gallery, so when you select content and choose "burn to dvd" (or whatever it's called...), DVD Maker will show the content in all of its glory. The project file is merely an extension of that format. The project file format will be specified somewhere in the docs, but it's a very trivial XML format.
The format is also used by the tape-to-disc wizard launched when you plug in a camera. In addition to passing the project file, it passes the -clickonce flag to DVD Maker, which then burns the disc without bringing up the normal DVD Maker UI.
So, a clever user could take all of these *unsupported* features, and string them together to automate the burning of a DVD. As long as he wasn't overly concerned with the longevity of his porch...
To keep things simple, DVD Maker puts all still images in a single slideshow. This page is used to set the options for that slideshow.
The top part of this page is used to set the background music for the slide show. You can add, re-order, or remove items with the buttons on the right, and you can also drag/drop into the listview.
There are two modes for the slideshow.
If you set the picture length through the "picture length" combo box, the length of the slideshow is based on the number of pictures that you have. If you have more background music than required, we'll fade it out at the end of the slideshow. If you don't have enough music, we'll loop through the songs until we have enough.
If you check the "Change slide show length to match music length", we'll modify the length of each picture so that the slideshow duration is equal to the music duration. If we can - there's a lower limit to how short each slide can be, which I think is 1 second.
The transition combo is used to - you guessed it - set the transition used between pictures. I've tried to describe the transitions below, but it's a bit challenging on some, so bear with me:
Finally, the "Pan and zoom pictures" checkbox lets you control whether there is a slight pan and/or zoom of a slide between the transitions (this is sometimes known as the "Ken Burns" effect or the "Photo Story" effect). There isn't a ton of intelligence in how it does this, but the effect is mostly pleasing.
That's about it for the slideshow page.
In my next installment, I'll return to the Hub page and talk about the styles that we support.
Welcome to the Customize Disc Menu Style page.
This page is used to customize the style of the DVD menu. Like the menu text page, this page has two previews on the right side. The top one is the main DVD menu preview that you've seen before. The bottom one, however, is a preview of the scenes menu on the DVD.
The scenes menu page(s) allow the viewer to navigate to different sections of the content, and there are either one or two menu pages. How they are set up depends on the content, with the following basic rules:
We played around with a bunch of different options here, but it turned out that the simple approach worked best. On to the customizations:
The font ones are the same as those on the menu text page.
Foreground and background video allow you to override these values in the style that your using. The usages of foreground and background video vary from style to style, and some styles don't use the background video. If you don't specify anything here, the default is to use your content for both the foreground and background. And if you want to use a picture here instead of a video, you can do that as well.
The menu audio allows you to change the background audio during the menu introduction (the time between when the menu starts to play and it's done playing). If not, we'll use the audio from the foreground video
Menu motion determines whether the buttons on the scenes menu show moving video, or whether they are still images.
Finally, the scenes button combo allows you to choose a different style button for the scenes menu. This will default to the appropriate shape for the style you have chosen.
If you've customized the menu in a way that you'd like to use again, you can choose "Save as new style", enter a name, and you can then use your style.
And preview lets you see an interactive preview of the DVD.
The disc menu text page is one of the customization pages that you access using the toolbar buttons on the "Ready to burn disc" page (what we call the "hub page" internally).
The right side of this page has two previews. The top preview is the main DVD menu that will show up when you start playing the DVD. It shows the state of the menu after any intro animation has played. On it you will see the disc title, play button, scenes button, and notes button, and the text of each of these is set using the editboxes on the left side of the screen. The font, text color, and boldness and italicality of all the text is set using the font controls at the top of the screen.
The bottom of the page shows the notes pages preview. This is an optional page that you can use to add some notes about the DVD. If there is text in the Notes editbox, we'll create the notes page, and if there is no text, the page does not exist (and there is no "notes" pick on the main menu).
Changing any of the settings on the left side will start an update to the appropriate preview windows on the right side. This may take a few seconds, since we're using the same rendering process on these previews as we use to create the menus that we put on the DVD.
Red vs blue can be found here.
After you have selected the content that you want to burn onto your DVD, you go to the hub page. It looks like this:
Dominating this page is the DVD menu preview - a static preview of the menu that you will see when you first play the DVD. On the right is a list of menu styles that you can use. There are quite a few different styles that you can choose from, all of which show the content that will be on the DVD, and all of them with live video. I picked the most simple style, named "Full", which simply shows the main content with clickable buttons on top of it. The content here is from RedVsBlue, which I chose because it looks nice. I'll be talking more about other styles in the future.
The combo box above the list of styles allows you to choose amongst groups of styles. We expect that other companies (or users) will create their own "style packs", which will show up in this list.
If you like what you see on this page, you can choose Burn, and we'll go off and make the disc for you.
If you want to get a better idea of how the disc will look, you can choose "Preview", which will generate an interactive preview. From this preview, you can play all the content, go to the scenes menu and, most importantly, see what how the menu will look with live video in it.
"Menu Text" lets you change the text that's displayed and how it appears, Customize changes how the menu appears, and Photo settiings are used to modify the slideshow. More on all of those later.
I pulled a couple of screenshots off of the current build, so I could talk a bit about how DVD Maker works. The first page that you go to is the "Add pictures and video to the DVD" page, which looks like this:
On this page, you add the content that you want to be on the DVD and choose the order in which you want it to show up on the DVD. You can also set the title of the disc, and choose which dvd burner you want to use (if you have more than one).
This screenshow shows the state with two videos added. You can have as many videos as will fit on the DVD. You can also add pictures, which all get placed into a single slideshow. I'll talk about slideshows in a little more depth later.
Once you've chosen the content, you can then go onto the next page.
There is an obvious bug with toolbar rendering in the screenshot - the toolbar buttons should have the following text:
If you have a question, please add it as a comment, and I'll add it to this post.
Questions about Windows DVD Maker
1: I hope you support HT and Dual Core processors
A: The short answer is that we are multithreaded and support dual proc. I don't know of any reason we wouldn't support dual-core or HT, but I don't have those so I can't be sure. Having said that, we're I/O bound in some cases, and faster CPU doesn't help.
2: How will you ensure that people 'own' the content that they record ? How do you know that the photos and other material aren't copyrighted ?
A: Currently, we honor DRM flags on media that supports it, which I *think* is limited to Windows Media content (I depend on a library for DRM checking). Absent that, we don't do anything.
3: Will Windows DVD Maker provide an API for other 3rd party applications to use for creating a DVD? Or will it only be an end user GUI app?
A: Yes and No, depending on how much control you want. You can pass DVD Maker an XML file that tells it what content to use, and optionally have it just go off and burn a DVD based on that content. Or you can use that as a starting point and let the user do some customization on top. We don't provide a full API for people to do what they want.
4: Is DVD Maker written in managed code?
A: No. Yes, it is ironic that I spent so much time on C# and then spent a ton of time writing something in C++ code. Everybody on the team is a believer in managed code, and we hope we'll be able to use it for future projects.
5: I always get “Missing codec” message. What do I need to install to launch DVD Maker in Vista 5270?
A: Yeah. Weeeell, unfortunately, you need a codec to be able to create the media files on the DVD, and that codec isn't present in the current drops. I can't go into the details - some are confidential, and others I just don't know - but I can say that we should have that resolved when we get to beta. If you're internal to microsoft, there's a link you can follow to get a codec that will work. For the rest of you, I'm sorry you can't see it yet.
6: Will you support creating HD-DVD discs?
A: We won't support it in the initial release. The hardware wasn't there at the time we would have needed to have it, and I'm not sure it's there now. When the whole high-def DVD world settles down a bit, we'll take a look at where things end up, and go from there.
7: Will DVD Maker run down-level on Windows XP?
A: Vista is our only target right now.
8: Followup on question #4. Why didn't you use managed code?
A: I would have loved to use managed code for the UI part, which is what I own. I won't go into the details, but suffice it to say that it wasn't the team's decision.
[Update: I've thought about what I can say about this. I don't know all the details of the decision, but the reasons I know are related to decoupling and reducing dependencies.
I should also note that shipping managed code in an OS is different than shipping managed code elsewhere.]
9: Will DVD Maker support dvr-ms files? (from Media Center)
A: Yes
10: Please tell me that you've hired some (and I hate to say this) "Apple" quality designers to produce the styles for the DVD menus.
A: I think you're going to be pleasantly surprised with the styles. They're really nice.
11: Will DVD burning work on XP?
A: I don't know of any plans to provide down-level support.
12: Can you specify slide show transitions on a per slide basis, or is there one transition for the whole slide show? Can you adjust the display time for individual photos?
A: The transition setting is global to the whole slide show. Some transitions (such as wipe) support multiple variations, and DVD Maker will use all the variations, but there is no user control over this. Similarly, the picture time is the same for all pictures.
DVD Maker is intended to cover the most common scenarios. If you want to use a different transition between each picture and change individual picture duration, you can easily do that in Movie Maker, and burn the result to a DVD.
13: Is there any way you guys can add the ability to add short captions to the scenes? (Not a mandatory step, just provide the option to do it if you want)
A: Our original design provided a lot more control for scenes - you could combine them together, give the names, etc. But without the ability to control where the scenes points start, we decided that the ability to name them wasn't very useful, so we cut the feature. You do get motion video on the buttons, so that will give you some idea of where the scene goes.
14: When you burn the dvd, can you provide the option to save the encoded files just in case there is an error while buring the disc? Encoding takes the most time.
A: This is something else that we considered but it didn't fit into our schedule.
15: How does the project file support in DVD Maker work?
A: The project file saves anything that you do in DVD Maker, with the exception of the settings that you make in the options page, which are persisted in the registry. Opening a project file or launching dvdmaker from the command line with that project file is equivalent to launching DVD maker normally, adding the content, and making all the settings.
For the past 9 months, I've been working on a product for making DVDs. In Vista, this product (feature? applet? wizard? well, pick one...) will allow you to create a nice DVD containing your pictures and video - a DVD that you can watch at home, send to your parents, or enter in a film contest. Assuming, of course, that you have a computer with a DVD burner on it, and your DVD player supports the format you burn (I may get into that a bit in later posts).
Given where we are with current builds, I'm pretty confident that we will ship with Vista, though it's not clear yet what SKUs we will live in. And, since we haven't shipped yet, any specific details should be taken with a grain of salt (or appropriate low-sodium substitute).
In this first post, I'm going to talk a little bit about what our goals are, which I hope will give you some insight into why things work the way they do.
Some of you may be familiar with existing programs for creating DVDs. The full-featured ones are known as DVD authoring programs, and they give their users a lot of control over all the details of the DVD. That control is great if you want it, but it does add a lot of complexity to the process.
For DVD Maker (and, to be fair, other existing products out there also have the same goal), our goal is to allow users to "Create" DVDs rather than "Author" them. In other words, we expect that a user can select some content, start DVD Maker, and get a nice DVD without having to do a lot of work.
To make that a "nice" DVD, we'll provide a number of styles that you can select from as a starting point, and a limited amount of tweakability.
Or, to put it another way, DVD Maker is not an authoring program.
Oh, and I should also talk a bit about speed. Video consumes a lot of computing resources (disk, processor, I/O), so there are some operations that are just going to take a bit of time, and creating the final DVD can take a long time (ie hours), even if you have a fast system. There will be some optimizations to make things faster, but don't expect miracles.
So, that's about all for the first post.