# splitmuxsrc

This element reads a set of input files created by the splitmuxsink element containing contiguous elementary streams split across multiple files.

This element is similar to splitfilesrc, except that it recombines the streams in each file part at the demuxed elementary level, rather than as a single larger bytestream.

## Example pipelines

     gst-launch-1.0 splitmuxsrc location=video*.mov ! decodebin ! xvimagesink

Demux each file part and output the video stream as one continuous stream

     gst-launch-1.0 playbin uri="splitmux://path/to/foo.mp4.*"

Play back a set of files created by splitmuxsink

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstBin
                        ╰──splitmuxsrc

## Implemented interfaces

    GstChildProxy
    GstURIHandler

## Factory details

Authors: – Jan Schmidt <jan></jan>

Classification: – `Generic/Bin/Demuxer`

Rank – none

Plugin – multifile

Package – GStreamer Good Plug-ins

## Pad Templates

### `audio_%u`

    ANY

Presence – sometimes

Direction – src

Object type – GstPad

### `subtitle_%u`

    ANY

Presence – sometimes

Direction – src

Object type – GstPad

### `video`

    ANY

Presence – sometimes

Direction – src

Object type – GstPad

### `video_%u`

    ANY

Presence – sometimes

Direction – src

Object type – GstPad

## Signals

### format-location

    GStrv *
    format_location_callback (GstElement * param_0,
                              gpointer udata)

    def format_location_callback (param_0, udata):
        #python callback for the 'format-location' signal

    function format_location_callback(param_0: GstElement * param_0, udata: gpointer udata): {
        // javascript callback for the 'format-location' signal
    }

Parameters:

`param_0` –
No description available
`udata` –
No description available
Returns (GStrv *) –
No description available

Flags: Run Last

## Action Signals

### add-fragment

    g_signal_emit_by_name (splitmux, "add-fragment", filename, offset, duration, &ret);

    ret = splitmux.emit ("add-fragment", filename, offset, duration)

    let ret = splitmux.emit ("add-fragment", filename, offset, duration);

Add a file fragment to the set of parts. If the offset and duration are provided, the file will be placed in the set immediately without loading the file to measure it.

At least one fragment must be ready and available before starting splitmuxsrc, either via this signal or via the location property or format-location signal.

Parameters:

`splitmux` (GstElement *) –

the splitmuxsrc

`filename` (gchararray) –

The fragment filename to add

`offset` (guint64) –

Playback offset for the fragment (can be GST_CLOCK_TIME_NONE)

`duration` (guint64) –

Fragment nominal duration (can be GST_CLOCK_TIME_NONE)

Returns (gboolean) –

A boolean. TRUE if the fragment was successfully appended. FALSE on failure.

Flags: Run Last / Action

Since : 1.26

## Properties

### location

    “location” gchararray

File glob pattern for the input file fragments. Files that match the glob will be sorted and added to the set of fragments to play.

This property is ignored if files are provided via the format-location signal, or add-fragment signal

Flags : Read / Write

Default value : NULL

### num-lookahead

    “num-lookahead” guint

During playback, prepare / open the next N fragments in advance of the playback position.

When used in conjunction with a num-open-fragments limit, that closes fragments that haven't been used recently, lookahead can re-prepare a fragment before it is used, by opening the file and reading file headers and creating internal pads early.

This can help when reading off very slow media by avoiding any data stall at fragment transitions.

Flags : Read / Write

Default value : 1

Since : 1.26

### num-open-fragments

    “num-open-fragments” guint

Upper target for the number of files the splitmuxsrc will try to keep open simultaneously. This limits the number of file handles and threads that will be active.

If num-open-fragments is quite small, a few more files might be open than requested, because of the way splitmuxsrc operates internally.

Flags : Read / Write

Default value : 100

Since : 1.26

The results of the search are