<!-- Abstract:
# The motion picture industry and open source software: GStreamer as an alternative
Open source metodologies and techologies are driving modern software development
in many industries and the post production industry is part of that move in many
aspects. But a lot more can be done to leverage the potential of all the software
that exists out there and is used be millions of consumers.
This talk will explain how and why GStreamer, the multimedia framework that
powers most TV screens and set top boxes in the world and is at the core of
leading Deep learning frameworks such as the nvidia DeepStream SDK, could be
leveraged in the motion picture industry to allow faster inovation and solve
issues by reusing all the multiplatform infrastructure the community has to
offer.
-->
---
urlcolor: cyan
...
# The motion picture industry and open source software: GStreamer as an alternative
Historically, the motion picture industry worked with studio specific
tools and methodologies using proprietary software and without sharing much
technical knowledge. However, with the rise of Open Source, this has been changing for a while, with trends is increasing faster since 2018 when the Linux Foundation
started the Academy Software Foundation (aswf).
We, the developers of the [GStreamer] multimedia framework, have been working on a
piece of technology that is ready to be used and adapted for any kind of video processing and
content creation use case. We believe that this can be the building block
that the industry needs, and we aim to create a bigger community of companies contributing, caring
and using Gstreamer in this sector.
[GStreamer]: https://gstreamer.freedesktop.org
## The GStreamer framework
[GStreamer] is a powerful and versatile open source multimedia
framework that enables the creation of any kind of media applications. It is deployed in
many industries, ranging from TVs or tiny embedded devices to rendering farms
or broadcasting services. Moreover, it is used as the basis of Deep learning
SDKs such as nvidia's [DeepStream] or Samsung's [nnstreamer]. It has over 1550 all
time contributors (~270 per year in the last years).
GStreamer does not implement the media processing algorithms but instead leverages existing libraries or tools through dedicated plugins. This architecture allows application writers to use them all in a comprehensive and efficient way. All in all, the GStreamer framework focuses on offering both powerful and user friendly APIs for all kind of multimedia needs.
GStreamer is multiplatform and official builds are provided for Windows, MacOS,
Android, and iOS, and is installed by default on all major Linux distributions. This
makes GStreamer a very convenient tool to write multiplatform applications, including post production related ones.
GStreamer provides an impressive number of algorithms and protocol
implementations: there are 250 official plugins and [1500 additional third party ones](https://gstreamer.freedesktop.org/documentation/plugins_doc.html?gi-language=python) which make a complete toolbox which facilitates and speeds up solving any kind of problem you may face.
Moreover the comunity officially provides bindings for many languages such as
Rust, Python, c# and JavaScript so developers can focus on solving their issues without
needing to learn new languages.
[Deepstream]: https://developer.nvidia.com/deepstream-sdk
[nnstreamer]: https://nnstreamer.ai/
## GStreamer and post production
Since the projects very beginning, the framework was designed having post production use cases in mind and there have been functionalities introduced quite early in the GStreamer project history related to video editing. For instance, all the way back in 2002 GNonLin was created to provide the basic building block for all Non Linear video editing requirements. Later, in 2009, a new component called [GStreamer Editing Services], GES, was created with the goal of providing a set of data structures and services in the domain of video editing. In particular, GES was designed with the idea of providing simple,
flexible and high level APIs and trying to cover aspects like timelines, clips, layers, assets, etc
It is also important to emphasize that GStreamer supports many formats widely used in the post production industry,
such as MXF, open EXR, prores, etc.. and this makes it an important asset. More still: it is easy to
program new plugins with GStreamer to add support for anything that you need. Finally, regarding compatibility, we outline that GStreamer provides native integration with [OpenTimelinIO] and, therefore, it supports all the editorial cut information formats supported by this project (EDL, FCP7/X, AAF, RV, ALE, ...).
At this moment, we can state that GStreamer is a stable and mature technology for use in the post production field. As a demostration of this, the [Pitivi] open source video editing application was developed leveraging GStreamer. It is a full feature video editing application and has less than 30K lines of python code. On top of this, it is also fully customizable and can be extended easily with new features.
[GStreamer Editing Services]: https://gstreamer.freedesktop.org/documentation/gst-editing-services/?gi-language=python
[Pitivi]: http://www.pitivi.org/
[OpenTimelineIO]: https://opentimelineio.readthedocs.io/en/latest/
{"metaMigratedAt":"2023-06-15T07:55:54.199Z","metaMigratedFrom":"Content","title":"The motion picture industry and open source software: GStreamer as an alternative","breaks":true,"contributors":"[{\"id\":\"94266076-13ce-48b7-be89-c66b35943921\",\"add\":6314,\"del\":1393},{\"id\":\"302124e4-a559-4f02-a81b-87225eb0d725\",\"add\":2,\"del\":1},{\"id\":null,\"add\":2640,\"del\":2178}]"}