AviReady
AVI to DVD conversion script. Simple, free, one-step, cross-platform, command-line tool.
Concept
Ever since I got a DVD burner I started a quest to try and find a way to turn a basic AVI file into a DVD compatible enough to play on a high-end player as well as a PS2 and Xbox. Turns out this used to be really tricky, and required a multiple step process turning the AVI into a video only stream (m2v) and an audio only stream (ac3), then fixing their formats, putting them back together, and finally converting it into the DVD file format. Thankfully, ffmpeg came along with it's target=dvd option and made it dead simple.
However, there's still lots of typing involved, mostly because of all of the options available. So I made this short perl script to help automate the process. Plus, I want to do neat stuff like using multiple AVI files per disc, and adding subtitles. I've purposefully avoided menus, because personally I find them annoying, but they may get added in a future version.
Get
- Aviready: A short perl script.
- FFmpeg: The workhorse.
- Dvdauthor: For creating the DVD file format.
- empty clip: Momentary empty video file, necessary if you want to use multiple AVI's per DVD.
Setup
On Windows this is slightly trickier. For one thing, you need perl. You can get it here. After installing, make sure you have perl in your path by opening a console and typing "perl -h".
FFmpeg is also hard, because it is not targeted at Windows. I would recommend getting third party builds, from here.
After installing these three, you probably need to edit a few options in the perl script. Open "generate.pl" and take a look at the "CONFIGURATION" section. Set the first path to point to the directory containing your empty.mpg file. If you're on Windows, you also need to set the paths to FFmpeg, and DvdAuthorGui's bin folder.
Running
Once the initial setup is done, running AviReady is simple. Give it the directory that contains the AVI files you want to use (as a command-line parameter), and it will create a folder called "scripts" in that directory. Inside, run the script named "0_Run" to start the whole process, or hack any of the scripts there if you'd like to customize the process. On a fairly old machine I've got for conversion, the whole process takes about the same time as the video's length.
Example
Say I've got a directory named "d:\data\home_movies\" containing three files: "part1.avi", "part2.avi", and "part3.avi". I run AviReady as so:
d:\data\home_moves\> generate.pl d:\data\home_movies\
This will create the scripts subfolder as "d:\data\home_movies\sripts\". Go there and run this command:
d:\data\home_moves\scripts\> 0_Run.bat
The result will be in "d:\data\home_movies\output\". Burn with Nero on Windows or growisofs on Linux.