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:

January 23, 2008 at 7:56 pm |
Another thing that I was looking for….. Linked on meetthegimp.org!
January 23, 2008 at 10:21 pm |
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!
January 24, 2008 at 9:30 am |
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
January 24, 2008 at 11:27 am |
What about Manslide?
January 25, 2008 at 9:58 am |
Hi Alexandre,
I didn’t know about Manslide – l am looking forward to giving it a try…
Take care,
Joel
February 3, 2008 at 6:31 pm |
Hi! Thanks for the wonderful entry. I’ll be trying this out in the near future. Cheers!
March 5, 2008 at 8:18 pm |
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.
March 6, 2008 at 9:04 am |
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
April 4, 2008 at 10:45 am |
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
April 4, 2008 at 1:12 pm |
Happy to help. Still have a couple of GUI apps to review (Cinelarra and Manslide).
Slowly getting there
Take care,
Joel
May 11, 2008 at 10:05 am |
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
May 13, 2008 at 8:54 am |
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
May 22, 2008 at 8:51 am |
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
May 29, 2008 at 3:28 pm |
there is just a gui missing badly for diascope, apart from that its quite appealing!
July 16, 2008 at 12:46 pm |
“Svatební obřad” is in czech language, not in slovak…
July 16, 2008 at 4:56 pm |
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
July 17, 2008 at 10:08 am |
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…
August 26, 2008 at 5:43 pm |
Check out my post on how to create a DVD slideshow in Windows Vista using the built in software.
August 26, 2008 at 7:13 pm |
To A Kishore
Why? This is a Photography on Linux site. If I wanted to use MS products I wouldn’t hang out here.
August 27, 2008 at 3:33 am |
You’ve got to be kidding me.
February 2, 2009 at 12:26 pm |
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!
April 2, 2009 at 6:56 pm |
Thanks a lot for the ac3=0 tip. I was getting frustrated with the error message