Producing a DVD slideshow

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:

sl1.jpg

and one of my favorite images from the wedding:

florianna.jpg

22 Responses to “Producing a DVD slideshow”

  1. Rolf Says:

    Another thing that I was looking for….. Linked on meetthegimp.org!

  2. Steve Says:

    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!

  3. jcornuz Says:

    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

  4. prokoudine Says:

    What about Manslide? :-)

  5. jcornuz Says:

    Hi Alexandre,

    I didn’t know about Manslide – l am looking forward to giving it a try…

    Take care,

    Joel

  6. Arielle Says:

    Hi! Thanks for the wonderful entry. I’ll be trying this out in the near future. Cheers! :)

  7. Shane Knudsen Says:

    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.

  8. jcornuz Says:

    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

  9. SMK Says:

    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

  10. jcornuz Says:

    Happy to help. Still have a couple of GUI apps to review (Cinelarra and Manslide).
    Slowly getting there :)

    Take care,

    Joel

  11. Anders Rink Says:

    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

  12. jcornuz Says:

    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

  13. jcornuz Says:

    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

  14. d-fens Says:

    there is just a gui missing badly for diascope, apart from that its quite appealing!

  15. Slavko Says:

    “Svatební obřad” is in czech language, not in slovak… ;-)

  16. jcornuz Says:

    Hi Slavko,

    I won’t argue with you on that one :-P
    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

  17. Slavko Says:

    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…

  18. A Kishore Says:

    Check out my post on how to create a DVD slideshow in Windows Vista using the built in software.

  19. BDion Says:

    To A Kishore

    Why? This is a Photography on Linux site. If I wanted to use MS products I wouldn’t hang out here.

  20. George Says:

    You’ve got to be kidding me.

  21. colossus73 Says:

    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!

  22. Qeni Says:

    Thanks a lot for the ac3=0 tip. I was getting frustrated with the error message

Leave a Reply