recmpeg(1)

NAME
recmpeg - simple video encoder

SYNOPSIS
recmpeg [options] [output_file] [input_file]

DESCRIPTION
recmpeg is a simple video encoder based on the fame library.

It can encode MPEG-1, MPEG-4 rectangular, and MPEG-4 arbitrary shaped videos.

The input sequence must be provided in uncompressed raw YUV 4:2:0 format (also called YV12). Each frame of the sequence starts from the top left corner to the bottom right, with width*height pixels for the luminance component (Y), and width/2*height/2 for the each of the two chrominance components (U, V), each packed together, in Y, U, V order. Width and height of the sequence are not provided in input file. Thus the input sequence has the following structure:

[ frame 1 Y ][ frame 1 U ][ frame 1 V ][ frame 2 Y ] ...

output_file and/or input_file can be specified but are not required. If no input_file is specified, standard input will be used instead. If no ouput_file is specified, standard output will be used instead.

OPTIONS

--help
    Show usage information.

--verbose
    Show information about the progress of the encoding.

--profile
    Select the profile to use. "mpeg1", "mpeg4" and "mpeg4_shape" are currently supported. When this option is not specified, the default is "mpeg1".

--motion
    Select the motion estimation algorithm to use. "none", "pmvfast" and "fourstep" are currently supported. When this option is not specified, the default is "pmvfast".

--refresh
    Number of frames before outputing a new sequence header. This option is useful for example when broadcasting output to a network to allow users to start decoding in the middle of a sequence. The default is to generate only one sequence header at the beginning of the output stream.

--fps
    Number of frames per second of the input sequence. When not specified, the default is 25. Fractional frame rates are allowed.

--search
    Specifies the search window, in pixel unit, for motion estimation. Small values give better result on slow motion videos, whereas bigger values work better with fast motion. The default is 16 pixels.

--alpha
    Quality of the shape coding in percent. Lower quality will produce smaller bitstream. The default is 100% since shape data is often negligible compared to video data.

--buffer
    Size of the output bitstream buffer. This should be set according to the size of the video being coded. Prediction over a large number of frames and large frame sizes require a greater output buffer. The default is set to 1Mbyte, which should be enough for nearly all videos. The unit is in bytes but Kbytes and Mbytes can be specified by appending a K (resp. an M) to the number (e.g. 4M).

--bitrate
    Use fixed bitrate. The unit is in bits per second but Kbits/s and Mbits/s can be specified by appending a K (resp. an M) to the number (e.g. 4M). When this option is used, quality will vary according to the complexity of the scene, and thus the --quality option becomes irrevelant. The default is to use fixed quality. Note that the actual bitrate after encoding may be slightly different from the one specified here.

--quality
    Quality of the encoded video in percent. The lower quality, the smaller encoded bitstream. When using fixed quality, bitrate may vary depending on the complexity of the scene, thus the --bitrate option becomes irrevelant. The default is to use fixed quality 75%.

--coding
    Specifies the order and type of frames to be coded. Currently supported frame types are 'I' for intra frames (completely coded) and 'P' for predicted frames (estimated from preceding 'I' or 'P' frame). Other types such as 'B' (bidirectionnal) or 'S' (sprite) are *not* yet supported. The default is "I", i.e. intra frames only. Coding must always begin with an I frame, thus "IP" is valid whereas "PI" is not.

--picture
    Specifies the picture size in the sequence. It can be either specified in widthxheight format, or by using names such as CIF (352x288), SIF (352x240) or QCIF (176x144). The default is CIF.

EXAMPLES

recmpeg -v video.mpg video.yuv
    For encoding a simple MPEG-1 video, and see what's going on.

recmpeg -q 50 -P mpeg4 video.cmp video.yuv
    For encoding a simple MPEG-4 video at 50% quality.

recmpeg -P mpeg4_shape video.cmp video.yuv video.seg
    For encoding an MPEG-4 video with shape coding.

recmpeg -c IP video.mpg video.yuv
    For encoding an MPEG-1 video with motion compensation.

RESTRICTIONS
buffer must be large enough to contain encoded data. There is no checking of buffer overflow as this would be too slow. Encoding of B frame is not yet supported.

SEE ALSO
FAME home page at http://fame.sourceforge.net

AUTHOR
The recmpeg utility and FAME library were written by Vivien Chappelier, Thomas Cougnard and Damien Vincent.