## mplex mplex — High-quality MPEG/DVD/SVCD/VCD video/audio multiplexer |

## Synopsis

                        GstMplex;

## Properties

      "bufsize"                  gint                  : Read / Write
      "format"                   GstMplexFormat        : Read / Write
      "mux-bitrate"              gint                  : Read / Write
      "packets-per-pack"         gint                  : Read / Write
      "sector-size"              gint                  : Read / Write
      "system-headers"           gboolean              : Read / Write
      "vbr"                      gboolean              : Read / Write

## Description

This element is an audio/video multiplexer for MPEG-1/2 video streams and (un)compressed audio streams such as AC3, MPEG layer I/II/III. It is based on the mjpegtools library. Documentation on creating MPEG videos in general can be found in the MJPEG Howto and the man-page of the mplex tool documents the properties of this element, which are shared with the mplex tool.

### Example pipeline

    1
    gst-launch -v videotestsrc num-buffers=1000 ! mpeg2enc ! mplex ! filesink location=videotestsrc.mpg

This example pipeline will encode a test video source to an MPEG1 elementary stream and multiplexes this to an MPEG system stream.

If several streams are being multiplexed, there should (as usual) be a queue in each stream, and due to mplex' buffering the capacities of these may have to be set to a few times the default settings to prevent the pipeline stalling.

## Details

### GstMplex

    typedef struct {
      GstElement parent;

      /* pads */
      GSList *pads;
      GstPad *srcpad;
      guint num_apads, num_vpads;

      /* options wrapper */
      GstMplexJob *job;

      /* lock for syncing */
      GMutex *tlock;
      /* with TLOCK */
      /* muxer writer generated eos */
      gboolean eos;
      /* flowreturn obtained by muxer task */
      GstFlowReturn srcresult;
    } GstMplex;

## Property Details

### The `"bufsize"` property

      "bufsize"                  gint                  : Read / Write

Target decoders video buffer size (kB) [default determined by format if not explicitly set].

Allowed values: [20,4000]

Default value: 46

### The `"format"` property

      "format"                   GstMplexFormat        : Read / Write

Encoding profile format.

Default value: Generic MPEG-1

### The `"mux-bitrate"` property

      "mux-bitrate"              gint                  : Read / Write

Bitrate of output stream in kbps (0 = autodetect).

Allowed values: [0,15360]

Default value: 0

### The `"packets-per-pack"` property

      "packets-per-pack"         gint                  : Read / Write

Number of packets per pack for generic formats.

Allowed values: [1,100]

Default value: 1

### The `"sector-size"` property

      "sector-size"              gint                  : Read / Write

Specify sector size in bytes for generic formats.

Allowed values: [256,16384]

Default value: 2048

### The `"system-headers"` property

      "system-headers"           gboolean              : Read / Write

Create system header in every pack for generic formats.

Default value: FALSE

### The `"vbr"` property

      "vbr"                      gboolean              : Read / Write

Whether the input video stream is variable bitrate.

Default value: FALSE

## See Also

mpeg2enc