## multifilesink

multifilesink — Write buffers to a sequentially named set of files

## Properties

gchar * | location | Read / Write
gint | index | Read / Write
GstMultiFileSinkNext | next-file | Read / Write
gboolean | post-messages | Read / Write
guint | max-files | Read / Write
guint64 | max-file-size | Read / Write

## Types and Values

struct | GstMultiFileSink
enum | GstMultiFileSinkNext

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GstObject
                ╰── GstElement
                    ╰── GstBaseSink
                        ╰── GstMultiFileSink

## Description

Write incoming data to a series of sequentially-named files.

The filename property should contain a string with a %d placeholder that will be substituted with the index for each filename.

If the “post-messages” property is TRUE, it sends an application message named

`"GstMultiFileSink"` after writing each

buffer.

The message's structure contains these fields:

- gchar * `"filename"`: the filename where the buffer was written.

- gint `"index"`: the index of the buffer.

- GstClockTime `"timestamp"`: the timestamp of the buffer.

- GstClockTime `"stream-time"`: the stream time of the buffer.

- GstClockTime `"running-time"`: the running_time of the buffer.

- GstClockTime `"duration"`: the duration of the buffer.

- guint64 `"offset"`: the offset of the buffer that triggered the message.

- guint64 `"offset-end"`: the offset-end of the buffer that triggered the message.

### Example launch line

    1
    2

    gst-launch-1.0 audiotestsrc ! multifilesink
    gst-launch-1.0 videotestsrc ! multifilesink post-messages=true filename="frame%d"

## Synopsis

### Element Information

plugin | multifile
author | David Schleef <ds@schleef.org>
class | Sink/File

### Element Pads

name | sink
direction | sink
presence | always
details | ANY

## Functions

## Types and Values

### struct GstMultiFileSink

    struct GstMultiFileSink;

### enum GstMultiFileSinkNext

File splitting modes.

#### Members

GST_MULTI_FILE_SINK_NEXT_BUFFER | New file for each buffer |
GST_MULTI_FILE_SINK_NEXT_DISCONT | New file after each discontinuity |
GST_MULTI_FILE_SINK_NEXT_KEY_FRAME | New file at each key frame (Useful for MPEG-TS segmenting) |
GST_MULTI_FILE_SINK_NEXT_KEY_UNIT_EVENT | New file after a force key unit event |
GST_MULTI_FILE_SINK_NEXT_MAX_SIZE | New file when the configured maximum file size would be exceeded with the next buffer or buffer list |

## Property Details

### The `“location”` property

      “location”                 gchar *

Location of the file to write.

Flags: Read / Write

Default value: NULL

### The `“index”` property

      “index”                    gint

Index to use with location property to create file names. The index is incremented by one for each buffer written.

Flags: Read / Write

Allowed values: >= 0

Default value: 0

### The `“next-file”` property

      “next-file”                GstMultiFileSinkNext

When to start a new file.

Flags: Read / Write

Default value: New file for each buffer

### The `“post-messages”` property

      “post-messages”            gboolean

Post a message on the GstBus for each file.

Flags: Read / Write

Default value: FALSE

### The `“max-files”` property

      “max-files”                guint

Maximum number of files to keep on disk. Once the maximum is reached, old files start to be deleted to make room for new ones.

Flags: Read / Write

Default value: 0

### The `“max-file-size”` property

      “max-file-size”            guint64

Maximum file size before starting a new file in max-size mode.

Flags: Read / Write

Default value: 2147483648

## See Also

GstFileSrc