Initializing... drag & drop files here
Supports: PPM
A .ppm is a Netpbm Portable Pixmap: about the simplest colour image file that exists, a short ASCII header followed by RGB samples with no compression and no cleverness of any kind. Renderers, ray tracers, scientific instruments and computer-vision code write them because emitting one takes a dozen lines and reading one takes fewer.
A .ts is the opposite kind of object — an MPEG-2 Transport Stream, standardised as ISO/IEC 13818-1 and also published as ITU-T H.222.0, designed to survive lossy transmission by chopping everything into fixed-size packets. Converting between them produces a short video clip that holds your pixmap on screen for a duration you set, which is what a broadcast slide, a test pattern for a playout chain, or an HLS-adjacent pipeline asks for when it will not take a still image.
| Property | Value |
|---|---|
| Full name | Portable Pixmap, part of the Netpbm family alongside PBM, PGM and PNM |
| Magic number | P6 for the binary "raw" variant, P3 for the ASCII "plain" variant — both accepted here |
| Header | Magic number, width, height and maxval as whitespace-separated ASCII |
| Maxval | Must be greater than zero and less than 65536; 255 is the conventional choice |
| Bytes per sample | One if maxval is below 256, two otherwise |
| Channels | Three — red, green, blue. There is no alpha channel in PPM |
| Compression | None whatsoever |
| Colour convention | The specification defines samples as nonlinear, following the ITU-R BT.709 gamma transfer function; sRGB is a common variation in practice |
| Typical size | A 1920 x 1080 8-bit pixmap measured 6,220,817 bytes here — the 6,220,800-byte payload plus a 17-byte header |
Those last two rows explain most of what surprises people. A 16-bit pixmap of the same picture came to 12,441,619 bytes, and the ASCII P3 variant of it to 35,719,699 bytes, because plain PPM writes every sample as decimal digits with separators. All three decode identically here; they just take very different amounts of time to upload.
| Property | Value |
|---|---|
| Container | MPEG-2 Transport Stream, ISO/IEC 13818-1 / ITU-T H.222.0 |
| Packet framing | Plain 188-byte packets, sync byte 0x47 at offset 0. A converted file we checked began 47 40 11 10 … and its length was an exact multiple of 188 |
| Video codec | H.264 by default; H.265, MPEG-2, MPEG-4, Xvid, DivX and MPEG-1 also listed |
| Frame rate | One frame per second, fixed. There is no frame-rate control on this route |
| Frames | One per second of the Image Duration you choose |
| Audio | None — no stream at all, and the Audio Codec control does not render |
| B-frames | Disabled; identical frames gain nothing from them |
| Pixel format | yuv420p, pinned for player compatibility |
| Frame size ceiling | 4096 pixels on the long edge, applied before encoding even on "Keep original" |
P3 and P6 files are read, and several can be queued at once — Merge strategy opens on Merge images, which combines them into one clip, with Video per image writing one file each..ts. Files upload over an encrypted connection, are encoded on our servers, and are deleted automatically after a few hours — no sign-up, no watermark.An uncompressed 1920 x 1080 pixmap is a little over six megabytes for one picture. Encoding the same picture into a five-second transport stream at the default quality gave us 351,748 bytes — under six per cent of the 8-bit pixmap's size, for five seconds of video rather than a single frame.
Two things are happening. The first is simply that H.264 compresses and PPM does not. The second is the one-frame-per-second constraint combined with inter-frame prediction: the first frame carries essentially all the data and each frame after it is a "nothing changed" delta costing almost nothing. That makes runtime nearly free — extending the clip mostly adds near-empty frames — so choose the duration your project actually needs and spend your attention on resolution instead, which is where the bytes genuinely live.
It also means the 4096-pixel ceiling is rarely a problem on this route. Most pixmaps come out of a renderer at a frame size somebody chose deliberately, and unless that was a very large print render, nothing gets clamped.
P3) pixmaps as well as binary ones?Yes. Both variants are decoded, and the resulting video is identical — the magic number only changes how the samples were written to disk, not what they mean. The practical difference is size: the ASCII form writes every sample as decimal digits with whitespace between them, so the same 1920 x 1080 picture that occupies about 6 MB as P6 occupies roughly 36 MB as P3. Since upload time is the slow part of this job, converting to P6 locally before uploading is worth doing on a large batch.
Not into the video. Sixteen-bit PPM is legal — the specification allows any maxval up to 65535, with two bytes per sample above 255 — and the file is read correctly, but the encoder is pinned to the 8-bit yuv420p pixel format for player compatibility, so the extra precision is quantised away. If you need to preserve depth, keep the pixmap or convert it to a still format that carries 16 bits, such as PPM to TIFF with its Compression Type set to LZW rather than the lossy JPEG default. The video route is a delivery step, not an archival one.
Because every frame is the same picture, so encoding twenty-five identical copies per second would multiply the file size for no visible benefit. The pipeline stores one picture per second and holds it, which is why a ten-second clip is barely larger than a five-second one. There is no frame-rate control on this page. If an editor or ingest system rejects one-frame-per-second material — some do — re-encode the finished .ts at a conventional rate in a desktop tool.
There is none to happen to. PPM has exactly three channels and no alpha, which is one of the reasons it is so simple to write; a renderer that needs to keep transparency writes PAM or PNG instead. The Background Color control still matters on this page, but only for the letterbox area around a picture that does not fill the frame you selected, not for anything inside the picture itself.
Two. MPEG-1 fails outright on this route: it accepts only a fixed set of broadcast frame rates and one frame per second is not among them, so the encoder refuses to open and the job produces no file. MPEG-4, Xvid and DivX are capped at 2048 pixels per side by our encoder settings, so a large pixmap is scaled down again before encoding, and they gain nothing from Quality Preset on a still because that mode needs a source bitrate a still image does not have. Stay on H.264 unless the destination names something else.
Most likely a gamma convention mismatch. The Netpbm specification defines PPM samples as nonlinear values following the BT.709 transfer function, but plenty of code writes linear-light samples into a .ppm and calls it done, because nothing in the header records which convention was used. If your renderer emits linear samples, everything downstream — including this conversion — treats them as though they were already gamma-encoded, and the result reads dark and over-saturated. Apply the gamma conversion in your renderer or with a Netpbm tool before uploading.
Yes, and it is the natural use for a renderer's output. Upload the frames together and keep Merge strategy on Merge images: each pixmap becomes one segment held for the Image Duration you set, and they play back to back in a single transport stream. Note that this is a slideshow rather than an animation — each frame is held for whole seconds. For a real animation from a numbered frame sequence, a much shorter Image Duration (1/24s or 1/30s) gives you one frame per timeline frame instead.
.ts file from this page a broadcast-legal stream?It is a valid transport stream, and VLC, mpv and anything ffmpeg-based will play it. Whether a specific broadcast chain accepts it is a different question, and the answer is usually no without more work: broadcast delivery specs typically require a particular codec profile, a standard frame rate, an embedded audio essence and often a defined bitrate, and this output is a silent one-frame-per-second stream. Treat it as a video file with transport-stream framing rather than as a deliverable.
For general use, yes. It carries the same H.264 video with much less per-packet overhead and plays in browsers, on phones and in every editor — PPM to MP4 is the friendlier file. Transport-stream framing earns its place when the destination specifically wants it: an HLS segmenter, an IPTV or DVB chain, or a workflow where several clips get appended into one continuous stream, which transport streams handle better than most containers because they are just a run of self-contained packets.
Your pixmap is uploaded over an encrypted connection, encoded on our servers, and both the upload and the finished .ts are deleted automatically after a few hours. Nothing is shared or made public, there is no watermark and no account is needed. Because PPM is uncompressed, upload size is the real constraint rather than anything on our side — a batch of large pixmaps is worth converting to a compressed still first if you only need the picture, which PPM to PNG does without any quality loss.