When shooting friends’ wedding, I decided it would be “way cool” to give them – beside an album (of course) – a DVD with a slideshow of the best pictures of D-Day. This is so simple to send to friends abroad, you just need a TV or a computer to play it and you can also include higher definition pictures if someone wants to have prints.
Now there is a set of tools that allows to do just that on Linux: dvd-slideshow. You start with preparing your slideshow (defining pictures, timing, transitions…) then create a DVD menu and generate an ISO which you burn on a DVD.
Linux being Linux, dvd-slideshow is command line based. And no, it is not as bad as it looks. However, this entry is based on a several months old successful experience with dvd-slideshow, so there may be some inaccuracies…
Preparing your slideshow
Before generating a slideshow, you need to produce an input file which specifies which pictures to use, how long each picture stays on the screen and which transition effect is applied.
The simplest way to do it is to put all of your pictures in one directory and run dir2slideshow. This will create the input file for the next step. Although there are many configuration options, this command should give you acceptable defaults:
dir2slideshow -n 'test slideshow' -t 5 -c 1 slideshow_pictures
This asks to take all the (JPEG or PNG) pictures from slideshow_pictures, show them for 5 seconds and then crossfade to the next picture for 1 second. It generates a test_slideshow.txt input file. Pretty standard defaults, but the link above gives you a description of all the options available.
An interesting switch is -p if you want to generate a PAL slideshow instead of default NTSC.
You have then a file describing your slideshow’s characteristics. Its syntax is fairly straightforward; you can hand-edit it if needed.
Generating the slideshow
Once you are happy with your input file, generating the slideshow is something as simple as typing:
dvd-slideshow -n 'test slideshow' -f test_slideshow.txt
If you add the switch:
-a audiotrack.ogg
it will add an audio track to the slideshow. The result will be 2 files: test_slideshow.xml and test_slideshow.vob. You can try playing your slideshow with mplayer:
mplayer test_slideshow.vob
If you are happy with it, you can move to defining the menu.
Making DVD menus
In my case, I needed a menu to allow people to either watch part of the images (church, group pictures, portraits) or all of them. So for each entry menu, I generated a new slideshow – yes that means that I ended up having pictures twice but given how much room there is on a DVD and the definition of the images, this wasn’t a problem (the final ISO was 600 Mb).
Once you have decided which menu entries you need and have a .vob and .xml file for each of them, you can move to the next utility: dvd-menu
Now you can chose which theme you want to use for your menu. You can download a few standard ones here. You can use a theme throughout your slideshow – including printing photo titles with a matching font and color or theme matching transitions.
I like to have rather simple design, so I just to adapted the image, font and menu title from the wedding theme – more info on theme format is available here. The goal was to present photo the best possible way, not to show off all of dvd-slideshow’s bells and whistles. So I ended up with this command:
dvd-menu -p \
-t ' Toutes les photos - Všechny fotky' \
-t ' Cérémonie - Svatební obřad' \
-t ' Photos de groupes - Skupinové fotky' \
-t ' Portraits des Mariés - Potrét manželů' \
-t 'Soirée aux 3 Barbus - Večer u třech vousatých' \
-t ' Portraits des invités - Portrét hostů' \
-f 'Toutes_les_photos.xml' \
-f 'Ceremonie.xml' \
-f 'Photos_de_Groupes.xml' \
-f 'Portraits_des_maries.xml' \
-f 'Repas_aux_3_Barbus.xml' \
-f 'Portraits_des_invites.xml' \
-n 'Florian & Anna' \
-theme wedding -fadein -fadeout
This basically connects .xml files to the buttons (labeled in French / Slovaquian). I used the -p switch to use the PAL standard. -n gives the DVD title and -theme, well, you guess it. This command creates a subdirectory “dvd_fs” where which now also has menus. You can test it with xine by typing:
xine -g -u 0 dvd:"`pwd`/dvd_fs/"
Generating an ISO file
At that stage, you may want to include a few extras to your DVD. I added high definition JPEG of the images, in case anyone wanted to have prints. Just drop them in your dvd_fs directory.
From there, typing:
mkisofs -dvd-video -udf -o dvd.iso dvd_fs
will create the dvd.iso file which you can burn on your DVD.
What about GUI?
There are 3 GUI tools for dvd-slideshow. Basically, they allow you to chose your images, duration, effects, transitions and will invoke dvd-slideshow for you. Unfortunately, none of them is really mature, simple and easy to use – hence this entry based on using the command line tools.
- The first one is slideshow creator which is a KDE application based on Gambas. It does a good job, although its last update was from June 2006, so it doesn’t pick the latest additions to dvd-slideshow (version 0.80).
- There also is jDVDSlideshow which is java-based. I got it running with sun-java(32bits). It didn’t like me changing any slideshow preferences (PAL / NTSC, etc) having dvd-slideshow complaining about a malformed line. Still, it does a decent job at generating a simple slideshow.
- Lastly, there is Q DVD-author which is more than a slideshow creation program. It will allow you however to create slideshow, although it doesn’t offer a front end for all the options available in dvd-slideshow. You can also use it to generate the menus, apparently.
Last bullet points
- In high-quality mode, dvd-slideshow will resize your images to JPEG of 720×480 possibly applying a bit of unsharp (if given the -sharpen parameter). A good alternative (if you are as picky as me) is to create your images directly at the right size using Phatch or an ImageMagick / bash script (with proper sharpening)
- From a photographer’s perspective, the images quality on TV is quite appalling. Still, a DVD is a nice give-out that isn’t expensive and that anyone can enjoy.
- I can only recommend that you pay a visit to the dvd-slideshow site where you will find lots of details a more information about how to make most of this set of utilities. This entry is mainly a rip-off of the complete example you find on their site.
- One last thing: if your dvd-slideshow complains about “error during ffmpeg execution” when generating the .vob files, try changing ac3=1 to ac3=0 in /usr/bin/dvd-slideshow, line 561. It did the trick for me.
Here is what my DVD menu looked like:

