Image2Movie
Turn a sequence of still images into a high-quality movie. Set the frame rate, choose the size and compression, and export a movie ready to share or edit.
Choose your version
Image2Movie 4.0
macOS 27 or later · Apple silicon
Everything in version 3.1, plus:
- Higher precision: 16-bit image processing, 10-bit HEVC/ProRes input, and color-managed SDR output.
- Quality presets: Standard and High settings, plus Custom Bitrate.
- Undo and Redo: for adding, removing, and reordering images.
- Automation: export movies through Shortcuts and AI tools.
Image2Movie 3.1
macOS 12 or later · Intel and Apple silicon
The classic interface with updated codecs and safer exports, for Intel and Apple-silicon Macs.
- Movie formats: H.264, HEVC, and ProRes 422.
- Output controls: up to UHD 4K at 1–30 fps, with manual bitrate controls for H.264 and HEVC.
- Image editing: reorder and remove images before export.
- Safe exports: cancellation or failure preserves an existing destination.
Usage
- Drag a series of still images from Finder into the table. Arrange them in the order you want them to appear in the movie.
- Set the frame rate to an integer between 1 and 30 frames per second.
- Choose the target movie size, up to 3840 × 2160 (UHD 4K). Images are resized to fit.
- Choose a codec and compression settings. H.264 and HEVC produce MP4 files; ProRes 422 produces MOV files for editing.
- Click Save Movie and choose the filename and destination. During export, the button becomes Cancel.
Transparent areas appear over black.
For 4.0, start with the default HEVC / High settings. Choose H.264 when playback compatibility matters most, or ProRes when the movie will go into an editing workflow. Automatic quality settings produce file sizes that vary with the images.
Automate with version 4.0
Use native Shortcuts actions or let an MCP-compatible AI tool export a sequence. Enable AI-tool access and authorize input and output folders once in Automation Settings. The bundled bridge can then start Image2Movie in the background when a client connects.
Movies from MATLAB
Image2Movie began as a way to make better movies from MATLAB output. Export frames at the movie’s intended pixel dimensions, use consistent dimensions and zero-padded filenames, then import them in order. Lossless PNG or TIFF files keep compression out of the individual frames.
- Compared with MATLAB’s built-in VideoWriter, Image2Movie offers HEVC and ProRes 422 export, including 10-bit HEVC in version 4.0. You can also change compression settings and export saved frames again without rerunning MATLAB.
This script creates 120 PNG frames at 1920 × 1080. Run it in MATLAB R2025a or newer, then import the numbered frames into Image2Movie in filename order. Choose 1920 × 1080 and 30 fps to make a four-second movie. It works with both versions of Image2Movie.
Download the MATLAB example (ZIP, script and instructions)
View the MATLAB code
%% Generate lossless PNG frames for Image2Movie (MATLAB R2025a or newer).
% Import the frames in filename order, then export at 1920 x 1080 and 30 fps.
% The 120 frames make a four-second movie in Image2Movie 3.1 or 4.0.
%% Choose the output size, timing, and an empty folder.
frameWidth = 1920;
frameHeight = 1080;
frameRate = 30;
duration = 4;
frameCount = frameRate * duration;
outputFolder = fullfile(pwd, "Animation_Example_Frames");
if ~isempty(dir(fullfile(outputFolder, "*.png")))
error("Choose an empty outputFolder to avoid mixing old and new frames.");
end
mkdir(outputFolder);
%% Create the plot once, with fixed axes and a white background.
x = linspace(0, 10, 1000);
fig = figure(Units="pixels", Position=[100 100 960 540], Theme="light");
ax = axes(fig, FontSize=14);
signal = plot(ax, x, zeros(size(x)), LineWidth=3, Color=[0.1 0.4 0.7]);
xlim(ax, [0 10]);
ylim(ax, [0 1.2]);
xlabel(ax, "Distance");
ylabel(ax, "Amplitude");
title(ax, "A traveling pulse");
%% Update the data and export each frame at exact pixel dimensions.
for frameIndex = 1:frameCount
time = (frameIndex - 1) / frameRate;
center = 2 + 6 * time / duration;
signal.YData = exp(-((x - center) / 0.6).^2);
filename = fullfile(outputFolder, sprintf("frame_%04d.png", frameIndex));
exportgraphics(fig, filename, Units="pixels", Width=frameWidth, Height=frameHeight, Padding="figure", BackgroundColor="white");
end
fprintf("Wrote %d frames to %s\n", frameCount, outputFolder);
The plot and axes stay fixed while the data changes, and exportgraphics writes each frame at the requested pixel size. Use an empty output folder. For UHD, set frameWidth = 3840 and frameHeight = 2160, then choose the same size in Image2Movie.
This example exports ordinary 8-bit PNGs. For higher source precision, supply genuine 16-bit PNG or TIFF images from a workflow that preserves it. See the MATLAB exportgraphics documentation for export options.
Release notes
4.0
Requires macOS 27 and Apple silicon. Adds a shared high-precision renderer, 10-bit HEVC and ProRes input, automatic codec profiles, quality presets, SDR Rec.709 color management, modern file handling, remembered preferences, and Undo. Adds sandboxed folder access, native Shortcuts actions, and optional MCP automation with background launch.
3.1
Updates the classic app with universal Intel and Apple-silicon builds, UHD output, HEVC and ProRes 422, and image deletion. Fixes destination preservation, invalid settings, repeated export failures, unreadable images, raster pixel sizing, and background UI updates. Keeps the classic rendering and compression controls.
Both versions preserve an existing destination if encoding fails or an export is cancelled before final publication.
Earlier releases and original license
Changes in 3.0.1 [Binary, Source]
- Release date: 2014-05-16
- Fixed a bug that prevented the frame-rate from being updated.
Changes in 3.0.0 [Binary, Source]
- Release date: 2013-04-21
- Completely rewritten to use AVFoundation instead of QTKit.
- Default output sizes are now much more reasonable (they were far to big in the past).
- Supports custom bit rate settings and h.264 profile settings.
- Substantially faster.
Changes in 2.0.1 [Binary, Source]
- Release date: 2011-11-04
- Set the default save directory to something other than nil. This actually allows you to save now!
- Added sample Matlab code to generate images for an animation.
Changes in 2.0 [Binary, Source]
- Release date: 2011-11-03
- Drag images from the Finder to the table.
- Re-order images in the table view.
- Now automatically resizes images to fit a user selectable target size.
Changes in 1.2 [Binary, Source]
- Release date: 2011-09-21
- The frame rate is now user selectable.
- The application no longer uses garbage collection and has been converted to Automatic Reference Counting (ARC).
- OpenPanel and SavePanel code was modified to use blocks.