pnmtoy4m - Convert PNM/PAM images to YUV4MPEG2 stream


   pnmtoy4m [options] [ filename ]


   pnmtoy4m  converts  one or more raw PPM, PGM, PBM, or PAM images into a
   YUV4MPEG2 stream ready for further processing  by  other  video  tools.
   These  three  (or  four)  image formats are collectively referred to as
   "PNM images".

   Output is to stdout to facilitate piping to  other  MJPEG  tools.   The
   size of the output frame(s) is determined from the (first) input image.

   Input is a 'raw' format PNM image, read from stdin or from the optional
   filename.  The input  may  contain  multiple  PNM  images  concatenated
   together; pnmtoy4m will read and process them sequentially.  All images
   must have identical size and format.  Input images can  be  interpreted
   as  whole  progressive  frames,  pairs  of  interleaved  fields,  or as
   sequential fields (read in pairs of images)  to  be  output  as  either
   interlaced  or progressive frames.  PPM and PGM images must have 8 bits
   per channel (i.e. 'maxval' must be 255).

   PPM input images should be in the usual R'G'B'  colorspace.   They  are
   converted  to  the Y'CbCr colorspace (ITU-R BT.601) before being output
   to a "4:4:4" (non-subsampled) YUV4MPEG2 stream.  If chroma  subsampling
   is  required  (e.g.  to  4:2:0  for MPEG), the output should be further
   piped through a program such as y4mscaler.

   PGM images should be in the  standard  full-range  ([0,255])  grayscale
   colorspace.   PGM  and  PBM images will be converted to BT.601 luma and
   output as "MONO" (luma-only) YUV4MPEG2 streams.

   The PAM format is a newer superset of  the  PNM  formats;  the  precise
   contents  of  a  PAM  image  is  defined  by  the  TUPLTYPE header tag.
   pnmtoy4m handles  TUPLTYPE  "GRAYSCALE"  as  PGM,  "RGB"  as  PPM,  and
   "RGB_ALPHA"  as PPM with an 8-bit alpha channel.  (The alpha channel is
   converted to BT.601 luma as is appropriate for YUV4MPEG2 streams.)

   pnmtoy4m and y4mtopnm are inverses of each  other;  you  can  pipe  the
   output of one into the other, and vice-versa.  Note that the colorspace
   operations are lossy in both directions.  And, when converting to  PNM,
   information  on interlacing and sample aspect ratio is lost (but can be
   reconstructed by supplying command-line arguments to pnmtoy4m).


   pnmtoy4m accepts the following options:

   -o num
        Frame offset:  skip output of the first 'num'  frames.   (default:

   -n num
        Output  a  total  of  'num' output frames.  Use '0' to specify all
        frames.  (default: 0)

   -B   Interpret data as being  BGR rather than RGB.

   -r   Repeat last input frame until output is complete.  If  '-n  0'  is
        also specified, last input frame will be repeated forever.

   -D x Treat each PNM image as a single (de-interleaved) field instead of
        a full frame.  The argument specifies the interpretation:
         t - the first image is a top-field
         b - the first image is a bottom-field

        With this option, two input images will  be  required  per  output
        frame.   Be  careful:  mismatched "-I" and "-D" options can invert
        the temporal or spatial order of the fields (or both).

   -F n:d
        Set framerate encoded in output stream, as an exact integer ratio.
        (default:  30000:1001)  Common rates are:
         24000:1001 - NTSC 3:2 pulldown converted film
               24:1 - native film
               25:1 - PAL/SECAM
         30000:1001 - NTSC video
               50:1 - PAL field rate
         60000:1001 - NTSC field rate

   -A n:d
        Set  pixel  aspect  ratio  encoded  in  output stream, as an exact
        integer ratio.  (default:  1:1)  Common ratios are:
             1:1  - square pixels (computer graphics)
            10:11 - CCIR-601 NTSC
            59:54 - CCIR-601 PAL

   -I x Set the output interlacing mode, encoded  in  the  output  stream.
        (Default is to match "-D" if given, or 'p' if not.)
         p - progressive, non-interlaced
         t - top/upper-field-first interlaced
         b - bottom/lower-field-first interlaced

   -v [0,1,2]
        Set verbosity level.
         0 = warnings and errors only.
         1 = add informative messages, too.
         2 = add chatty debugging message, too.


   To  convert  a  file  containing  a single PPM file into a stream of 15
   (identical) frames:

        pnmtoy4m -n 15 -r some-image.ppm

   To convert a series of Targa format images (in the  current  directory)
   to a YUV4MPEG2 stream displayed by yuvplay:

        ls *.tga | xargs -n1 tgatoppm | pnmtoy4m | yuvplay


   This manual 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 MJPEG-tools is:

   For more info, see our website at


   pam(5), pbm(5), pgm(5),  pnm(5),  ppm(5),  y4mtopnm(1),  mjpegtools(1),
   mpeg2enc(1), y4mscaler(1), yuv2lav(1), yuvplay(1)


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.

Free Software

Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.

Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.

Free Books

The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.

Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.

Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.