Elements#

Links under the GStreamer element name (first column of the table) contain the description of element properties, in the format generated by gst-inspect-1.0 utility.

Inference plugins#

Element

Description

gvadetect

Performs object detection and optionally object classification/segmentation/pose estimation. Inputs: ROIs (regions of interest) or full frame. Output: object bounding box detection along with prediction metadata. The queue element must be put directly after the gvadetect element in pipeline.
Example:
gst-launch-1.0 … ! decodebin3 ! gvadetect model=$mDetect device=GPU[CPU,NPU] ! queue ! … OUT

gvaclassify

Performs object classification/segmentation/pose estimation. Inputs: ROIs or full frame. Output: prediction metadata. The queue element must be put directly after the gvaclassify element in the pipeline.
Example:
gst-launch-1.0 … ! decodebin3 ! gvadetect model=$mDetect device=GPU ! queue ! gvaclassify model=$mClassify device=CPU ! queue ! … OUT

gvainference

Executes any inference model and outputs raw results. Does not interpret data and does not generate metadata. The queue element must be put directly after the gvainference element in the pipeline.
Example:
gst-launch-1.0 … ! decodebin3 ! gvadetect model=$mDetect device=GPU ! queue ! gvainference model=$mHeadPoseEst device=CPU ! queue ! … OUT

gvatrack

Tracks objects across video frames using zero-term or short-term tracking algorithms. Zero-term tracking assigns unique object IDs and requires object detection to run on every frame. Short-term tracking allows for tracking objects between frames, reducing the need to run object detection on each frame.
Example:
gst-launch-1.0 … ! decodebin3 ! gvadetect model=$mDetect device=GPU ! gvatrack tracking-type=short-term-imageless ! … OUT

gvaaudiodetect

Legacy plugin. Performs audio event detection using the AclNet model.
Example:
gst-launch-1.0 … ! decodebin3 ! audioresample ! audioconvert ! audio/x-raw … ! audiomixer … ! gvaaudiodetect model=$mAudioDetect ! … OUT

gvagenai

Performs inference using GenAI models. It can be used to generate text descriptions from images or video.
Example:
gst-launch-1.0 … ! decodebin3 ! videoconvert ! gvagenai model=$mGenAI device=GPU ! … OUT

Auxiliary plugins#

Element

Description

gvaattachroi

Adds user-defined regions of interest to perform inference on (instead of full frame). Example: monitoring road traffic in a city camera feed; splitting large image into smaller pieces, and running inference on each piece (healthcare cell analytics).
Example:
gst-launch-1.0 … ! decodebin3 ! gvaattachroi roi=xtl,ytl,xbr,ybr gvadetect inference-region=1 ! … OUT

gvafpscounter

Measures frames per second across multiple video streams in a single GStreamer process.
Example:
gst-launch-1.0 … ! decodebin3 ! gvadetect … ! gvafpscounter ! … OUT

gvametaaggregate

Aggregates inference results from multiple pipeline branches.
Example:
gst-launch-1.0 … ! decodebin3 ! tee name=t t. ! queue ! gvametaaggregate name=a ! gvaclassify … ! gvaclassify … ! gvametaconvert … ! gvametapublish … ! fakesink t. ! queue ! gvadetect … ! a.

gvametaconvert

Converts the metadata structure to JSON or raw text formats. Can write output to a file.

gvametapublish

Publishes the JSON metadata to MQTT or Kafka message brokers or files.
Example:
gst-launch-1.0 … ! decodebin3 ! gvadetect model=$mDetect device=GPU … ! gvametaconvert format=json … ! gvametapublish … ! … OUT

gvapython

Provides a callback to execute user-defined Python functions on every frame. It is used to augment DLStreamer with user-defined algorithms (e.g. metadata conversion, inference post-processing).
Example:
gst-launch-1.0 … ! gvaclassify ! gvapython module={gvapython.callback_module.classAge_pp} ! … OUT

gvarealsense

Provides integration with Intel RealSense cameras, enabling video and depth stream capture for use in GStreamer pipelines.

gvawatermark

Overlays the metadata on the video frame to visualize the inference results.
Example:
gst-launch-1.0 … ! decodebin3 ! gvadetect … ! gvawatermark ! …