Author: Rick Harris Location: Adelaide, Australia Email: rickfharris@yahoo.com.au |
|||||||||||||||||||||||||||||||||||
This howto is written in the attempt to help those reading to:
1) Accomplish transferring a video media file (.avi, .mpg, .wmv, .mov, etc.) to DVD media in a format that will allow it to be played on a standalone DVD player. 2) Create professional style menus with audio to allow selection of Titles, Chapters & other menus. Tools needed:
To make things easier to read, I will be using some real filenames, always keeping them with any created files & saved config files in the same directory. For the purpose of the exercise I have chosen 2 video files I have downloaded for free from www.matrix-xp.com & renamed them to 'matrix.avi' & 'outtakes.avi'. I will also be using the THX theme at the start of the DVD & have named this 'thx.mpg' Note any copyright issues for your location if you intend to use these for anything other than private use. Encoding the movies Know or find out what TV format you will be using. For most of Europe & Australia, use PAL. For America, use NTSC. Here is a full listing of TV formats used in different countries around the world -> http://mightylegends.zapto.org/dvd/tv_standards.html For PAL: For NTSC: The above will produce 6 files, 'matrix.m2v', 'matrix.ac3', 'outtakes.m2v', 'outtakes.ac3', 'thx.m2v' &'thx.ac3' which have been split from the original into video & audio files. The video(.m2v) has now been re-encoded into a DVD compliant mpeg2 format & the audio(.ac3) has been encoded into an AC3 DVD audio stream. Aspect Ratio The above transcode lines will convert & encode to an aspect ratio of 4:3. If an aspect ratio of 16:9 is desired then replace '--export_asr 2' with '--export_asr 3' in your transcode line. Dvdauthor will only work correctly on files with aspect ratios of either 4:3 or 16:9 Convert 2-channel stereo audio track to 5.1 surround sound (optional) Using the above transcode lines will result in a 2-channel stereo audio track. Depending on the brand of 5.1 surround sound entertainment system, this usually results in the audio only being present on the centre & sub channels. Find out if the original .avi/.mpg file already contains a 5.1 AC3 audio track: A positive output would look something like: If it does, then extract it using 'tcextract' (part of the transcode package) & use it in your mplex line below instead. In this way, front to rear panning will not be lost on true 5.1 audio tracks, & no added conversion is necessary: If it doesn't, then using the existing 2-channel audio track, it is possible to create a 5.1 surround sound track so that the audio will be present on all 6 channels (front to rear panning is lost). See here -> http://mightylegends.zapto.org/dvd/dvdauthor_howto_surround.html Combine the new audio & video files into one DVD mpg. Test the files in mplayer or xine. eg. 'mplayer -vo xv matrix_dvd.mpg' For non-standard file types such as .wmv,.mov,.asf and .bin (S)VCD etc. it's necessary to first encode the movie to .avi with mencoder, like this: Then proceed as normal with the above transcode line. *If mencoder errors out with the message: '-channels 2' '-srate 22050' '-srate 32000' '-srate 48000' Notes Tweakage (optional) The video quality does suffer, but not in a visually noticeable way. Quality will always be subjective, but for my eyes I can only really see a difference when viewing on a PC while TV playback quality is still superb (your mileage may vary, depends greatly on the quality of the original file). The following transcode lines do both, reduce the resolution & video bitrate (by not using '--export_prof dvd-*', transcode's video bitrate defaults to 1800 kbits/s). For PAL: For NTSC: One major drawback of reducing the resolution is that transcode's '--export_prof' option cannot be used, so if an aspect ratio conversion is necessary, we lose the benefits of auto pre_clip/zoom which '--export_prof' provides. You will know an aspect ratio conversion is necessary if the encoded output file's video is squashed/stretched using the above transcode lines. An easy way around this is to do a dummy run using '--export_prof' on the input file & let transcode do the calculations, like so: An example output would look something like: It is the '--pre_clip' values in brackets that we need. Using those values we can now convert the aspect ratio like this: For PAL: For NTSC: For PAL: Open up The Gimp and make a new image of size 720×576, with a resolution of 75dpi in the x-axis and 80dpi in the y-axis. For NTSC: Make a new image of size 720x480, with a resolution of 81dpi in the x-axis & 72dpi in the y-axis. Right click on the image, select Image -> Alpha -> Add channel. Right click on the image, select image -> Layers -> Layers, Channels & Paths Create a layer called 'button_highlight'. Create a layer called 'button_select'. Select the background layer & draw the menu background. I chose to use the matrix 'green data dribble' as the background, which I downloaded from a free wallpaper website. Scaled the image to the correct 720x576, right click image -> Image -> Scale Image & set. Then copy/pasted it into the background layer of my new image. Here is the image -> http://mightylegends.zapto.org/dvd/images/matrix.jpg I wanted to have selectable snapshots of each movie in the menu. Snapshots were taken using xine, images were scaled using gimp, then pasted into the background layer. Here is the image -> http://mightylegends.zapto.org/dvd/images/matrix_menu_background.jpg Select the button_highlight layer & draw the button outlines. To see howto draw perfect rectangles, squares & circles in the gimp, see here -> http://www.cubicdesign.com/gimp/1_3/ Here is the image -> http://mightylegends.zapto.org/dvd/images/matrix_menu_highlight.png Hide the button_highlight layer & save the background layer. Do this by selecting the button_highlight layer & using the Opacity slider in the Layers, Channels & Paths dialog box to make it disappear. Click on the background layer, right click on the image, select File -> Save as Save background layer as 'matrix_menu_background.jpg'. (NOTE - Background MUST be a .jpg) Save the button_highlight layer in the same way. Use the opacity slider to bring the button_highlight layer back up, & hide the background layer. Click on the button_highlight layer, right click on the image, select File -> Save as Save button_highlight layer as 'matrix_menu_highlight.png'. (NOTE - Button layer MUST be a .png) Select the button_select layer & draw the button outlines exactly the same as button_highlight, but in a different color. An easy way to do this is to open matrix_menu_highlight.png, right click image, select Image -> Colors -> Color map rotation, set the colour to something different, but that will still be visible against the menu background colour. Save new colour image as 'matrix_menu_select.png'. (NOTE - MUST also be a .png) Here is the image -> http://mightylegends.zapto.org/dvd/images/matrix_menu_select.png Note: Once your comfortable with the above, & everything is working, have a shot at creating an animated DVD menu. See here -> http://mightylegends.zapto.org/dvd/dvdauthor_howto_animenu.html Putting it all together Convert the menu background into a DVD .mpg. For PAL: For NTSC: Create some background audio for the menu: Use 'normalize' to make audio softer/louder if necessary: Convert to AC3 audio: If you do not want any audio present in your menu, it is still necessary to create a silent audio file for mplex so the DVD menus will work correctly. Like this: For PAL: For NTSC: Merge background menu video/audio: Use spumux to merge button_highlight & button_select images into the menu video. Spumux is part of the dvdauthor package. It is configured via an .xml file. Here is the xml config file we will use, save it as 'spumux.xml':
Create final menu .mpg: A successful output should look something like this: Authoring the DVD Dvdauthor is configured via a .xml file. Here is the .xml config file we will use, save it as 'dvdauthor.xml':
Create a directory named 'DVD'. Create the DVD file structure with: Test the new menus in xine before burning: Xine should play from the folder as though it's playing from a DVD. Understanding the hierarchical structure of a DVD VMGM VMGM (or Root Menu) is the highest level of structure within a video DVD. TitleSet Every DVD has at least 1 titleset. All the files associated with a given titleset start with VTS_nn where nn is the titleset number (starting from 1). Title Each titleset contains 1 or more titles. Each title is effectively a standalone movie. If you start xine and just tell it to play a dvd, and that dvd doesn't have a top-level menu, then it will just play the first title of the first titleset and then stop. Chapter Titles are subdivided into chapters. Chapters provide entry points to the movie, but when the player reaches the end of a chapter it will continue to the next chapter. Menus can be associated with either the whole disk (VMGM=Video Manager Menu) or with a titleset (VTSM=Video Titleset Menu), there can be more than one menu of either type. VMGM menus are typically used when selection of more than one VTSM in a different Titleset is required, as one VTSM cannot jump to another VTSM in a different Titleset. Limitations on the targets of navigation menus: A VMGM menu can only jump to:
Note: My DVD player (and others?) defaults to the first VTSM when pressing the 'Disc' button on the remote. If this is the case, & you want to setup menu access to different VTSMs at the VMGM level, then you may need to setup the first VTSM like so:
Create the DVD image & burn it Use growisofs, part of the dvd+rw-tools package. Final Notes Hopefully the DVD worked ! More sophisticated menus can be generated by having menus within menus within menus - this is a kickstart guide only, using 2 titles & chapters every 30 seconds. It may seem complex & time consuming first time through, but once it's been done a couple of times it becomes very quick & easy. Some nice progress is also currently being made on a complete GUI based DVD authoring tool for Linux. Two that stand out are:
Scott T. Smith - creator of dvdauthor Thomas Oestrich & Tilmann Bitterberg - creators of transcode The ffmpeg team The mjpeg team Wolfgang Wershofen - for precise & detailed help Ian Pointer - for his article at linuxjournal.com, Issue# 116 James A. Pattie - for his 'DVDs under Linux' presentation James Tappin - for his dvdauthor tutorial Links
HITS=53062 |