gssink

Write incoming data to a series of sequentially-named remote files on a Google Cloud Storage bucket.

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

If the property is TRUE, it sends an application message named GstGsSink after writing each buffer.

The message's structure contains these fields:

  • gchararray filename: the filename where the buffer was written.
  • gchararray date: the date of the current buffer, NULL if no start date is provided.
  • gint index: 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

gst-launch-1.0 videotestsrc num-buffers=15 ! pngenc ! gssink
object-name="mypath/myframes/frame%05d.png" bucket-name="mybucket"
next-file=buffer post-messages=true

Upload 15 png images into gs://mybucket/mypath/myframes/ where the file

names are frame00000.png, frame00001.png, ..., frame00014.png

gst-launch-1.0 videotestsrc num-buffers=6 ! video/x-raw, framerate=2/1 !
pngenc ! gssink start-date="2020-04-16T08:55:03Z"
object-name="mypath/myframes/im_%s_%03d.png" bucket-name="mybucket"
next-file=buffer post-messages=true

Upload png 6 images into gs://mybucket/mypath/myframes/ where the file

names are im_2020-04-16T08:55:03Z_000.png, im_2020-04-16T08:55:03Z_001.png, im_2020-04-16T08:55:04Z_002.png, im_2020-04-16T08:55:04Z_003.png, im_2020-04-16T08:55:05Z_004.png, im_2020-04-16T08:55:05Z_005.png.

gst-launch-1.0 filesrc location=some_video.mp4 ! gssink
object-name="mypath/myvideos/video.mp4" bucket-name="mybucket" next-file=none

Upload any stream as a single file into Google Cloud Storage. Similar as

filesink in this case. The file is then accessible from: gs://mybucket/mypath/myvideos/video.mp4

See also:

Hierarchy

GObject
    ╰──GInitiallyUnowned
        ╰──GstObject
            ╰──GstElement
                ╰──GstBaseSink
                    ╰──gssink

Factory details

Authors: – Julien Isorce

Classification:Sink/File

Rank – none

Plugin – gs

Package – GStreamer Bad Plug-ins

Pad Templates

sink

ANY

Presencealways

Directionsink

Object typeGstPad


Properties

bucket-name

“bucket-name” gchararray

Name of the Google Cloud Storage bucket.

Flags : Read / Write

Default value : NULL


index

“index” gint

Index to use with location property to create file names.

Flags : Read / Write

Default value : 0


next-file

“next-file” Gs-sink-next *

A Gs-sink-next that specifies when to start a new file.

Flags : Read / Write

Default value : buffer (0)


object-name

“object-name” gchararray

Full path name of the remote file.

Flags : Read / Write

Default value : %%s_%%05d


post-messages

“post-messages” gboolean

Post a message on the GstBus for each file.

Flags : Read / Write

Default value : false


service-account-email

“service-account-email” gchararray

Service Account Email to use for credentials.

Flags : Read / Write

Default value : NULL


start-date

“start-date” gchararray

Start date in iso8601 format.

Flags : Read / Write

Default value : NULL


Named constants

Gs-sink-next

Members

buffer (0) – New file for each buffer
Only one file, no next file (1) – New file for each buffer

The results of the search are