user5670: I loaded CHDK firmware on my old Canon IXUS 980IS and took 796 images, each
weighing in at:
JPEG 4416x3312 4416x3312+0+0 8-bit sRGB 9.182MB 0.050u 0:00.049

So I want to convert 796 images into a movie. Each still could be a frame in a 24fps movie, so:
796 / 24 = 30 sec = half a minute video
FFMPEG fails with Killed
x264 [error]: malloc of size 83759040 failedime=00:00:00.-4 bitrate=N/A
Video encoding failed
Killed

Complete log
I guess the 4GB of RAM isn't enough memory. But why can't FFMPEG simply build the movie in a memory efficient manner?
Gstreamer fails
ERROR: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0: Your GStreamer installation is missing a plug-in.

Complete log

user2836: The problem is that a sequence of images is not a video file.  In order to convert it to a video format such as h.264, it has to load an entire group of pictures (probably somewhere around 15 of them) and then perform a whole bunch of calculations to determine how the images are related to each other.  It then uses that information to determine what to actually store.  
It doesn't store actual pictures, but rather it stores a couple of pictures (I frames) but then stores information about what changed from those frames to the next frames and what will change from those frames to the frames after (known as P and B frames).  This is a big part of why h.264 compression (and most other modern video formats) are able to fit so much video in to such small amounts of space compared to how much space the images take on their own.
If you were to save it as something like an MJPEG where each image is actually stored on its own, then it would just be a matter of appending them together, but then the file size of the video would probably be unplayably huge.

user5670: I followed Henderson's advice and wrote a little script to resize the images:
$ cat jpg2mp4.sh
test -d "$1" || exit
tmpdir=$(mktemp -d -p .)
counter=0
find $1 -iname '*.jpg' | while read jpg
do
        convert -resize 1440x1080 $jpg $tmpdir/IMG_$(printf "%04d" $counter).JPG
        counter=$((counter + 1))
done
echo ffmpeg -i $tmpdir/IMG_%4d.JPG test.mp4

It does work! I still wish ffmpeg could handle the original images and I also wish gstreamer would work! For further tips to enlarge a photo or adjust time, see this tip.

5670: <p>I loaded CHDK firmware on my old Canon IXUS 980IS and took 796 images, each
weighing in at:</p>

<pre><code>JPEG 4416x3312 4416x3312+0+0 8-bit sRGB 9.182MB 0.050u 0:00.049
</code></pre>

<p>So I want to convert 796 images into a movie. Each still could be a frame in a 24fps movie, so:</p>

<p>796 / 24 = 30 sec = half a minute video</p>

<h2>FFMPEG fails with Killed</h2>

<pre><code>x264 [error]: malloc of size 83759040 failedime=00:00:00.-4 bitrate=N/A
Video encoding failed
Killed
</code></pre>

<p><a href="http://ix.io/cmF" rel="nofollow">Complete log</a></p>

<p>I guess the 4GB of RAM isn't enough memory. But why can't FFMPEG simply build the movie in a memory efficient manner?</p>

<h2>Gstreamer fails</h2>

<pre><code>ERROR: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0: Your GStreamer installation is missing a plug-in.
</code></pre>

<p><a href="http://ix.io/coC" rel="nofollow">Complete log</a></p>
 2836: <p>The problem is that a sequence of images is not a video file.  In order to convert it to a video format such as h.264, it has to load an entire group of pictures (probably somewhere around 15 of them) and then perform a whole bunch of calculations to determine how the images are related to each other.  It then uses that information to determine what to actually store.  </p>

<p>It doesn't store actual pictures, but rather it stores a couple of pictures (I frames) but then stores information about what changed from those frames to the next frames and what will change from those frames to the frames after (known as P and B frames).  This is a big part of why h.264 compression (and most other modern video formats) are able to fit so much video in to such small amounts of space compared to how much space the images take on their own.</p>

<p>If you were to save it as something like an MJPEG where each image is actually stored on its own, then it would just be a matter of appending them together, but then the file size of the video would probably be unplayably huge.</p>
 5670: <p>I followed Henderson's advice and wrote a little script to resize the images:</p>

<pre><code>$ cat jpg2mp4.sh
test -d "$1" || exit
tmpdir=$(mktemp -d -p .)
counter=0
find $1 -iname '*.jpg' | while read jpg
do
        convert -resize 1440x1080 $jpg $tmpdir/IMG_$(printf "%04d" $counter).JPG
        counter=$((counter + 1))
done
echo ffmpeg -i $tmpdir/IMG_%4d.JPG test.mp4
</code></pre>

<p>It does work! I still wish ffmpeg could handle the original images and I also wish gstreamer would work! For further tips to enlarge a photo or adjust time, see this <a href="http://webconverger.org/screensaver/" rel="nofollow">tip</a>.</p>
