FFmpeg can do that (free, open source, cross-platform, has official Ubuntu packages). Assuming you have a folder full of JPG files named like "img043251.jpg", "img043252.jpg" and so on, something like this would convert them into a video:
ffmpeg -framerate 60 -i img%06d.jpg output_video.mp4
where %06d
means the file name ends with 6 digits, change it to %04d
is there are only 4 digits, etc. Set the framerate as low as you like. Can do many more things with it (crop, rotate and other image operations, overlay text or additional images, add sound tracks, etc.)
MoviePy is a Python module for video editing, it uses the same FFMpeg, among other things. IIRC, Python is installed by default in Ubuntu, installing MoviePy would take a second with pip install moviepy
. A MoviePy version of the above command line would be something like this:
from glob import glob
from moviepy.editor import *
files = glob("*.jpg")
frames = [ImageClip(f, duration = 0.5) for f in files]
clip = concatenate_videoclips(frames, method = "compose")
clip.write_videofile("video.mp4", fps = 2)
Looks way more verbose for something as simple as converting a set of files into a video, but for more complex cases it might become more manageable than a long long long command line.