Not sure what OS you're using, but there is a linux script called 'dvd-slideshow'. It takes a text file of instructions as input, but allows for the easy addition of images, title slides, transition effects and multiple audio tracks. The text file format is basic. 1 command per line,
# lines are comments.
There is a related too called dir2slideshow. If you want to make a quick & dirty dvd of all the images in a directory, you could do this:
dir2slideshow -n "Thanksgiving 2009" <Your images directory>
dvd-slideshow gives you full control over every image or effect individually. For example:
dvd-slideshow [-n <slideshow name>] [-o <output directory>] [-b <background jpeg>] [-a <audiofile1> -a <audiofile2> -a <audiofileN>] [-p] [-L] [-H] [-mp2] [-r] [-smp] -f <input text file>
The -f specifies the commands that provide all the instructions to the program.
The finished product are all the files you need to provide to a standard burner to make a dvd. There are several simple examples of the to get you started - like this one:
# simple example with fades
# instead of specifying the background image on the command-line
# it's often easier to do it in this text file:
# a duration of 0 means to set the image, but don't display it.
# Titles are put in the center:
# The titlebar type of title has two titles, one on top and one lower:
titlebar:5:My top title:My lower title
# there are simple transitions that you can use:
# fadein, fadeout, and crossfade. They all fade to/from whatever
# background you're using. Syntax is:
# you can add a subtitle during the transition, but it's optional
# use a backslash to escape a colon ':' in the subtitles.
# use '\n' to force a newline (only two subtitle lines supported now).
picture1.jpg:4:Picture 1 is so cool\:\nI can't believe how cool it really is.
# fadeout is similar:
# it's possible to specify a new title slide in the middle of the slideshow:
titlebar:4::Panoramas # note this just has the bottom title specified.
# crossfade works similar to fadein/fadeout
pano.jpg:4:Cool panorama picture
# now let's change the background color:
# syntax is background:duration:subtitle:image
# where you can use "black" or "white" or "#RRGGBB
# as the image name also.
picture1.jpg:4:Picture 1 is so cool. I can't believe how cool it really is.
# it often looks nice to end the slideshow with a fadeout to the
# background instead of just stopping the video quickly:
background:2:This is the background
# note that the background is black now...