The GStreamer FFmpeg plug-in offers a set of elements that rely on the FFmpeg library code in a single plugin.
With GStreamer, developers can add new codecs and filters by writing a simple plugin with a clean, generic interface. The library is released under the LGPL license. One of its key features is its multiplatform support. GStreamer has been ported to a vast range of operating systems, processors, and compilers, including but not limited to Mac OSX, Linux on i86, PPC, ARM using GCC, Microsoft Windows using MS Visual Developer, Solaris on x86 and SPARC using both GCC and Forte, and IBM OS/400.
The library's core is based on a graph-based structure that enables arbitrary pipeline construction. It also utilizes GLib 2.0 object model for object-oriented design and inheritance, among other things. The core library is quite small, consisting of less than 150KB of about 10 K lines of code. It also boasts a pluggable scheduling system that can cope with most pipeline configurations. Furthermore, constructing multi-threaded pipelines is trivial and transparent, thanks to the API's clean and simple design.
GStreamer boasts an intelligent plugin architecture that enables dynamically loaded plugins to provide elements and media types, which are demand-loaded through an XML registry similar to ld.so.cache. Additionally, the element interface handles all known types of sources, filters, and sinks. The library also features a capabilities system that enables element compatibility verification using MIME types and media-specific properties. Its autoplugging capability allows for automatic completion of complex paths through the use of the capabilities system.
Other crucial features of GStreamer include its ability to save pipelines to XML and restore them to a working state. It also has resource-friendly plugins that don't waste RAM. There is an extensive selection of development tools, from a graphical editor that allows for the swift construction and running of pipelines to the gst-launch command-line tool that enables even faster prototyping and testing similar to ecasound. All tools are written as libraries to facilitate easy reuse, and there is a wealth of documentation, including a partially completed manual and plugin writer's guide.
Finally, developers can access the GStreamer API with various programming languages, and there is a large selection of test programs and example code to help developers get started.
Version 0.10.2: N/A