A tool to convert digital photos (and other images) into MPEG movie streams on Linux/UNIX.

image2mpeg is free software and published under the GPL.


After years of producing photos with my digital camera, I was searching for a way to show them on the TV. In the first step I made SVCDs with MPEG still images. The display quality was very good, but SVCD doesn't allow transitions between the photos nor music.

Now, image2mpeg is a tool to convert digital photos (and any other images) into MPEG video streams with transitions between the images. The photos may be accompanied with music (or any other audio streams). Also included in image2mpeg is a script to generate credits and title streams.

Furthermore, image2mpeg now also supports the Ken Burns Effect, where photos can be panned and zoomed during display.

image2mpeg is running on Linux, and should also work on other UNIX platforms as long as the packages are available which image2mpeg depends on.

What do you need to get it running?

image2mpeg depends on some other software packages:

  • FFMPEG for the encoding of the MEPG streams
  • MPEG tools (at least version 1.6) for encoding of the MEPG streams
  • Graphics library ImageMagick and its development package (you will need at least version 6.1.8), or DevIL (you will need a patched version of DevIL-1.6.7, the original version will crash when you write data to pipes instead of files, see below)
  • tooLAME MPEG audio layer2 VBR encoder for MP3 re-encoding (you will need at least version 0.2l)
  • MAD MPEG audio decoder and its development package for determining MP3 lengths

In addition to may want to use VCDimager to generate VCD or SVCDs from the generated streams.

For DVD authoring I personally prefer DVDStyler.

Most of the packages should be included in your Linux distribution.


Release 1.02, 04. August 2008

  • Fixed new problem with command line passing

Release 1.01, 03. August 2008

  • Fixed build with ImageMagick (libMagick/libMagickCore)
  • Fixed problem with command line passing
  • Fixed problem with 16-bit RGB input images (this is a work-around for a FFMPEG issue #556)

Release 1.0, 15. September 2007

  • fixed support for NTSC (if ffmpeg is used as encoder)
  • on multi-processor machines, image2ppm is now started multithreaded
  • implemented exacter geometry processing which results in slightly smoother Ken Burns effects
  • some minor code clean-ups

Release 0.9, 20. July 2007

  • support for 16:9 aspect ratio (support for any aspect ratio, if ffmpeg is used as encoder)
  • smarter aspect correction support
  • image scaling is now done using Gaussian Filter for better quality, and the Point Filter is used for low quality (in quick mode)
  • the geometry processing (incl. Ken-Burns-Effect) is no longer disabled in quick mode, but input images are scaled down(!) to speed things up
  • image2ppm is now directly piped into ffmpeg (with this opimization ppmtoy4m is no longer needed)
  • fixed some small memory leaks
  • some code improvements

Release 0.8.3, 15. July 2007

  • added code to handle aspect corrections (none, auto, fit-in, fill-in)
  • fixed some typos in the man page

Release 0.8.2, 13. July 2007

  • fixed problems due to changed bitrate parameters of FFMPEG
  • provided source RPM and binary RPMs for SUSE 10.2

Release 0.8.1, 22. February 2007

  • fixed problems with prescaling in cases where heavy zooms got used
  • provided source RPM and binary RPMs for SUSE10.0 and SUSE 10.2

Release 0.8, 17. February 2007

  • fixed problems with newer versions of ppmtoy4m (8 bit color depth)
  • added support to use FFMPEG as audio encoder
  • fixed bitrate parameter for FFMPEG (now in 'k')
  • disabled the SPLIT transistion
  • added the ROLL transition
  • added support to read/write the index files where the duration is specified in HH:MM rather then frames -- thanks to Andrew
  • improved performance in the case where the input images are very large compared to the target dimensions (4 megapixel and more are current images -- about 2 megapixel is adequate even if Ken Burns is used)
  • many minor fixes

Release 0.7, 13. December 2005

  • fixed incompatibility problems to older versions of toolame and mjpeg tools
  • added a logo for image2mpeg. Any comments?
  • added support for overlays: with overlay all output frames may be overlayed by a static image (always use PNG images for that because of transparency)
  • fixed center justification for images for text2image

Release 0.6, 22. October 2005

  • added support for FFMPEG which is now used as the default MPEG encoder
  • made ImageMagick the default graphics library to use during build
  • many code clean-ups for image2ppm and the GIP lib
  • some clean-ups for usage printouts
  • added man pages for image2ppm, image2mpeg, and text2image
  • cosmetic changes on the example Amsterdam By Boat

Release 0.5, 23. September 2005

  • fixed compiling with DevIL lib
  • removed some debugging code fragments which may result in errors due to file permissions

Release 0.4, 17. September 2005

  • a few bugfixes
  • image2mpeg can now also use the Image Magick library instead of the DevIL library
  • added a new transition type called SWAP
  • Estimation during processing is now displayed in HH:MM:SS format; Frames/s is now also displayed
  • a new switch --ken-burns can now be used for Ken-Burns-Effect without editiing an index file
  • RPM build under SUSE LINUX 9.3 is provided


For RPM based systems (only tested with openSUSE) get the packages for several system from You may want to add the installation source to your system to get updates.

For Debian based systems you may try the following package sources provided by Rémy Sanchez by adding the following lines to /etc/apt/sources.list:

  deb binary/
deb-src source/


If you want to build image2mpeg on your own, download the source tarball and do the following. Be sure to install the development packages for ImageMagick and MAD (see above):

$ tar xvzf image2mpeg-1.0.tar.gz

$ cd image2mpeg-1.0

$ ./configure

$ make

After that, do the installation as root user:

# make install

image2mpeg is now installed. Have fun!

Having trouble to get it running?

Read the documentation and man pages. If nothing helps, send me an Email and I will see, what we can do about it.