PPM to WebM Converter

Convert PPM files to WebM format online. Free, fast, no watermarks.

Initializing... drag & drop files here

Supports: PPM

OptionsAdvanced Options - Our defaults are optimized for the best results. We recommend you keeping the defaults unless you have a specific need.
Show All Options
Merge strategy
Select Merge images to combine all uploaded files into a single video. Use Video per image to create a separate video for each individual file.
Image Duration
Duration
How long each still image is held on screen. This applies to static images — including a static WebP, AVIF or HEIC. It is ignored for animated sources, which keep their own frame timing: GIF, APNG, and an animated WebP, AVIF or HEIC.
Background Color
Background Color
File Compression
Preset
Video resolution

Convert PPM to WebM

A PPM is a raw Netpbm pixmap — the uncompressed RGB dump a renderer, ray tracer or computer-vision script leaves behind — and no browser will display one. WebM is the open, royalty-free web video container that essentially every browser will play. This tool wraps your pixmap into a WebM clip that holds the picture on screen for a duration you pick, so a still from a pipeline becomes something you can embed, autoplay or loop on a page. It is a still-to-video tool: the output is silent, and it does not move unless you upload more than one image.

How to Convert PPM to WebM

  1. Upload Your PPM File: Drop the .ppm on the page or click "Add Files". Both P6 binary and P3 ASCII pixmaps decode. With more than one file the Merge strategy control decides the shape of the result — Merge images (the starting choice) chains them into one clip, Video per image writes one WebM per file.
  2. Pick a Video Codec: The list offers VP9, VP8 and AV1, and VP9 is the one selected. Leave it there unless you have a specific reason — VP9 is the only choice on this page where both the quality controls and the browser support line up, as the table below explains.
  3. Set the Image Duration and Background Color: Image Duration decides how long the still is held, from a single frame at 60 fps up to 10 seconds per frame, starting at 5 seconds. Background Color fills any letterbox area when your image's shape does not match the output frame; it starts on White for image sources, with Black and 23 other swatches available.
  4. Choose Quality and Convert: Under File Compression, leave Quality Preset on "Very High (Recommended)" or switch to Constant Quality and set the CRF slider (16–63, lower is better). Then set Video resolution if you want to rescale, and click Convert. Files upload over an encrypted connection, are processed on our servers, and are deleted automatically after a few hours — no sign-up, no watermark, never shared.

Codec Choice: VP9, VP8 or AV1

All three write a valid .webm, but they do not behave the same way when the source is a single still.

VP9 (selected) VP8 AV1
Encoder used libvpx-vp9 libvpx AV1 encoder
Constant Quality slider Real CRF, 16–63 Renders, but the value never reaches the encoder Real CRF, 16–63
Quality Preset Works Does not reach the encoder Works
Constraint Quality Works — CRF plus a bitrate ceiling The only mode that sets an actual bitrate Works
Compression on a static frame Excellent Noticeably weaker Best, at the cost of encode time
Browser reach Widest of the three inside WebM Widest overall, oldest codec Narrowest — needs a recent browser
Verdict for a still Use this Only for very old playback targets Use when file size matters more than speed

VP8 deserves the warning in that table. The encoder that handles it has no CRF mode at all, so neither the Quality Preset nor the 0–63 slider that renders next to it has any path into the encode — libvpx falls back to its own internal default and logs that it is doing so. What VP8 does honour is a quantiser range (it is bounded rather than targeted) and, if you select Constraint Quality, an explicit bitrate. If a control appears to do nothing on VP8, that is why. Switching to VP9 makes every control on the page live again.

Fixed Behaviour of the Still-to-Video Path

These are properties of the conversion, not settings you can change on this page.

Behaviour Value
Audio None. A pixmap has no audio, so the Audio Codec control is not shown at all
Encode frame rate 1 fps — a still needs no more, and it keeps the file tiny
B-frames Disabled; identical frames gain nothing from them and they add a start-time offset
Image Duration Starts at 5 seconds per frame; range is 1/60 s to 10 s
Maximum frame edge 4096 px — larger pixmaps are downscaled to fit that box before encoding
Letterbox / padding fill The Background Color, White by default for image sources
Bitrate and target-size modes Hidden on this page; only the three quality modes render
Re-encoding Always. There is no passthrough — the image is decoded and re-encoded every time

