Early days Erik Walthinsen founded the GStreamer project in 1999. Many of its core design ideas came from a research project at the
Oregon Graduate Institute.
Wim Taymans joined the project soon thereafter and greatly expanded on many aspects of the system. Many other software developers have contributed since then. The first major release was 0.1.0 which was announced on 11 January 2001. Not long after, GStreamer picked up its first commercial backer. Towards the end of January 2001, they hired Erik Walthinsen to develop methods for embedding GStreamer in smaller (
cell phone-class) devices. Another RidgeRun employee, Brock A. Frazier, designed the GStreamer logo. RidgeRun later struggled financially and had to lay off its staff, including Erik Walthinsen. GStreamer progress was mostly unaffected. The project released a series of major releases with 0.2.0 coming out in July 2001, 0.4.0 in September 2002, and 0.8.0 in March 2004. During that period the project also changed its versioning strategy and while the first releases were simply new versions, later on the middle number started signifying release series. This meant the project did release a string of 0.6.x and 0.8.x releases which was meant to stay
binary compatible within those release series. Erik Walthinsen more or less left GStreamer development behind during this time, focusing on other ventures. All release series, the project face difficulties. Every series is not very popular in the Linux community mostly because of stability issues and a serious lack of features compared to competing projects like
Xine,
MPlayer, and
VLC. The project also suffers a lack of leadership as Wim Taymans, the project lead since Erik Walthinsen had left, had largely stopped participating.
The 0.10 series In 2004, a new company was founded,
Fluendo, which wanted to use GStreamer to write a streaming server
Flumotion and also provide multimedia solutions for GStreamer. During this time, Fluendo hired most of the core developers including Wim Taymans and attracted the support of companies such as
Nokia and
Intel to bring GStreamer to a professional level and drive community adoption. With Wim Taymans back at the helm, the core of GStreamer was redesigned and became what is the current 0.10.x series, which had its first release (0.10.0) in December 2005. It has maintained
API and
ABI compatibility since. With a new stable core in place, GStreamer gained in popularity in 2006, being used by media players including
Totem,
Rhythmbox and Banshee with many more to follow. It was also adopted by corporations such as
Nokia,
Motorola,
Texas Instruments,
Freescale,
Tandberg, and
Intel. In 2007, most of the core GStreamer developers left Fluendo, including GStreamer maintainer Wim Taymans who went on to co-found
Collabora Multimedia together with other GStreamer veterans, while others joined
Sun Microsystems,
Oblong Industries, and
Songbird. Between June 2012 and August 2014, GStreamer 0.10 was also distributed by
Collabora and
Fluendo as a multiplatform
SDK, on the third-party gstreamer.com website (rather than gstreamer.freedesktop.org for the upstream community project). The goal was to provide application developers with a SDK that would be functionally identical on Windows,
Mac OS X, iOS, and Android. The SDK initiative aimed to facilitate the commercial adoption of the GStreamer project, as it provided a standardized entry point to developing multimedia applications with GStreamer, without needing to build the entire platform by oneself. Users of the SDK also benefited from documentation , tutorials and instructions specific to that SDK.
The 1.x series GStreamer 1.0 was released on September 24, 2012. The 1.x series is parallel installable to GStreamer 0.10 to ease the transition, and provides many architectural advantages over the 0.10 series. Generally speaking, GStreamer 1.0 brought significant improvements for: • Embedded processors support, lower power consumption, offloading work to specialized hardware units (such as
DSPs) • Hardware accelerated video decoding/encoding using
GPUs •
Zero-copy memory management (avoiding unnecessary roundtrips between the CPU and GPU) for better performance and lower power consumption • Dynamic pipelines • API and code cleanups Beyond the technical improvements, the 1.x series is also defined by a new release versioning scheme. As the GStreamer roadmap explains, all 1.x.y versions carry a -1.0 API version suffix and have a stable API/ABI. The API/ABI can only be broken by a new major release series (i.e.: 2.x); however, there are currently no plans for a 2.0 release series. Until then, the new version numbering scheme can be used to predict the intended use of each release. The roadmap cites some examples: • 1.0.0, 1.0.1, 1.0.2, 1.0.3... stable release and follow-up bug-fix releases • 1.1.0, 1.1.1, 1.1.2, 1.1.3... pre-releases, development version leading up to 1.2.0 • 1.2.0, 1.2.1, 1.2.2, 1.2.3... stable release and follow-up bug-fix releases • 1.3.0... • 1.4.0... • etc. In March 2013, the GStreamer project maintainers issued a statement to clarify that the 0.10 series is no longer maintained. The statement reasserted the GStreamer project's willingness to help application and plugin developers migrate to the new technology, and hinted that those for whom switching to the 1.x series was still considered impossible could seek assistance from various consulting companies. 1.2 added support for
DASH adaptive streaming,
JPEG 2000 images,
VP9 and
Daala video, and decoding-only support for
WebP. Version 1.14 was released on March 19, 2018, adding support for
WebRTC,
AV1,
Nvidia NVDEC, and
Secure Reliable Transport, among other changes. Version 1.22 was released on January 23, 2023, adding improved support for
AV1, in addition to support for
HLS,
DASH and
Microsoft Smooth Streaming for adaptive bitrate streaming. ==See also==