Initializing... drag & drop files here
Supports: PPM
A .ppm is a still image — the Netpbm Portable Pixmap that renderers, ray tracers and computer-vision code write as raw, uncompressed RGB. Turning one into an MKV produces a video clip that holds that picture on screen for a duration you choose, which is what you want for a slate, a title card, a test asset or a still that has to be dropped onto an editing timeline. This tutorial covers the four controls that matter, the two constants that surprise people (the clip is silent, and it encodes at one frame per second), and the point at which you should stop and use something else.
.mkv. Files upload over an encrypted connection, are processed on our servers, and are deleted automatically after a few hours. No sign-up, no watermark.A still has no motion to encode, so the pipeline does the sensible thing and runs at one frame per second, holding the picture for the duration you set. A five-second clip therefore contains five encoded frames, not 125. B-frames are disabled for the same reason: they are useless when every frame is identical, and at one frame per second they push the stream's start time forward by a visible amount.
The practical consequence is that duration is almost free. Encoding one 1920 x 1080 still with the parameters this page uses produced these results:
| Duration set | Frames in the output | File size |
|---|---|---|
| 5 seconds | 5 | 74,945 bytes |
| 10 seconds | 10 | 81,810 bytes |
Doubling the length added under 7 KB. Practically all the bytes go into the first keyframe; every frame after it is a near-empty "nothing changed" delta. So pick the duration your edit actually needs and stop worrying about the size of it — the levers that genuinely move the file are resolution and the quality preset, in that order.
Two patterns worth knowing:
Quality Preset is a CRF selector, and CRF scales differ per codec — a value that is near-lossless for H.264 is wasteful for AV1. The mapping below is the one this pipeline applies, calibrated at 1080p and then nudged by up to two steps for other resolutions (higher resolution tolerates a slightly higher CRF, lower resolution gets a slightly lower one).
| Preset | H.264 (default codec) | H.265 | VP9 | AV1 |
|---|---|---|---|---|
| Highest | 17 | 15 | 18 | 18 |
| Very High (default) | 18 | 17 | 20 | 20 |
| High | 20 | 20 | 25 | 25 |
| Medium | 23 | 26 | 33 | 33 |
| Low | 26 | 30 | 40 | 45 |
| Very Low | 28 | 32 | 45 | 50 |
| Lowest | 32 | 36 | 50 | 55 |
Alongside Quality Preset the page offers Constant Quality and Constraint Quality. It does not offer any bitrate or target-file-size mode — those are hidden for image sources, so there is no point looking for them. Constant Quality exposes a slider labelled CRF whose scale follows the codec you picked: 16-51 for H.264 and H.265, but 1-31 for the older qscale codecs such as MPEG-4, Xvid, DivX, WMV and MPEG-2, where the numbers mean something entirely different and lower is still better. Constraint Quality adds a Max bitrate ceiling on top.
This is a still-image tool, not a frame sequencer. If you have numbered render output — frame_0001.ppm, frame_0002.ppm and so on — and you want it played back as genuine motion, Merge strategy will hold each frame for the same fixed Duration rather than timing them on a frame-rate timeline. The shortest path to a real sequence is to keep it as an image animation with PPM to APNG, or to encode the numbered files directly with FFmpeg's image-sequence input, for example ffmpeg -framerate 25 -i frame_%04d.ppm -c:v libx264 out.mkv.
The other limit is intent. If the goal is simply a viewable picture rather than a clip, no video container helps — PPM to PNG gives you a lossless image that opens anywhere.
No. A still image has no audio track to carry, and the audio codec controls do not render on this page for that reason — so the output is a video-only Matroska file. This is worth knowing before you hand the clip to a tool that assumes every video has a sound track; some editors and uploaders complain about a missing stream. Add silence or a real track in an editor if the destination insists on one.
Five. The encode runs at one frame per second for image sources, so the frame count equals the duration in seconds. We verified this on a 1080p still: the five-second output contained exactly five frames and reported a duration of 5.000 seconds, and the ten-second version contained ten. That is why the file barely grows with length — after the first keyframe, each additional frame is a "nothing changed" delta of a few hundred bytes.
It opens on H.264 and you can change it. Matroska is a container rather than a codec — an EBML structure that can carry many different video, audio and subtitle streams — so the dropdown offers twenty-one choices including H.265, VP9, AV1, MPEG-4, Xvid, Theora, MJPEG and several legacy Windows and Flash codecs. For a static frame H.264 is a sensible default: it is the most widely decoded of the set and stores an unchanging picture very efficiently.
Because Background Color defaults to White when the source is an image, which differs from the black letterbox bars you get when the source is a video. The colour fills any part of the output frame the picture does not cover — so if your still is 4:3 and you target a 16:9 fixed resolution, you get white pillarbox bars unless you change the dropdown. Black, plus twenty-three other colours, is one click away.
Because Matroska is an open, extensible container with no licensing entanglements and a genuine standards document behind it — RFC 9559, published by the IETF in October 2024 as a Proposed Standard, built on EBML from RFC 8794. It handles multiple audio, subtitle and video tracks plus chapters more gracefully than MP4, which makes it a good archival or editing container. MP4 is the better answer whenever playback matters more than flexibility, because browsers and phones play it natively.
Yes, within limits. Add them all, leave Merge strategy on "Merge images", and each picture is held for the Duration you set, one after another. What you cannot do is give different pictures different durations, or time them against a frame rate — every frame gets the same hold. For anything more expressive than a fixed-interval slideshow, assemble it in an editor.
Yes, and it is the most effective lever available here, more so than the quality preset. Fewer pixels means less to encode in that first keyframe, which is where nearly all the bytes live. Note that the resolution controls behave differently from each other: "Fixed Resolutions" gives you an explicit width and height from a list, while "Preset Resolutions" sets the height only and lets the width follow the source aspect ratio.
Because a PPM cannot carry a colour profile — its header is only a magic number, width, height and maxval, and the specification defines the samples against the ITU-R BT.709 transfer function. Video encoding then converts RGB to a subsampled YCbCr representation, which is a genuine change of colour model rather than a rounding error. If your pipeline worked in a wider gamut, convert to sRGB before writing the pixmap.
Your pixmap is uploaded over an encrypted connection and encoded on our servers. Files are deleted automatically after a few hours, there is no sign-up and no watermark, and nothing is shared or made public.