GStreamer Editing Services

The "GStreamer Editing Services" is a library to simplify the creation of multimedia editing applications. Based on the GStreamer multimedia framework and the GNonLin set of plugins, its goals are to suit all types of editing-related applications.

The GStreamer Editing Services are cross-platform and work on most UNIX-like platform as well as Windows. It is released under the GNU Library General Public License (GNU LGPL).

Goals of GStreamer Editing Services

The GStreamer multimedia framework and the accompanying GNonLin set of plugins for non-linear editing offer all the building blocks for:

  • Decoding and encoding to a wide variety of formats, through all the available GStreamer plugins.

  • Easily choosing segments of streams and arranging them through time through the GNonLin set of plugins.

But all those building blocks only offer stream-level access, which results in developers who want to write non-linear editors to write a consequent amount of code to get to the level of non-linear editing notions which are closer and more meaningful for the end-user (and therefore the application).

The GStreamer Editing Services (hereafter GES) aims to fill the gap between GStreamer/GNonLin and the application developer by offering a series of classes to simplify the creation of many kind of editing-related applications.

Architecture

Timeline and TimelinePipeline

The most top-level object encapsulating every other object is the GESTimeline. It is the central object for any editing project.

The GESTimeline is a GstElement. It can therefore be used in any GStreamer pipeline like any other object.

Tracks and Layers

The GESTimeline can contain two types of objects (seen in "Layers and Tracks"):

  • Layers - Corresponds to the user-visible arrangement of clips, and what you primarily interact with as an application developer. A minimalistic timeline would only have one layer, but a more complex editing application could use as many as needed.

  • Tracks - Corresponds to the output streams in GStreamer. A typical GESTimeline, aimed at a video editing application, would have an audio track and a video track. A GESTimeline for an audio editing application would only require an audio track. Multiple layers can be related to each track.

Layers and Tracks

In order to reduce even more the amount of GStreamer interaction the application developer has to deal with, a convenience GstPipeline has been made available specifically for Timelines : GESPipeline.

Subpages:

Initialization – GStreamer editing services initialization functions

GESTimeline – Multimedia timeline

GESLayer – Non-overlapping sequence of GESClip

GESClip – Base Class for objects in a GESLayer

GESPipeline – Convenience GstPipeline for editing.

GESProject – A GESAsset that is used to manage projects

GESEffect – adds an effect build from a parse-launch style bin description to a stream in a GESSourceClip or a GESLayer

Base classes

GESTrack – Composition of objects

GESAsset – Represents usable resources inside the GStreamer Editing Services

GESExtractable Interface – An interface for objects which can be extracted from a GESAsset

GESErrors – GError — Categorized error messages

GESGroup – Class that permits to group GESClip-s in a timeline, letting the user manage it a single GESTimelineElement

gesmetacontainer – An interface for storing meta

GESTextOverlay – render text onto another video stream in a GESLayer

GESFormatter – Timeline saving and loading.

GESTrackElement – Base Class for objects contained in a GESTrack

GES Enumerations – Various enums for the Gstreamer Editing Services

Low level APIs

ges base xml formatter

ges command line formatter

ges effect asset

ges prelude

GES utilities – Convenience methods

ges xml formatter

GESMarkerList – implements a list of markers with metadata asociated to time positions

GESPitiviFormatter – A formatter for the obsolete Pitivi xptv project file format

GESUriClipAsset – A GESAsset subclass specialized in GESUriSource extraction

The results of the search are