From ProventusNova DeveloperWiki
Revision as of 02:04, 25 March 2025 by Sonni (talk | contribs) (→‎🏗 Need a Solution for Your Project?)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Authors:

Sonni Lorenz F. Cubero (sonni.cubero@proventusnova.com)

CJ Mirafuentes (cj.mirafuentes@proventusnova.com)

Date: March 11, 2025

About GStreamer

GStreamer is a framework for creating streaming media applications. The fundamental design comes from the video pipeline at Oregon Graduate Institute, as well as some ideas from DirectShow. Available across multiple platforms and licensed under the LGPL, GStreamer is suitable for both free and proprietary use, running on Linux, Windows, macOS, Android, and iOS.

The framework is based on plugins that provide various codecs and other functionalities. These plugins can be linked and arranged in a pipeline, which defines the flow of data. Pipelines can also be edited using a GUI editor and saved as XML, allowing for easy creation of reusable pipeline libraries.

GStreamer Components

GStreamer is packaged into multiple components:

  • gstreamer: The core package
  • gst-plugins-base: An essential exemplary set of elements
  • gst-plugins-good: A set of good-quality plugins under LGPL
  • gst-plugins-ugly: A set of good-quality plugins that might pose distribution problems
  • gst-plugins-bad: A set of plugins that need more quality improvements
  • gst-libav: A set of plugins that wrap libav for decoding and encoding
  • Other additional packages

Building GStreamer

This setup is recommended for developers who want to work on the GStreamer code itself, as well as for application developers who need to test features that have not yet been released.

Prerequisites

The following dependencies must be installed on the Linux system:

Compiler

  • GCC, Clang

Package Manager Any one of the following will do:

  • apt, dnf, snap, etc.

Packages/Dependencies

  • meson, ninja, flex, bison, gitlint

The GStreamer build environment was emulated via VMware Workstation 17 Pro with the following specifications:

Operating System: Ubuntu 24.04.1 LTS
Processors: Number of processors: 4

Number of cores per processor: 1

Memory: 8GB
Storage: 30GB (Expandable)

Getting the Source Code

To build GStreamer, first, secure the latest copy of the source code:

After obtaining the source, ensure that the GStreamer version is compatible with the installed Meson version. Switch to the appropriate branch based on your Meson version.

GStreamer and Meson Version Compatibility
GStreamer Version Meson Version
1.25 (main branch to date) >= 1.24
1.24 >= 1.1
1.22 >= 0.62
1.20 >= 0.59

Note: To verify which Meson version is compatible with GStreamer, check the meson.build file.

Updating Subprojects

GStreamer modules are typically found under the subprojects/ directory. These modules are not updated automatically and must be updated manually.

To update subprojects, execute the following command:

meson subprojects update

Setting Up the Build with Meson

To set up GStreamer and its modules, execute the following command:

meson setup <build_directory>

Note: You can specify any directory name for <build_directory>. The command will automatically create the directory if it does not exist.

Building GStreamer and Its Modules

Once Meson has finished setting up the module, execute either of the following commands to build:

ninja -C <build_directory>

Or

meson compile -C <build_directory>

Testing the GStreamer Build

To test all components, run the following command:

meson test -C <build_directory>


To test a specific component, use the following command:

meson test -C <build_directory> --suite gst-plugins-base

Frequently Asked Questions (FAQ)

  • What is GStreamer used for?
    • GStreamer is used to create streaming media applications such as media players, video editing software, and real-time multimedia processing tools. It supports multiple platforms and a wide range of codecs.
  • How can I install GStreamer on my system?
    • For Linux, you can install GStreamer using your system's package manager.
      • For Ubuntu/Debian: sudo apt install gstreamer1.0*
      • For Fedora: sudo dnf install gstreamer1.0*
    • For windows, download pre-built binaries from the official GStreamer website. Windows GStreamer.
  • How do I check which plugins are installed?
    • You can list installed plugins by running: gst-inspect-1.0 | less
  • Can I use GStreamer for live streaming?
    • Yes, GStreamer supports live streaming through plugins such as RTSP, RTP, and WebRTC.
  • How do I troubleshoot pipeline errors?
    • Use the following command to debug issues: GST_DEBUG=4 gst-launch-1.0 <pipeline>, this provides detailed debugging output.

Need Further Support?

📞 Book Consultation Call: Show Calendar!

📩 Contact Via Email: support@proventusnova.com

🌐 Visit Our Website: ProventusNova.com