This plugin provides elements that interface with the GPAC library, bringing advanced multimedia processing capabilities of GPAC to GStreamer pipelines.
This plugin is dual-licensed AGPL or commercial. Contact Motion Spell for more information.
The gpactf element is an aggregator element that runs the incoming buffers through the GPAC Filter Session. The element provides a graph option for you to specify the GPAC filter graph to use. Make sure to read the Filters Concepts page on the GPAC wiki to understand how to create filter graphs.
Note
You can assume that source and sink filters are already present in the graph. You will be populating the graph in between these two filters.
Functions similarly to gpactf element, you can assume it's equivalent to gpactf graph=mp4mx. Only difference is on how the element is configured. You can use the element options to set the mp4mx configuration.
gpaccmafmux: Equivalent togpacmp4mxbut enablesstore=fragandcmaf=cmf2options.
This is again a convenience element that functions similarly to gpactf element, except that it's contained under a GstBin and connected to fakesink. This element is useful for testing purposes.
gpachlssink: This element is a sink for HLS streams. It can be used to create HLS playlists and segments.gpactsmx: This element is a sink for TS streams. It can be used to create MPEG-TS segments.
The plugin requires GPAC to be installed on your system. You can install GPAC by following the instructions on the GPAC wiki. There's no specific required version of GPAC, but we recommend building from source to ensure compatibility. You can also find the latest build artifacts for the plugin here. Be sure to rename the library files to libgpac_plugin.{so,dylib} and place them in the appropriate location.
The plugin requires GPAC to be installed on your system. You can build GPAC from source by following the instructions on the GPAC wiki. The plugin also requires GStreamer headers and libraries to be installed on your system. You can follow the instructions on the GStreamer website to install GStreamer.
To build the plugin, follow these steps:
cmake -S . -B build
cmake --build buildRefer to the launch tasks in .vscode/launch.json for examples of how to use the plugin. Each launch configuration builds the plugin and runs a GStreamer pipeline that utilizes it. After the session is completed, the pipeline graphs are dumped to graph folder.
We welcome contributions! Please see CONTRIBUTING.md for guidelines on how to contribute to this project.
This project is dual-licensed AGPL or commercial. Contact Motion Spell for more information.