and one of my favorite images from the wedding:

Another thing that I was looking for….. Linked on meetthegimp.org!
Sweet – that’s just the kind of thing that I was looking for, as I do wedding photography…and run Linux! Thanks for the heads up!
Hi there!
@Rolf, that is where you video based approach will shine
@Steve, I think you can have a very productive DVD creation workflow on Linux with Phatch (or a bash script) and dvd-slideshow. You may need a bit of time to set it up, but then you can enjoy the power of command-line…
Take care,
Joel
What about Manslide?
Hi Alexandre,
I didn’t know about Manslide – l am looking forward to giving it a try…
Take care,
Joel
Hi! Thanks for the wonderful entry. I’ll be trying this out in the near future. Cheers!
I’ve been playing around with Cinelerra for just this purpose. It’s mostly meant to edit moving images, but it imports still images too. It basically does everything that DVD-Slideshow does, except it has more options, and a (mostly) nice GUI.
I’ll have to check out manslide too!
Nice photo and menu design, by the way.
Hi Shane,
I didn’t know Cinelerra was able to do that. I’ll give it a go.
Thanks for the compliments; I take it for the photo, but the menu design is just copied from the invitation
Take care,
Joel
Hi there!
Your article is very helpful for me! 5 minutes ago I was able to play my very first DVD slideshow. Although I have QDVDAuthor installed, this does not work for me. The errors that I get have to do with the audio settings. However, if I use the commands that you describe here (and adding the -mp2 switch to a few of them) everything works fine.
Thanks again!
Kind regards,
SMK
Happy to help. Still have a couple of GUI apps to review (Cinelarra and Manslide).
Slowly getting there
Take care,
Joel
What about diascope? A relatively recent command line tool that I think is not so well known yet but it does generate higher quality output specifically for watching on television (DVD). It also encodes others formats such as mp4 and flv.
I like it especially for the possibility to pan and zoom along curved paths and for its soft luma transitions.
Anders
Hi Anders,
Thanks for the pointer. I am planning an update on the subject, so I’ll keep diascope in mind. That’s the beauty of Open Source
Take care,
Joel
Just to keep this tutorial up-to-date, on Ubuntu Hardy, you need to install some extra sox packages otherwise sound would fail (Debian bug).
See: http://www.debianhelp.org/node/11877
there is just a gui missing badly for diascope, apart from that its quite appealing!
“Svatební obřad” is in czech language, not in slovak…
Hi Slavko,
I won’t argue with you on that one
Translation was made by a Czech friend and was doomed “good enough” for Slovakians… Obviously, I don’t speak a single word of any (except Pivo and Nasdravi, but I am not sure if that counts…)
Take care,
Joel
jcornuz,
it is OK. I wrote this as joke, but my bad english restrain me to write more
It is very nice and for the first time (for me), when someone write slovak instead czech. Mostly it is vice versa…
Check out my post on how to create a DVD slideshow in Windows Vista using the built in software.
To A Kishore
Why? This is a Photography on Linux site. If I wanted to use MS products I wouldn’t hang out here.
You’ve got to be kidding me.
Hi,
I’ve been developing a simple gui in GTK+2 for makind dvd-slideshows. The site is:
http://imagination.sf.net
Any comments, patches are appreciated. Thank you!
Thanks a lot for the ac3=0 tip. I was getting frustrated with the error message
Such an inclusion strategy helps to shift the responsibility for preventing problems away from professionals and agencies to the youth themselves becoming responsible for decisions that affect their lives. ,
This is simply great
! Check out the kenburns effect, connected with the crossfade effect it gives really nice results.
Cheers!
I just created yet another GUI for it for simply editing the kenburns/crop effect of the images in the script. Check out:
http://code.google.com/p/dvd-slideshow-editor/
Hello
How can i install it?
Install which? The dvd-slideshow?
Thanks, very helpful article!
This worked great for over 600 photos I’d scanned with my mother.
However, using shell scripts, creating a VOB for each year (subdirectory) and dir2slideshow & dvd-slideshow, I can’t see a way to have audio that crosses ‘chapters’.
So, no audio on this first DVD slide show! This is going to be a ‘Christmas surprise’. Maybe next year I’ll find an alternative way to do this…
Thanks for sharing it.
/Bill
Make a slide show
Hi there! This is kind of off topic but I need some help
from an established blog. Is it very difficult to set up your own blog?
I’m not very techincal but I can figure things out pretty quick. I’m thinking about
creating my own but I’m not sure where to start. Do you have any tips or suggestions? Thanks