## mpeg2enc mpeg2enc — High-quality MPEG-1/2 video encoder |

## Synopsis

                        GstMpeg2enc;

## Implemented Interfaces

GstMpeg2enc implements GstPreset.

## Properties

      "altscan-mpeg2"            gboolean              : Read / Write
      "aspect"                   GstMpeg2encAspect     : Read / Write
      "b-per-refframe"           gint                  : Read / Write
      "bitrate"                  gint                  : Read / Write
      "bufsize"                  gint                  : Read / Write
      "closed-gop"               gboolean              : Read / Write
      "constraints"              gboolean              : Read / Write
      "correct-svcd-hds"         gboolean              : Read / Write
      "dualprime"                gboolean              : Read / Write
      "dummy-svcd-sof"           gboolean              : Read / Write
      "force-b-b-p"              gboolean              : Read / Write
      "format"                   GstMpeg2encFormat     : Read / Write
      "framerate"                GstMpeg2encFramerate  : Read / Write
      "interlace-mode"           GstMpeg2encInterlaceMode  : Read / Write
      "intra-dc-prec"            gint                  : Read / Write
      "keep-hf"                  gboolean              : Read / Write
      "max-gop-size"             gint                  : Read / Write
      "min-gop-size"             gint                  : Read / Write
      "motion-search-radius"     gint                  : Read / Write
      "non-video-bitrate"        gint                  : Read / Write
      "norm"                     GstMpeg2encVideoNorm  : Read / Write
      "playback-field-order"     GstMpeg2encPlaybackFieldOrders  : Read / Write
      "pulldown-3-2"             gboolean              : Read / Write
      "quant-matrix"             GstMpeg2encQuantisationMatrix  : Read / Write
      "quant-reduction-max-var"  gfloat                : Read / Write
      "quantisation"             gint                  : Read / Write
      "quantisation-reduction"   gfloat                : Read / Write
      "reduce-hf"                gfloat                : Read / Write
      "reduction-2x2"            gint                  : Read / Write
      "reduction-4x4"            gint                  : Read / Write
      "sequence-header-every-gop" gboolean              : Read / Write
      "sequence-length"          gint                  : Read / Write
      "unit-coeff-elim"          gint                  : Read / Write
      "vcd-still-size"           gint                  : Read / Write

## Description

## Synopsis

### Element Information

plugin | mpeg2enc
author | Andrew Stevens <andrew.stevens@nexgo.de> Ronald Bultje <rbultje@ronald.bitfreak.net>
class | Codec/Encoder/Video

### Element Pads

name | sink
direction | sink
presence | always
details | video/x-raw, format=(string){ I420 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction){ 24000/1001, 24/1, 25/1, 30000/1001, 30/1, 50/1, 60000/1001 }

name | src
direction | source
presence | always
details | video/mpeg, systemstream=(boolean)false, mpegversion=(int){ 1, 2 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction){ 24000/1001, 24/1, 25/1, 30000/1001, 30/1, 50/1, 60000/1001 }

## Details

### GstMpeg2enc

    typedef struct {
      GstElement parent;

      /* pads */
      GstPad *sinkpad, *srcpad;

      /* video info for in caps */
      GstVideoInfo vinfo;

      /* options wrapper */
      GstMpeg2EncOptions *options;

      /* general encoding object (contains rest) */
      GstMpeg2Encoder *encoder;

      /* lock for syncing with encoding task */
      GMutex tlock;
      /* with TLOCK */
      /* signals counterpart thread that something changed;
       * buffer ready for task or buffer has been processed */
      GCond cond;
      /* seen eos */
      gboolean eos;
      /* flowreturn obtained by encoding task */
      GstFlowReturn srcresult;
      /* buffer for encoding task */
      GstBuffer *buffer;
      /* timestamps for output */
      GQueue *time;
    } GstMpeg2enc;

## Property Details

### The `"altscan-mpeg2"` property

      "altscan-mpeg2"            gboolean              : Read / Write

Alternate MPEG-2 block scanning. Disabling this might make buggy players play SVCD streams.

Default value: TRUE

### The `"aspect"` property

      "aspect"                   GstMpeg2encAspect     : Read / Write

Display aspect ratio.

Default value: Deduce from input

### The `"b-per-refframe"` property

      "b-per-refframe"           gint                  : Read / Write

Number of B frames between each I/P frame.

Allowed values: [0,2]

Default value: 0

### The `"bitrate"` property

      "bitrate"                  gint                  : Read / Write

Compressed video bitrate (kbps).

Allowed values: [0,10000]

Default value: 1125

### The `"bufsize"` property

      "bufsize"                  gint                  : Read / Write

Target decoders video buffer size (kB) (default depends on format).

Allowed values: [20,4000]

Default value: 46

### The `"closed-gop"` property

      "closed-gop"               gboolean              : Read / Write

All Group-of-Pictures are closed (for multi-angle DVDs).

Default value: FALSE

### The `"constraints"` property

      "constraints"              gboolean              : Read / Write

Use strict video resolution and bitrate checks.

Default value: TRUE

