Convert mpeg2dec pgm and pgmpipe output to YUV4MPEG2
add an example, a script, a trick and tips
mpeg2dec -s -o pgmpipe file.mpg | pgmtoy4m -a 10:11 -r 24000:1001
-i b | yuvplay
mpeg2dec -s -o pgm file.mpg
cat *.pgm | pgmtoy4m -r 30000:1001 -i t | yuvplay
repacks the PGM output from mpeg2dec into YUV4MPEG2
4:2:0p. No actual changes to the data are made. The data is
unpacked from the quasi-PGM format and placed in YUV4MPEG2
format with the specified sample aspect, frame rate and
field order. Output must be either to a pipe or a file,
leaving stdout as a terminal will elicit an error and the
program will exit.
accepts the following options:
Set verbosity level. (default:
Print a usage summary and exit.
Set the interlacing mode. Top
field first (t), bottom field first (b) or progressive/none
(p). (default: t)
Set the sample aspect ratio.
Set the frame rate. (default:
This program is specifically designed to work with the output of
mpeg2dec and is NOT a general PGM (NetPBM) tool!
From the introduction in the source file:
* Note: mpeg2dec uses a variation of the PGM format -
they’re really not
* "Grey Maps" but rather a catenation of the 420P data (commonly
* "YUV"). The type is P5 ("raw") and the number of rows is
* the total of the Y’, Cb and Cr heights. The Cb and Cr
data is "joined"
* together. After the Y’ rows you have 1 row of Cb and 1
row of Cr per
* "row" of PGM data.
* NOTE: You MAY need to know the field order (top/bottom field
* sample aspect ratio and frame rate because the PGM format
* none of that information available!
none known at the present time.
was written by Steven Schultz (sms at 2bsd dot com).