GStreamer

GStreamer is an open-source, pipeline-based multimedia framework designed for creating a wide range of streaming media applications—from simple audio/video playback and streaming to complex non-linear editing and mixing workflows. It links together media processing components (called “elements”) into a directed graph, where data flows through sources, filters (codecs, effects), and sinks (outputs). This modular architecture makes it easy to add new functionality by writing plugins with a clean, generic interface  .

Key Features of GStreamer

  • Plugin Architecture: Over a thousand community and third-party plugins support virtually every codec and container format (e.g., Ogg, Vorbis, H.264), plus filters for effects, mixing, and transformations  .

  • Cross-Platform: Runs on Linux, Windows, macOS, Android, iOS, and embedded platforms (e.g., ARM-based systems) under the LGPL license, ensuring both free and proprietary use cases.

  • Extensible Pipelines: Developers construct pipelines using a simple API; at runtime these pipelines handle threading, buffering, and synchronization automatically, simplifying real-time processing tasks.

Our Usage

Typical pipeline launch: /usr/bin/gst-launch-1.0 --no-fault cultivatormultifilesrc location="" start-index=0 stop-index=-1 caps='image/jpeg,framerate=(fraction)8/1' camera-id=0 ! jpegdec ! videoconvert ! identity sleep-time=125000 ! cultivator camera-id=0 location=/data/dd980b58-5845-11f0-93c1-4661d43c2138 enable-plc=False plchost=192.168.1.100 plc-port=502 camera-fov-height-degrees=63$0 camera-lens-working-dist-meters=0.4572 ! queue leaky=downstream max-size-bytes=0 max-size-buffers=8 ! jpegenc quality=85 ! fakesink