### The `"correct-svcd-hds"` property

      "correct-svcd-hds"         gboolean              : Read / Write

Force SVCD width to 480 instead of 540/720.

Default value: FALSE

### The `"dualprime"` property

      "dualprime"                gboolean              : Read / Write

Dual Prime Motion Estimation Mode for MPEG-2 I/P-frame only streams. Quite some players do not support this.

Default value: FALSE

### The `"dummy-svcd-sof"` property

      "dummy-svcd-sof"           gboolean              : Read / Write

Generate dummy SVCD scan-data (for vcdimager).

Default value: TRUE

### The `"force-b-b-p"` property

      "force-b-b-p"              gboolean              : Read / Write

Force two B frames between I/P frames when closing GOP boundaries.

Default value: FALSE

### The `"format"` property

      "format"                   GstMpeg2encFormat     : Read / Write

Encoding profile format.

Default value: Generic MPEG-1

### The `"framerate"` property

      "framerate"                GstMpeg2encFramerate  : Read / Write

Output framerate.

Default value: Same as input

### The `"interlace-mode"` property

      "interlace-mode"           GstMpeg2encInterlaceMode  : Read / Write

MPEG-2 motion estimation and encoding modes.

Default value: Progressive

### The `"intra-dc-prec"` property

      "intra-dc-prec"            gint                  : Read / Write

Number of bits precision for DC (base colour) in MPEG-2 blocks.

Allowed values: [8,11]

Default value: 9

### The `"keep-hf"` property

      "keep-hf"                  gboolean              : Read / Write

Maximize high-frequency resolution (for high-quality sources).

Default value: FALSE

### The `"max-gop-size"` property

      "max-gop-size"             gint                  : Read / Write

Maximal size per Group-of-Pictures (-1=default).

Allowed values: [G_MAXULONG,250]

Default value: -1

### The `"min-gop-size"` property

      "min-gop-size"             gint                  : Read / Write

Minimal size per Group-of-Pictures (-1=default).

Allowed values: [G_MAXULONG,250]

Default value: -1

### The `"motion-search-radius"` property

      "motion-search-radius"     gint                  : Read / Write

Motion compensation search radius.

Allowed values: [0,32]

Default value: 16

### The `"non-video-bitrate"` property

      "non-video-bitrate"        gint                  : Read / Write

Assumed bitrate of non-video for sequence splitting (kbps).

Allowed values: [0,10000]

Default value: 0

### The `"norm"` property

      "norm"                     GstMpeg2encVideoNorm  : Read / Write

Tag output for specific video norm.

Default value: Unspecified

### The `"playback-field-order"` property

      "playback-field-order"     GstMpeg2encPlaybackFieldOrders  : Read / Write

Force specific playback field order.

Default value: Unspecified

### The `"pulldown-3-2"` property

      "pulldown-3-2"             gboolean              : Read / Write

Generate header flags for 3-2 pull down 24fps movies.

Default value: FALSE

### The `"quant-matrix"` property

      "quant-matrix"             GstMpeg2encQuantisationMatrix  : Read / Write

Quantisation matrix to use for encoding.

Default value: Default

### The `"quant-reduction-max-var"` property

      "quant-reduction-max-var"  gfloat                : Read / Write

Maximal luma variance below which quantisation boost is used.

Allowed values: [0,2500]

Default value: 100

### The `"quantisation"` property

      "quantisation"             gint                  : Read / Write

Quantisation factor (-1=cbr, 0=default, 1=best, 31=worst).

Allowed values: [G_MAXULONG,31]

Default value: 0

### The `"quantisation-reduction"` property

      "quantisation-reduction"   gfloat                : Read / Write

Max. quantisation reduction for highly active blocks.

Allowed values: [-4,10]

Default value: 0

### The `"reduce-hf"` property

      "reduce-hf"                gfloat                : Read / Write

How much to reduce high-frequency resolution (by increasing quantisation).

Allowed values: [0,2]

Default value: 0

### The `"reduction-2x2"` property

      "reduction-2x2"            gint                  : Read / Write

Reduction factor for 2x2 subsampled candidate motion estimates (1=max. quality, 4=max. speed).

Allowed values: [1,4]

Default value: 3

### The `"reduction-4x4"` property

      "reduction-4x4"            gint                  : Read / Write

Reduction factor for 4x4 subsampled candidate motion estimates (1=max. quality, 4=max. speed).

Allowed values: [1,4]

Default value: 2

### The `"sequence-header-every-gop"` property

      "sequence-header-every-gop" gboolean              : Read / Write

Include a sequence header in every GOP.

Default value: FALSE

### The `"sequence-length"` property

      "sequence-length"          gint                  : Read / Write

Place a sequence boundary after each <num> MB (0=disable).

Allowed values: [0,10240]

Default value: 0

### The `"unit-coeff-elim"` property

      "unit-coeff-elim"          gint                  : Read / Write

How agressively small-unit picture blocks should be skipped.

Allowed values: [-40,40]

Default value: 0

### The `"vcd-still-size"` property

      "vcd-still-size"           gint                  : Read / Write

Size of VCD stills (in KB).

Allowed values: [0,512]

Default value: 0