DVD Authoring

Trick out home videos with a fun, featureful menu system that viewers can navigate from a regular DVD player.

Traditionally, DVD authoring has been an expensive affair. Full-featured professional applications can cost thousands of dollars, while cheaper products, such as Apple's iDVD, have arbitrary restrictions that significantly reduce their usefulness. A new open-source effort, dvdauthor, is bringing the possibility of low-cost, professional-grade DVD authoring to Linux. Although it doesn't yet support all the features of the DVD specification, development is proceeding at a fast pace, and new features are being added with each release. Together with a more established open-source toolkit, mjpegtools, this article explains how to construct a relatively complex DVD application, a photo album, with dvdauthor. We also illustrate the various features that dvdauthor currently supports and how to use open-source tools to construct a DVD-R that can play on almost every DVD player.

How a DVD Works (Quick Version)

A DVD is comprised of one or more video title sets (VTSes), which contain video information in the form of MPEG-2 video streams. Each disc can have up to 99 VTSes, and each title set can be subdivided further into as many as 99 chapters, allowing DVD players to jump to a certain point within the video stream. Within each VTS, a DVD can have up to eight different audio tracks and 32 subtitle tracks that the viewer can switch between at will. A menu system can be included within a title set, allowing the viewer to select between the different subtitle and audio tracks. An optional top-level menu, known as the video manager menu (VMGM), is used to navigate between the different title sets. One VTS may contain a feature film and another may contain a documentary on the film, and the VMGM allows viewers to select which one they want to watch.

The DVD format doesn't eliminate the differences between the two competing broadcasting formats, NTSC (primarily used in America) and PAL (the standard in Europe and Japan). I live in Britain, so the frame information and resolution details used in this article are for a PAL system, but I point out the differences you need to be aware of when they appear and offer appropriate settings for an NTSC disc.

The DVD specification includes advanced features, such as the concept of region coding, the possibility of viewing different angles of a video stream and simple computations using built-in registers provided by a DVD player. I don't know much about these features, and they aren't discussed in this article. The dvdauthor mailing list is a good source for further information.


Before we rush headlong into creating menus, subtitling and multiplexing, it's a good idea to sketch out the structure of the DVD with paper and pencil. Proprietary DVD tools offer GUI systems for creating this type of structure, but no such tools are available yet for DVD production on Linux. As you'll soon see, the command-line tools have a lot of different options, so having your ideas on paper is preferable to trying to keep everything in your head.

The DVD application I'm creating is a photo album, using pictures that I took while studying abroad at UNC-Chapel Hill this past year. For simplicity's sake, I have only six photos in each category. On paper, I decide that the main menu (the VMGM unit) should have five buttons, four of which are simple text buttons (one for each different photo category), plus a secret link unlocking extra pictures (secret extra features are a common occurrence in commercial DVDs) and a music track playing in the background. The four regular buttons link to one of four menus, one for each different section. The menu system for each section consists of two menus and an audio track, with selectable preview images of the slideshow, a button to move onto the next set of preview images and two buttons that allow the viewer to watch the complete slideshow or go back to the main menu. To keep things simple, the photo slideshow should have the same song as the section menu playing in the background. After the slideshow is finished, the viewer is sent back to the section menu. The secret link is a short slideshow with no menu, but it has two different music tracks that the viewer can switch between while the video sequence is playing.

To prevent things from getting mixed up, I created the directory structure below to organize the files. The image directory eventually will hold the completed DVD, while the raw photos go in the photos/setN directories and the video files go in the titleN or main directories:

	- title1
	- title2
	- title3
	- title4
	- title5
	- mainmenu
	- photos
		- set1
		- set2
		- set3
		- set4
		- set5
	- image



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

The tutorial was great, but I

JR's picture

The tutorial was great, but I am still confused about something. I wanted to know more about the process of authoring a DVD to work on as many players as possible. This was still about creating cool menus and stuff like that. Where do I read more about the authoring process? Thanks.

latest advancements

crackpipe's picture

Still one of the best tutorials out there, all these years later. I wonder if there is a similar tutorial written recently with the latest linux command line and gui front-ends for authoring and editing. I've found the devil is in the details with linux authoring. It takes several tools to get the background music and menus to be just right. Or wipes and graphics. These tools seem to be around in windows so I know there must be much better linux analogues?

Bake your own!

Marcus Brown's picture

You might like to check out an application I've written that does the work for you:

A other tutorial

Brunetton's picture

Here is a other tutorial, in French this time. May be usefull


Although dvdauthor doesn't ha

Anonymous's picture

Although dvdauthor doesn't have the easy-to-use interface of professional applications,

This is insulting. Although many new-media monkeys today use point and drool applications in a professional setting, a professional applications is quite likely to have a scriptable "small and sharp tool" interface that will allow it to be automated, pipelined or in some other way made to fit the working environment and methods.

The programmer(s) can't know how (another) user will use the tools and should make no assumptions! And it is particularly the professionals that need to be able to throw away repetitive wizards and other joe random user interfaces and make work after work happen the right way. Every time. And when a change is needed, you make the change and only the change and re-run the process etc.

Maybe Milk of Magnesia would

Anonymous's picture

Maybe Milk of Magnesia would help you.

DV tape w. DateTime > Subtitle in Linux ?

Anonymous's picture

Is there any programs for linux that grabs the datecode from a dvstream and creates subtitles accordingly ?

I've been using DV sub maker for windows to grab the datetime but would like to go linux.
- http://icqphone.ru/video2tv/


Re: DV tape w. DateTime > Subtitle in Linux ?

Anonymous's picture

You can try http://dv2sub.sf.net

Re: DVD Authoring

Anonymous's picture

I've posted a DVD Authoring on Linux primer at my website. It's still a work in progress but might be usefull to others as it is.

Anders Dahnielson

Re: DVD Authoring

ianpointer's picture

Just a couple of points:

I got mixed up between Japan's placement in Region 2 and what TV format it uses. Although the country is in Region 2 like Europe, it uses NTSC instead of PAL/SECAM. Apologies for that error.

Secondly, in the time since I wrote this article, the dvdauthor team have been busy improving the application. One of the main changes has been to switch to using XML to lay out the title information, thus eliminating some of the huge command-lines in my tutorial. They have a brief guide to the new format here.