Initializing... drag & drop files here
Supports: XVID
Xvid is an open-source MPEG-4 Part 2 Advanced Simple Profile codec, released in 2001 and almost always wrapped in an AVI container. PPM (Portable Pixmap, P6) is the opposite end of the format spectrum: an uncompressed raw RGB raster with a tiny ASCII header, defined by the Netpbm project Jef Poskanzer started in 1988. Converting from Xvid to PPM gives you bit-exact pixel data that any program can parse in a few lines of code without an image library.
pamscale, pambrighten, ppmhist) and Python libraries like netpbmfile and Pillow ingest PPM directly, making it a natural intermediate when chaining shell utilities or research code.tesseract or scientific OCR, PPM bypasses any compression artifact a JPEG re-encode would introduce.| Property | Xvid (AVI) | PPM (P6) |
|---|---|---|
| Type | Inter-frame video codec | Single-image raster |
| Standard | MPEG-4 Part 2 ASP | Netpbm (Poskanzer, 1988+) |
| Compression | Lossy DCT + motion compensation | None — raw RGB |
| Color | YCbCr 4:2:0, 8-bit | RGB, 8 or 16 bits per channel |
| Header | RIFF AVI + Xvid bitstream | ASCII: P6 W H maxval\n then raster |
| Typical bitrate | 700 kbps – 4 Mbps for SD/HD | n/a (one frame at a time) |
| Patent status | US patents on MPEG-4 ASP expired November 2023 | Public-domain spec |
| Browser playback | Limited — needs plugin or transcode | None native; viewers like IrfanView, GIMP, ImageMagick |
| Best for | Watching, archiving compressed video | Pixel-exact frame analysis, pipelines |
A 1080p (1920×1080) frame illustrates how bit depth and resolution drive PPM file size. PPM stores three samples per pixel with no compression, so size is roughly width × height × bytes-per-sample × 3 plus a tiny header.
| Bit depth | Maxval | Bytes/channel | 1080p frame size | Use when |
|---|---|---|---|---|
| 1-bit (B&W) | 1 | n/a (PBM-style) | ~260 KB | Thresholded masks, OCR pre-processing |
| 8-bit (Recommended) | 255 | 1 | ~6.2 MB | General pipelines, Netpbm tools, OpenCV |
| 16-bit (High Precision) | 65535 | 2 | ~12.4 MB | HDR, scientific imaging, 48-bit color print prep |
For batches of frames, reach for 8-bit unless your downstream tool truly needs the extra precision — 16-bit doubles every output and most consumer Xvid sources are 8-bit YCbCr to begin with.
Xvid is just the codec — the bitstream that compresses video using MPEG-4 ASP. AVI (Audio Video Interleave) became the dominant container for Xvid because, when Xvid forked from the OpenDivX project in 2001, AVI was the most widely supported wrapper on Windows and consumer DVD players. Xvid streams can also live in MKV or MP4, but if you have a .avi file from a camcorder, ripping site, or older archive, the codec inside is overwhelmingly likely to be Xvid or DivX.
All four are Netpbm formats. PBM (Portable Bitmap) is 1-bit black and white. PGM (Portable Graymap) is grayscale up to 16 bits per pixel. PPM (Portable Pixmap) is RGB color, 8 or 16 bits per channel — what this tool produces. PAM (Portable Arbitrary Map), introduced in 2000, generalizes the family and adds an alpha channel. If you want transparency, you cannot use PPM; export to PNG instead.
P3 stores pixel values as ASCII decimals separated by whitespace — human-readable but bulky. P6 stores the same pixels as raw bytes after the header — typically 3-5x smaller and the de facto binary form. xconvert produces P6, which is what tools like ImageMagick, GIMP, OpenCV, and netpbmfile expect by default.
Multiple Screenshots samples the video at a configurable interval (every N frames or every N seconds), which is what you want for thumbnails or training-data subsampling. Pulling every single frame of a 30 fps clip means thousands of multi-megabyte PPMs, which the browser-based pipeline isn't sized for. For an exhaustive frame-by-frame export, the FFmpeg pattern ffmpeg -i input.avi frame_%04d.ppm is the right tool — but for a representative set of stills, Multiple Screenshots is the lighter path.
PPM is uncompressed and the Xvid clip you started with is heavily compressed — typically 10-50x the original raw bitrate. A 700 kbps Xvid AVI playing 1920×1080 at 30 fps is decoding to roughly 1.5 Gbps of raw RGB internally; one second of frames at 8-bit PPM is ~186 MB. If size matters more than byte-exact pixels, export to Xvid to PNG (lossless but compressed) or Xvid to JPG (lossy, much smaller).
No. PPM stores only red, green, and blue samples per pixel. If you need alpha, the right Netpbm format is PAM, or use PNG. We don't currently emit PAM; export to PNG and treat any background-removal step separately.
The Netpbm spec recommends ITU-R BT.709 with gamma 2.2 for PPM samples, and that is the most common convention. The output you get is an RGB raster decoded from the Xvid YCbCr 4:2:0 stream — color accuracy will match what a reference player like VLC or MPV shows for the same frame. For strict color-managed workflows, treat the output as sRGB unless your source is tagged otherwise.
The US patents covering MPEG-4 Part 2 Advanced Simple Profile expired in November 2023, so for users in the United States there is no longer an MPEG-LA royalty obligation for decoding Xvid. A small number of patents remain in other jurisdictions (e.g. Brazil). Xvid the project itself has always been GPLv2 free software.
.divx or generic .avi instead of an Xvid file?DivX and Xvid both implement MPEG-4 ASP and are largely interchangeable from a decoding standpoint — both stream types extract to PPM the same way. If your file is plain AVI with an unknown codec, this tool will still attempt extraction; for non-Xvid AVIs the closer match is AVI to PPM, and for modern containers see MP4 to PPM. Going the other direction, PPM to PNG and PPM to JPG re-pack PPM stills into compressed image formats.