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

## Synopsis

                        GstMplex;

## Object Hierarchy

      GObject
       +----GstObject
             +----GstElement
                   +----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.

## Synopsis

### Element Information

plugin | mplex
author | Andrew Stevens <andrew.stevens@nexgo.de> Ronald Bultje <rbultje@ronald.bitfreak.net> Mark Nauwelaerts <mnauw@users.sourceforge.net
class | Codec/Muxer

### Element Pads

name | audio_%d
direction | sink
presence | request
details | audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], channels=(int)[ 1, 8 ], rate=(int)[ 8000, 96000 ]
| audio/x-ac3, channels=(int)[ 1, 8 ], rate=(int)[ 8000, 96000 ]
| audio/x-dts
| audio/x-raw-int, endianness=(int)4321, signed=(boolean)true, width=(int){ 16, 20, 24 }, depth=(int){ 16, 20, 24 }, rate=(int){ 48000, 96000 }, channels=(int)[ 1, 6 ]

name | video_%d
direction | sink
presence | request
details | video/mpeg, mpegversion=(int){ 1, 2 }, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

name | src
direction | source
presence | always
details | video/mpeg, systemstream=(boolean)true

## Details

### GstMplex

    typedef struct _GstMplex 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