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.
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:
dvd - title1 - title2 - title3 - title4 - title5 - mainmenu - photos - set1 - set2 - set3 - set4 - set5 - image
|Dynamic DNS—an Object Lesson in Problem Solving||May 21, 2013|
|Using Salt Stack and Vagrant for Drupal Development||May 20, 2013|
|Making Linux and Android Get Along (It's Not as Hard as It Sounds)||May 16, 2013|
|Drupal Is a Framework: Why Everyone Needs to Understand This||May 15, 2013|
|Home, My Backup Data Center||May 13, 2013|
|Non-Linux FOSS: Seashore||May 10, 2013|
- RSS Feeds
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Using Salt Stack and Vagrant for Drupal Development
- New Products
- Validate an E-Mail Address with PHP, the Right Way
- Drupal Is a Framework: Why Everyone Needs to Understand This
- A Topic for Discussion - Open Source Feature-Richness?
- Download the Free Red Hat White Paper "Using an Open Source Framework to Catch the Bad Guy"
- Tech Tip: Really Simple HTTP Server with Python
- Home, My Backup Data Center
- Please correct the URL for Salt Stack's web site
1 hour 38 min ago
- Android is Linux -- why no better inter-operation
3 hours 53 min ago
- Connecting Android device to desktop Linux via USB
4 hours 22 min ago
- Find new cell phone and tablet pc
5 hours 20 min ago
6 hours 49 min ago
- Automatically updating Guest Additions
7 hours 57 min ago
- I like your topic on android
8 hours 44 min ago
- This is the easiest tutorial
15 hours 20 min ago
- Ahh, the Koolaid.
20 hours 58 min ago
- git-annex assistant
1 day 2 hours ago
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi
It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?