DVD slideshows under Linux

Philip Newborough notes that in the last LugRadio episode I said that I planned to release more odd bits of software. (He also illustrated this with a snippet of audio from the show; since we’re trying to relax our licence to allow this sort of thing, it’s great that people are taking advantage of that!) The problem I outlined on the show itself is that I write lots of little bits of software for me, but I don’t release them. They’re not generally applicable or easy to install: they’re not designed to be polished, public-friendly software in any way. Now, I’m a huge opponent of this. There’s a pervasive myth among non-Linux users that all the software on the free desktop is complicated and thorny and command-line driven, and it requires you to edit configuration files and compile it yourself. It’s not like that, not at all, if you don’t want it to be. However, these little bits of software I write purely for myself are like that; they’re not for general distribution. So, I don’t release them, because I don’t want to add more fuel to the fire for the sneering hordes who say that Linux is hard to use. Over pizza earlier this year, it was brought home to me that that might not be the best idea; even though these little hacks aren’t useful to the general population, they might be useful to someone. So, my resolution, if I have one for this year, is to get more of this stuff out there.

Update: Greg Grossmeier is doing the same thing after I talked about releasing scripts on LugRadio. That’s really cool; it’s lovely to hear when people go with a suggestion!

The first one is a thing to create DVD slideshows under Linux. My dad said to me over Christmas that a friend of his would, on return from holiday, give out DVDs with all the photos from the holiday on in a nice little slideshow that you could watch in your DVD player. Was it possible, he asked, for him to do the same thing on his (Ubuntu) desktop? Of course, said I, and then started looking into how to do it.

The base way that everyone does this on Linux is with the dvd-slideshow shell script, which uses tools like mplayer and so forth to do the work. There are GUI clients for it but they’re all really complicated; what you want ideally is something where you just drag photos into it, select transitions if you want to, and click the “go” button. There’s also an extension for F-Spot, but it’s not actually distributed with F-Spot yet and my dad doesn’t use F-Spot anyway. (There isn’t an extension that does this in a sane way for digikam, as far as I can tell.) I at first sat down to my keyboard thinking that I’d write a nice PyGTK + GStreamer application that would do this right, before discovering that you can’t really take a load of photos and make a nice slideshow out of them with GStreamer. (You sort of can, with multifilesrc, but not really; you can’t feed it arbitrary files, it doesn’t do transitions, etc.) Then I thought: I’ll do a nice application that wraps dvd-slideshow, and then I couldn’t be arsed.

So instead, I wrote a script for my dad: make-dvd-slideshow.

The way this script works is that you hardcode the name of a folder into it. It looks in that folder, makes all the images in that folder into a slideshow, adds an mp3 as a soundtrack if it finds one in the folder, and then drops the resulting .iso file onto your desktop ready for burning. You’ll need to change at least FOL="/home/aquarius/Desktop/Olivia Party 2" to be the location of the magic folder (I put one on my dad’s desktop, called “DVD Slideshow”, and hardcoded it into the script) and then run the script (I put a launcher on his desktop, in that folder, which launches the script in an xterm). Enjoy this: if you think it sucks then I’d love to see someone write something better, and tell me about it when you do; if you want to write something better but aren’t sure how to do it then I’ll happily write you a spec of how I think it should work :-)

6 Responses to “DVD slideshows under Linux”

  1. Hi, this is pretty cool!

    A simple thing to do for now could be the following :
    Make the script use an environment variable instead of a hard-coded value, and place the ISO file either in the folder itself or it’s parent.
    Afterward, the script could be stored in the scripts folder of nautilus, and the environment variable set by nautilus (see the following link for details about this [http://g-scripts.sourceforge.net/faq.php])

    Thanks to this simple mechanism, it’s possible to right-click on any folder, and to select scripts/make-dvd-slide-show .

    TuXnCo

    TuXnCo
  2. One other thing you might consider with these bits of “software” is that by sharing them other people who might find them useful can improve them and send the better bit back to you.

    You’re right about the myth 4yr old has been using Linux for a year now. He has no idea what a terminal is.

    Fergus Doyle
  3. Manslide is almost what you want: http://opendesktop.org/content/show.php/Manslide?content=72739

    You can easily create nice slideshows with it. It only needs a burn to dvd button somewhere. Perhaps you could code that?

    Ubuwu
  4. Nice to see you delivering on your resolution, good stuff. Regarding the script, I’ve actually got a load of photos that I took at my brothers wedding last year, somehow I got charged with photography duties!? Anyhow, it’ll be cool to be able to send him a disk, or link to an iso. Thanks :)

    Philip
  5. Nice script - my wife is after EXACTLY this. She currently uses Windows for this - and ONLY this….. I have been _gunna_ knock something up like this for a while. Will take yours and have a play. Maybe a Zenity frontend would make it more “wife” friendly…

    Mrk Unwin
  6. Wow, a link from Aq… I must be cool now.

    Greg

Leave a Reply

OpenID is a decentralised authentication system. If you use LiveJournal or Vox you already have an OpenID; just use the URL of your homepage there. See also how to get yourself an OpenID.