Convert YUV4MPEG2 stream to PPM images
see also :
ppmtoy4m - mpeg2enc - lav2yuv - pnmsplit
add an example, a script, a trick and tips
To turn the first 15 frames of an (MJPEG or DV) AVI file into
individual PPM files:
lav2yuv -f 15 your-video.avi | y4mtoppm | pnmsplit -
converts a YUV4MPEG2 stream into a sequence of raw PPM
Output is to
stdout (but feel free to have the shell redirect to a
Input is read
from stdin, like all other YUV4MPEG2 filters and tools.
YUV4MPEG2 streams contain frames using the Y’CbCr
colorspace (ITU-R BT.601). y4mtoppm will convert each
pixel to the usual R’G’B’ colorspace used
for computer graphics.
streams may (often!) have subsampled chroma planes.
y4mtoppm can upsample "4:2:0 JPEG" streams
using a simple, lousy algorithm. Better results will be
obtained using a filters such as y4mscaler(1) which
are capable of general-purpose subsampling operations.
y4mtoppm will fail on streams which have chroma
subsampling modes other than 4:4:4 or 4:2:0-JPEG.
streams, these operations are performed on each field
individually. Fields can be output as separate PPM images in
time-order (default), or interleaved into full-frame
If multiple PPM
images are generated, they are simply output one after
another. If you want to turn such a "multi-image"
PPM stream/file into individual files, use pnmsplit.
(Some PNM filters can process multi-image files/streams;
however, many written before June 2000 will only process the
and ppmtoy4m are inverses of each other; you can pipe
the output of one into the other, and vice-versa. Note that
the colorspace (and subsampling) operations are lossy in
both directions. And, when converting to PPM, information on
interlacing and sample aspect ratio is lost (but can be
reconstructed by supplying command-line arguments to
accepts the following options:
For interlaced streams, output a single PPM image for
each frame, containing two interleaved fields. (Otherwise,
two PPM images will be generated for each frame; one per
Set verbosity level.
0 = warnings and errors only.
1 = add informative messages, too.
2 = add chatty debugging message, too.
pnm, ppmtoy4m , mjpegtools,
mpeg2enc , lav2yuv , pnmsplit ,
This man page
was written by Matt Marjanovic.
If you have questions, remarks, problems or you just want to
contact the developers, the main mailing list for the
For more info, see our website at