Frequently Asked Questions

Does the WebM have any motion or sound?

Neither, from a single file. A PPM is one raster with no frames and no audio track, so the output holds that one picture for the Image Duration you chose and writes video only — the Audio Codec control is hidden on this page precisely because there is nothing to encode. Uploading several pixmaps and leaving Merge strategy on Merge images gives you a fixed-dwell slideshow, which is motion of a sort, but there is still no audio and nothing moves within a frame. Pans, zooms and crossfades need a video editor.

Why do the quality controls seem to do nothing when I pick VP8?

Because VP8's encoder has no constant-quality mode. The Quality Preset and the CRF slider both render next to VP8 in the interface, but neither value has a route into libvpx — the encoder simply falls back to its own internal default and logs a line saying so. Only Constraint Quality produces an actual bitrate instruction for VP8. This is the single strongest argument for leaving the codec on VP9, where the preset, the CRF slider and the constraint mode all work as labelled.

Which CRF value should I use for a static frame?

Lower numbers mean higher quality on the 0–63 scale that VP9 and AV1 use. A still frame is unusually easy to encode — there is no motion to predict, so almost the whole budget goes on one keyframe — which means you can afford to be generous. Values in the high teens to mid twenties keep text and hard edges crisp; the high thirties and above start to show blocking around type and thin lines, which is where a slide or diagram falls apart first. If you would rather not think about it, the Quality Preset does the same job with named steps.

Will making the clip longer make the file much bigger?

Barely. At 1 fps with an unchanging picture, every frame after the first is nearly free — the encoder stores a keyframe and then a run of essentially empty inter-frames. Going from a 1-second hold to a 10-second hold adds far less than ten times the bytes. What genuinely drives size here is frame area and quality: halving the resolution removes three quarters of the pixels, and that shows up immediately. If your WebM is too big, lower the Video resolution before you touch the duration.

Where will the WebM actually play?

Very widely. Per current caniuse data, WebM playback covers around 96% of tracked browser usage, with support from Chrome 25, Firefox 28, Edge 79 and Safari 16.0 onward; Internet Explorer never supported it. The gaps you are most likely to meet are older iOS devices, embedded players inside apps, and some smart-TV browsers. If you need something that plays essentially everywhere including old hardware, output PPM to MP4 instead — H.264 in MP4 is the safer universal target.

Can I turn a numbered sequence of PPM render frames into a real video?

Not as a true frame-rate sequence. Uploading frame_0001.ppm, frame_0002.ppm and so on with Merge images plays them in order, but each is held for the same fixed Image Duration and the clips are concatenated — the shortest available dwell is a single frame at 60 fps, which is the closest this page gets to a timeline. That is fine for a slideshow or a step-through of a few states. For genuinely smooth playback of a simulation or render at 24 or 30 fps, encode the numbered sequence directly with FFmpeg, which reads a %04d pattern natively.

Why is there a white border around my image?

Because your pixmap's aspect ratio does not match the frame you asked for, and the converter pads rather than stretches — distorting the picture would be worse. The fill colour comes from the Background Color control, which starts on White for image sources; switching it to Black, or to any of the 23 other swatches, changes the bars. The other fix is to stop the mismatch happening: leave Video resolution on Keep original, or type a Width x Height that matches your source's proportions.

What is the largest PPM I can convert?

Practically, the limit is upload size and time rather than anything about the encode. PPM stores width x height x 3 bytes with no compression — doubled to six bytes per pixel when the header's maxval is 256 or higher — so a 4000 x 3000 pixmap is roughly 36 MB before it contains anything. There is also a hard ceiling inside the conversion: any image larger than 4096 px on its long edge is downscaled to fit that box before encoding, so uploading an enormous pixmap gains you no extra detail in the WebM.

Should I just convert the PPM to an image instead?

Often, yes. If all you want is a picture that a browser or a colleague can open, PPM to PNG is lossless and far smaller than the raw pixmap, and it takes one step. Convert to WebM when the destination genuinely wants video — an autoplaying background, a looping hero element, a slot in an editing timeline, or a platform that accepts video uploads but not images. And if you have several pixmaps and want a short loop that also survives email clients and older chat apps, PPM to GIF is the more compatible, if far less efficient, target.

Rate PPM to WebM Converter Tool

Rating: 4.8 / 5 - 116 reviews