stills2dv logoAn open source solution to make a movie out of still pictures, stills can be of any resolution (highest preferably for best results). The output also could be of any resolution, from a small video for youtube to a full HD (or more if you know what you're doing). Since we now can make JPGs for ffmpeg and mencoder as well as PPMs for encodedv this application could also be called; stills2mpeg
alpha-0.601 Changes in alpha-0.601
  • Bug fix: Application is not sensible anymore to capitalization in filename extensions for the image files. (no more crash when filename in high cap)
  • "make example" will produce a 720p 30hz example for better first effect.
alpha-0.600 Changes in alpha-0.600
  • New feature: motion blur, it slows down the rendering but the result is so much nicer.
  • A new command line feature: -nomotionblur which is self-explanatory.
alpha-0.500 Changes in alpha-0.500
  • A new command line feature: -fastrender which will turn off anti-aliasing totally and make the rendering something like 5 to 10 times faster, perfect for checking/developing/debugging the script.
  • A logic error was corrected with the anti-aliasing/sharpness, image is a tad clearer and the sharpness setting works as it should.
alpha-0.400 Changes in alpha-0.400
  • We now can display the image at work while the software is rendering; it's more beautiful when it's useless (Cyrano de Bergerac).
  • A script, some pictures and a soundtrack are now packaged with the source so people will only need to do a "make example" to see what it can do.
alpha-0.301 Changes in alpha-0.301 (see this video as an examples of the new features)
  • Configurable smoothness, pans and zoom now each have a smoothness setting (from 0.000 to 0.500) which will make any move to accelerate at start and decelerate at end so it would like more natural.
  • New parameters for startpoint and endpoint TOPRIGHT, TOPLEFT, BOTTOMRIGHT and BOTTOMLEFT have been added to the list (after TOP, BOTTOM, RIGHT, LEFT and CENTER).
alpha-0.200 Changes in alpha-0.200!
  • The application now accepts png files as inputs (RGB, RGBA, GRAY or GRAY_ALPHA), not the indexed ones, not yet at least.
  • There was a bug with the TOP and BOTTOM keywords, it is now fixed.
  • Source code has been splitted in 5 files for clarity
  • interpolation is now better, less artefacts (motion weaving) when slowly panning
  • We can now set the sharpness of the output, it's something I added while working on the interpolation. Increasing the value of sharpness from its default value of 1.0 to 2.0 should bring back the distracting motion weaving artefacts in slow pans (but it will be a bit faster to render)
alpha-0.100 Big changes in alpha-0.100!
  • After the second time that some changes in ImageMagick broke my stills2dv application I am proud to announce: No more dependancy on ImageMagick, no more intermediary script file, the executable will produce the ppms or the jpgs directly.
  • resolution is now defined in the workfile, it's easy to make High-definition movies out of your pictures (requires ffmpeg or mencoder instead of encodedv)
  • we can choose the output as ppms or jpgs
  • zoom scale now has changed; 1.00 now means the same as fitwidth (used to be 1 pixel for 1 pixel).
  • We can now see the border of an image, we can zoom out at will.
  • smooth zooms and pans, even at very very low speed (low speed used to look clunky because moves were produced with a minimum of 1 pixel shift, now the limit is as a 32 bits float can do.
  • background color (a.k.a. border color) is now definable in the workfile and may even change in the middle of the movie.
  • crossfade now will work with 2 panning/zooming pictures. (used to be only between 2 fixed images)
  • Only 1 small drawback; ImageMagick's "convert" application was accepting almost all picture formats as inputs on the planet, my little stills2dv will only accept jpg files, Eventually I will add more formats in time.
alpha-0.003Now works fine with ImageMagick 6.2.4 (I'm not sure since which version but at one point convert could not handle having 2 "-crop" options on the same command line which resulted in disasters, I simply splitted the command line in 2.
alpha-0.002Now with NEW "crossfade" feature It is now possible to make a transition from one picture to another with a crossfade, using version alpha-0.002 of stills2dv

Make a workfile like this one:

resolution 720X480
type ppm
framerate 30.00
backgroundcolor 0x000000
pansmoothness 0.33
zoomsmoothness 0.33
img black.jpg duration                                                          5.66
img crow.jpg startpoint 1865,1012 zoom 4 crossfade                              0.33
continue zoom 4,fitwidth duration                                              13.33
img black.jpg crossfade                                             8.66
img wildboar.jpg zoom 4 startpoint 952,1544 crossfade               0.33
continue endpoint 884,1148 duration                                             0.33
continue zoom 4,fitwidth endpoint center duration                               0.33
img wildboar2.jpg startpoint center endpoint 1988,1364 zoom fitwidth,4 duration 3.33
continue duration                                                               4.0
img tree.jpg zoom 4 startpoint 1436,2692 crossfade                  3.0
continue duration                                                               1.0
continue endpoint 880,1368 duration                                             3.0
continue endpoint 1148,160 duration                                             7.0
img black.jpg crossfade                                             4.0
img goat.jpg zoom fitwidth crossfade                                2.0
continue endpoint 1064,632 zoom 4 duration                                      6.7
img baldeagle.jpg startpoint 1176,860 endpoint center zoom 4,fitwidth duration  0.33
continue duration                                                               1.7
img owl.jpg zoom 4 startpoint 857,1012 crossfade                    0.2
continue duration                                                               0.2
img baldeagle.jpg zoom fitwidth crossfade                           0.2
continue duration                                                               0.2
img owl.jpg zoom 4 startpoint 857,1012 crossfade                    0.2
continue zoom 4,3 duration                                                      10.0
img black.jpg crossfade                                             5.0
continue duration						                3.0

Click here for more information about the vocabulary and syntax of the workfile

Run that workfile in stills2dv

   ./stills2dv -tmpdir tmp -showoutput workfile_standard.s2d

Encode all those newly produced 1816 frames in a DV stream

  encodedv -e 1816 -a wav tmp/%05d.ppm myaudioexample.wav > out.dv 

you can produced 1920x1080 jpegs and create a FULL HD video stream:

  mencoder mf://tmp/*.jpg -mf w=1920:h=1080:fps=30:type=jpg -ovc lavc \
    -lavcopts vcodec=mpeg4:mbd=2:trell:vbitrate=16000 -oac copy -o output.avi

ffmpeg also can grab jpegs and make a Full HD movie:

  ffmpeg -r 30.00 -f image2 -i tmp/%05d.jpg -i someaudiofile.mp3 -target ntsc-dvd -s 1920x1080 -vb 9000k out.mpg

use Kino (for standard DV) or Open Movie Editor (for mpegs and avi) to make video editing


And look at the result

I created this little example movie with pictures I took myself and some soundtrack I created with audacity

(1920x1080, HD Resolution)mpeg2 file: HD.mpg (44M)
(720x480 Standard Resolution)mpeg2 file: SD.mpg (17M)

I also bought a song from which has a creative common license and I made this Christmas video now published on youtube (don't forget to click on the "watch in HD" link right under it).

Download the source

Click here to download the source.
Source Hosted by: Logo


libjpeg for compiling stills2dv (this package should already installed on your Linux distribution by default)
libpng for compiling stills2dv (like libjpeg; this package should already installed on your Linux distribution by default)
encodedv (part of libdv) for DV (standard definition only)
mencoder (part of mplayer) for mpeg2, mpeg4, etc... (standard or high definition)
ffmpeg for mpeg2, mpeg4, etc... (standard or high definition)