How to Use dvda-author to Create Professional DVDsCreating professional-looking DVDs doesn’t require expensive commercial software — with dvda-author, a powerful open-source toolset, you can build polished DVDs complete with menus, chapters, subtitles, and multiple audio tracks. This guide walks through everything from installation to advanced menu customization, showing practical examples and tips so your DVDs look and behave like those produced by commercial tools.
What is dvda-author?
dvda-author is an open-source command-line tool that assembles MPEG-2 video, audio, subtitle streams, and menu XML into a DVD-compliant VIDEO_TS structure. It’s commonly used on Linux and other Unix-like systems and is often paired with tools like ffmpeg (for encoding), spumux (for subtitle multiplexing), and mkisofs/genisoimage (for creating ISO images).
Key components:
- dvdauthor: the main authoring tool that reads an XML project file and creates VIDEO_TS.
- ffmpeg or mencoder: used to encode source video into DVD-compliant MPEG-2.
- spumux: creates VOB-compatible subtitle streams (SPU).
- growisofs or wodim: used to burn the final ISO to a disc.
- mkisofs/genisoimage/xorriso: create ISO images.
Installing required tools
On Debian/Ubuntu:
sudo apt update sudo apt install dvdauthor ffmpeg spumux mkisofs growisofs
On Fedora:
sudo dnf install dvdauthor ffmpeg spumux genisoimage growisofs
If a package is unavailable in your distro, build from source or use alternative names (e.g., xorriso instead of mkisofs).
Workflow overview
- Encode source videos to DVD-compliant MPEG-2 VOBs (using ffmpeg or mencoder).
- Create subtitle SPU streams using spumux (if needed).
- Write a dvdauthor XML project describing menus, titles, chapters, and audio/subtitle tracks.
- Run dvdauthor to build the VIDEO_TS structure.
- Optionally create an ISO with mkisofs/genisoimage/xorriso.
- Burn the ISO to disc with growisofs/wodim.
Preparing and encoding video
DVD requires MPEG-2 video with specific bitrate/resolution standards (NTSC: 720×480, 29.97 fps; PAL: 720×576, 25 fps). Use ffmpeg to transcode:
Example for PAL:
ffmpeg -i input.mp4 -target pal-dvd -aspect 16:9 -b:v 5000k -b:a 192k output.mpg
Example for NTSC:
ffmpeg -i input.mp4 -target ntsc-dvd -aspect 16:9 -b:v 6000k -b:a 192k output.mpg
Split long videos into chapters while encoding (optional) — you can later define chapters in the dvdauthor XML or create separate title sets.
Creating subtitles (SPU)
If you have subtitle files (e.g., .srt), convert them to SPU streams:
- Convert SRT to OSDL XML (tools like subtitler or manual conversion).
- Use spumux to multiplex subtitles into an .spu file:
spumux -o subtitles.spu -s 25 subtitle.xml
The -s 25 specifies PAL timing; use 29.97 for NTSC if needed.
Writing the dvdauthor XML
dvdauthor uses an XML file to define menus, titles, chapters, and audio/subtitle tracks. Here’s a basic example that creates a menu and a single title:
<?xml version="1.0" encoding="utf-8"?> <dvdauthor> <vmgm> <menus> <pgc> <pre>jump title 1;</pre> </pgc> </menus> </vmgm> <titleset> <titles> <title> <vob file="output.mpg" /> </title> </titles> </titleset> </dvdauthor>
This simple XML creates a menu that immediately jumps to the first title. More complex menus will reference background images, button positions, and button commands.
Creating graphical menus
Menus are built from a background video or image and button definitions. You can use a static PNG as the background and define buttons with coordinates.
Example:
<vmgm> <menus> <pgc> <vob file="menu_background.mpg" /> <button highlight="0,0,100,40" select="goto title 1;" /> <button highlight="0,50,100,90" select="goto title 2;" /> </pgc> </menus> </vmgm>
To use a PNG background convert it to MPEG:
ffmpeg -loop 1 -i menu.png -t 10 -r 25 -s 720x576 -b:v 2000k menu_background.mpg
Buttons require exact pixel coordinates (left, top, right, bottom). Test and tweak positions using a previewing tool like lsdvd or by burning a test DVD.
Chapters and multi-title DVDs
Define chapters inside a
<title> <vob file="episode1.mpg"> <chapter> <vob filepos="00:10:00" /> </chapter> <chapter> <vob filepos="00:20:00" /> </chapter> </vob> </title>
Alternatively use multiple
Multiple audio tracks and subtitles
Specify audio tracks in the title, pointing to separate audio files or streams. Example:
<title> <vob file="movie.mpg" /> <audio lang="en" file="audio_eng.ac3" /> <audio lang="es" file="audio_spa.ac3" /> <subpicture lang="en" file="subtitles.spu" /> <subpicture lang="es" file="subtitles_es.spu" /> </title>
Make sure audio is in AC3 or MP2 format supported by DVD players.
Building the DVD
Run dvdauthor with your project file:
dvdauthor -o DVD -x project.xml
This creates a DVD/VIDEO_TS directory in ./DVD. Validate with totem, vlc, or a standalone DVD player.
Create an ISO:
mkisofs -dvd-video -o dvd_image.iso DVD/
Or with xorriso:
xorriso -as mkisofs -o dvd_image.iso -dvd-video DVD/
Burn to disc:
growisofs -Z /dev/dvd -audio -dvd-compat -J -R -V "MyDVD" dvd_image.iso
Common problems & troubleshooting
- Video not playing: confirm NTSC/PAL settings and MPEG-2 compliance.
- Menu buttons not responding: check button coordinates and button commands.
- Subtitles out of sync: ensure framerate and timing used for spumux match encoded video.
- File too large: lower video bitrate or split into multiple titles.
Advanced tips
- Use templates for menus: design in GIMP/Photoshop, export PNG, convert to MPEG.
- Scripting: automate repetitive tasks with shell scripts that call ffmpeg, spumux, and dvdauthor.
- Preview iteratively: convert menu PNG to short MPEG loops to test highlighting and timing.
- Optimize bitrate: use two-pass ffmpeg encoding for better quality at constrained bitrates:
ffmpeg -y -i input.mp4 -target pal-dvd -pass 1 -b:v 5000k -an -f rawvideo /dev/null ffmpeg -i input.mp4 -target pal-dvd -pass 2 -b:v 5000k -b:a 192k output.mpg
Example: Complete minimal project
Files: movie.mp4, menu.png, subs.srt
Steps (summarized):
- Encode movie: ffmpeg -i movie.mp4 -target pal-dvd output.mpg
- Convert menu PNG: ffmpeg -loop 1 -i menu.png -t 10 -r 25 -s 720×576 menu_background.mpg
- Convert subs and mux: (convert SRT to XML) spumux -o subs.spu -s 25 subs.xml
- Create project.xml (example shown above, adapted)
- dvdauthor -o DVD -x project.xml
- mkisofs -dvd-video -o dvd.iso DVD/
- growisofs -Z /dev/dvd -dvd-compat dvd.iso
Creating professional DVDs with dvdauthor takes some learning, but it gives you complete control over menus, chapters, and tracks without relying on proprietary software. With practice and careful encoding, your results can match commercial DVDs in look and functionality.
Leave a Reply