iDVD is a wonderful, simple app that's great for knocking together a quick DVD with some nice menu themes. But it has limitations as compared to its big brother DVD Studio Pro, among which are the kinds of footage it allows you to use. While it happily imports AVI files, it won't accept MPEG2 video. I could burn the MPEG2 straight to DVD, then use ffmpegX to make a Video_TS folder easily, or use something like sizzle, but then I would lose out on all the flashy themes and menus that I get with iDVD.
I've always found this to be a frustration, especially when I wanted to burn recordings from my EyeTV box. The only way to do it was to re-encode the MPEG2 to some intermediate format such as AVI/MOV, import it into iDVD, and then watch it convert it straight back to MPEG2 to burn to DVD. Not only does this take a long time to re-encode the file twice but with every re-encode you're losing quality as compared to the original. So I set out to find a way to get around this.
Programs needed:
ffmpegX (available )
iDVD (I tested this on iDVD 5)
Note: This process looks long, and it does make it longer to create a DVD, but once you understand it doesn't take too long, and the idea behind its quite simple. If you're using MPEG2 files and you compare it to the time needed to re-encode the files for iDVD and then encode back to DVD, it's a big time saver. The plus side is that you're maintaining the original quality of your MPEG2 files.
1. Create dummy AVIs using ffmpegX. You can either use one AVI repeatedly or create one for each clip/episode/movie in iDVD. Either use any AVI clip or use ffmpegX to convert a small bit of your MPEG2 file to AVI. These can be clips of anything: make them short, rough edits and low quality to save time making them and keep them for use again in the future.
2. Author your DVD in iDVD. If you use any videos clips as part of the menu/theme, these should be the ones you want to use for the final DVD. iDVD will encode these, but since they are short and only for the menus, the quality is not a problem.
3. When you add the main feature bits to the DVD, drag in your dummy AVIs. Label them and place them as if they were the real footage you want to use. You can use the same dummy AVI for each feature and just label it differently each time you insert it, or you can use separate clips. Separates clips will make life a bit easier later, but will also take iDVD longer to encode.
4. Tell iDVD to make your DVD, but make sure you ask it to create a disk image. It should be quite small: something like 100MB, depending on what type of menu you've created and how big your dummy files were.
5. In the meantime, find the MPEG2 files that you want on the DVD. Load up ffmpegX, go to the Tools tab and then to demux. Browse to the MPEG file and click demux and let it do its business.
6. Demuking will produce a .m2v (video) file and a .mp2 (audio) file. Go back to ffmpegX and click the mux tab under Tools. Browse to the video file and the audio file (add the latter to audio 1). Make sure "Mux as" is set to DVD and "Author as" is set to DVD (Video_TS) and click the mux button.
7. Repeat the last two steps for as many clips or sections there are in your final DVD. You should now have Video_TS folders for each of your sections.
8. Mount the image produced by iDVD and copy the Video_TS folder to your hard drive. Select all the contents, press Command-I to display the Get Info window, and set all the items to read and write and unlock them.
In the DVD image you should have the following files:
VIDEO_TS.BUP
VIDEO_TS.IFO
VIDEO_TS.VOB
VTS_01_0.BUP
VTS_01_0.IFO
VTS_01_1.VOB
VTS_02_0.IFO
VTS_02_0.BUP
..etc
The VIDEO_TS files correspond to your intro/menu section (don't touch these) while the VTS files refer to each section in your DVD; at the moment, these refer to your dummy AVIs
9. Merge the contents of your ffmpegX authored Video_TS folders and iDVD's Video_TS folder. If you have created different dummy AVIs then you can immediately see how to number your ffmpegX-created VTS files. Just play the VOB file and see which one it is. Find the clip you want to replace it with and replace all its VTS file names with the correct numbers and copy them into the folder overwriting the ones for the dummy AVIs. (Ignore the VIDEO_TS.BUP etc files created by ffmpegX; you don't need them). If you have only used one dummy AVI file, it may be a bit hit and miss. They aren't necessarily in the same order as you added them in iDVD and you'll need to load the Video_TS folder in DVD player to make sure you've got the new files in the right order.
10. You now have a Video_TS folder with the iDVD VIDEO_TS files for the menu and the ffmpegX-authored VTS files for each of your sections. Go back to ffmpegX and choose img under Tools and Browse to this Video_TS folder. This will create a disk image that you can burn to a DVD with Disk Utility.
11. Bingo! You have your DVD, with lovely iDVD menus and themes along with good quality MPEG2 video that hasn't been re-encoded twice.
Important Notes:
** You can't just use the "author" section under ffmpegX to take the MPEG2 file straight to Video_TS. You may have better luck, but for some reason my MPEG2 files from EyeTV weren't accepted. You have to demux them and then remux them as Video_TS. However, ffmpegX can queue up jobs so you can set it up for all your files and go get a coffee; it doesn't take long to do the demux/mux.
** You can't just create the final disk image file in Disk Utility. This file has to be in UDF format to be able to play as a DVD, and Disk Utility can't do this. You can only do this in ffmpegX, or in something like DVDImager. However I couldn't get DVDImager to work and image my Video_TS folder so ffmpegX it was.
** I haven't tried working with 16:9 format videos. iDVD 5 has trouble displaying these properly. See this link for more information on what to do in that situation. The perl script on that page should work, even with this method.
** Remember your final image has to be less than 4.3GB to fit on the DVD. Depending on how the MPEG2 file was originally encoded and its resolution and bit rate, the amount of footage you can fit on the DVD will vary. For instance, I have two MPEG2 files here, one at 4Mbit and on another at 2.5Mbit. While they are the same length, they are not the same size. I believe if you want to be able to play the final DVD on an external DVD player, you'll need to make sure it is of a standard resolution and bit rate. For instance, you can't have a bit rate greater than ~10Mbit for a DVD. More info here.
I hope this works for you. Do post your feedback and say whether you've got this to work, or if you have found different ways to do so.
[kirkmc adds: I haven't tested this...]
Mac OS X Hints
http://hints.macworld.com/article.php?story=20060416162333377