multifilesink

multifilesink — Write buffers to a sequentially named set of files

Synopsis

struct              GstMultiFileSink;
enum                GstMultiFileSinkNext;

Object Hierarchy

  GObject
   +----GInitiallyUnowned
         +----GstObject
               +----GstElement
                     +----GstBaseSink
                           +----GstMultiFileSink

Properties

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

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"

Last reviewed on 2009-09-11 (0.10.17)

Synopsis

Element Information

plugin

multifile

author

David Schleef <ds@schleef.org>

class

Sink/File

Element Pads

name

sink

direction

sink

presence

always

details

ANY

Details

struct GstMultiFileSink

struct GstMultiFileSink;


enum GstMultiFileSinkNext

typedef enum {
  GST_MULTI_FILE_SINK_NEXT_BUFFER,
  GST_MULTI_FILE_SINK_NEXT_DISCONT,
  GST_MULTI_FILE_SINK_NEXT_KEY_FRAME,
  GST_MULTI_FILE_SINK_NEXT_KEY_UNIT_EVENT,
  GST_MULTI_FILE_SINK_NEXT_MAX_SIZE
} GstMultiFileSinkNext;

File splitting modes.

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 (Since: 0.10.31)

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 (Since: 0.10.31)

Property Details

The "location" property

  "location"                 gchar*                : Read / Write

Location of the file to write.

Default value: NULL


The "index" property

  "index"                    gint                  : Read / Write

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

Allowed values: >= 0

Default value: 0


The "next-file" property

  "next-file"                GstMultiFileSinkNext  : Read / Write

When to start a new file.

Default value: New file for each buffer

Since 0.10.17


The "post-messages" property

  "post-messages"            gboolean              : Read / Write

Post a message on the GstBus for each file.

Default value: FALSE

Since 0.10.17


The "max-files" property

  "max-files"                guint                 : Read / Write

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.

Default value: 0

Since 0.10.31


The "max-file-size" property

  "max-file-size"            guint64               : Read / Write

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

Default value: 2147483648

Since 0.10.31

See Also

GstFileSrc