gst-plugin-finder

star 0

Find the right GStreamer elements and plugins for a given task. Use when a user needs to identify which GStreamer element handles a specific codec, protocol, effect, or media operation.

flejz By flejz schedule Updated 3/3/2026

name: gst-plugin-finder description: Find the right GStreamer elements and plugins for a given task. Use when a user needs to identify which GStreamer element handles a specific codec, protocol, effect, or media operation.

GStreamer Plugin Finder

Identify the right GStreamer elements for any multimedia task. Covers codecs, protocols, effects, sources, sinks, and utility elements.

How to Search for Elements

# List all elements
gst-inspect-1.0

# Search by keyword
gst-inspect-1.0 | grep -i h264
gst-inspect-1.0 | grep -i rtmp
gst-inspect-1.0 | grep -i pulse

# Inspect element details
gst-inspect-1.0 x264enc

# List elements in a plugin package
gst-inspect-1.0 --plugin x264

# Check which package provides an element (Debian/Ubuntu)
apt-file search gst-plugin-scanner  # Find plugin dirs
apt list --installed 2>/dev/null | grep gstreamer

Element Catalog by Task

Video Decoders

Codec Software Hardware (VAAPI) Hardware (NVIDIA) Hardware (V4L2)
H.264 avdec_h264 vaapih264dec nvh264dec v4l2h264dec
H.265 avdec_h265 vaapih265dec nvh265dec v4l2h265dec
VP8 vp8dec vaapivp8dec - v4l2vp8dec
VP9 vp9dec vaapivp9dec nvvp9dec v4l2vp9dec
AV1 av1dec, dav1ddec vaapiav1dec nvav1dec -
MPEG-2 avdec_mpeg2video vaapimpeg2dec - -

Video Encoders

Codec Software Hardware (VAAPI) Hardware (NVIDIA) Hardware (V4L2)
H.264 x264enc vaapih264enc nvh264enc v4l2h264enc
H.265 x265enc vaapih265enc nvh265enc v4l2h265enc
VP8 vp8enc vaapivp8enc - -
VP9 vp9enc vaapivp9enc nvvp9enc -
AV1 av1enc, svtav1enc vaav1enc nvav1enc -
JPEG jpegenc vaapijpegenc - v4l2jpegenc

Audio Codecs

Codec Encoder Decoder Plugin Package
AAC voaacenc, fdkaacenc, avenc_aac avdec_aac, faad gst-plugins-bad, gst-libav
MP3 lamemp3enc mpg123audiodec, avdec_mp3 gst-plugins-good/ugly, gst-libav
Opus opusenc opusdec gst-plugins-base
Vorbis vorbisenc vorbisdec gst-plugins-base
FLAC flacenc flacdec gst-plugins-good
PCM/WAV wavenc wavparse gst-plugins-good

Muxers / Demuxers

Container Muxer Demuxer
MP4/MOV mp4mux, qtmux qtdemux
MKV matroskamux matroskademux
WebM webmmux matroskademux
MPEG-TS mpegtsmux tsdemux
FLV flvmux flvdemux
AVI avimux avidemux
Ogg oggmux oggdemux
WAV wavenc wavparse

Source Elements

Source Element Notes
File filesrc Any file type
URI (auto) uridecodebin, urisourcebin HTTP, file, RTSP
Webcam (Linux) v4l2src /dev/video*
Webcam (macOS) avfvideosrc -
Screen (X11) ximagesrc X11 screen capture
PulseAudio pulsesrc Linux audio capture
PipeWire pipewiresrc Modern Linux audio/video
ALSA alsasrc Direct ALSA capture
RTSP rtspsrc RTSP client
RTMP rtmpsrc RTMP pull
SRT srtsrc SRT receive
UDP/RTP udpsrc Raw UDP packets
Test video videotestsrc Test patterns
Test audio audiotestsrc Sine wave, noise
App (programmatic) appsrc Push buffers from code

Sink Elements

Sink Element Notes
File filesink Write to file
Auto video autovideosink Best available display
Auto audio autoaudiosink Best available output
X11 ximagesink, xvimagesink X11 display
Wayland waylandsink Wayland display
PulseAudio pulsesink PulseAudio output
PipeWire pipewiresink PipeWire output
ALSA alsasink Direct ALSA output
RTMP rtmpsink, rtmp2sink RTMP push
SRT srtsink SRT send
UDP udpsink Raw UDP output
TCP tcpserversink, tcpclientsink TCP streaming
Fake (discard) fakesink Drop data (testing)
App (programmatic) appsink Receive buffers in code
HLS hlssink, hlssink2 HLS output

Video Processing

Task Element
Color format conversion videoconvert
Scaling videoscale
Framerate adjustment videorate
Cropping videocrop
Flipping / rotating videoflip
Compositing / mixing compositor
Text overlay textoverlay, clockoverlay, timeoverlay
Image overlay gdkpixbufoverlay
Color balance videobalance
Box drawing rsvgoverlay
Deinterlacing deinterlace

Audio Processing

Task Element
Format conversion audioconvert
Resampling audioresample
Mixing audiomixer
Volume control volume
Equalization equalizer-3bands, equalizer-10bands
Echo / effects audioecho
Level metering level
Noise suppression webrtcdsp

Network / Streaming

Protocol Elements
RTP rtpbin, rtph264pay/depay, rtpvp8pay/depay, rtpopuspay/depay
RTSP rtspsrc, rtspclientsink
RTMP rtmpsrc, rtmpsink, rtmp2src, rtmp2sink
SRT srtsrc, srtsink
WebRTC webrtcbin
HLS hlssink, hlssink2, hlsdemux
DASH dashdemux, dashsink

Utility Elements

Purpose Element
Thread decoupling queue, queue2, multiqueue
Branching tee
Selecting streams input-selector, output-selector
Caps filtering capsfilter
Identity / debugging identity
Valve (block flow) valve
Type finding typefind
Auto decoder decodebin, decodebin3
Auto playback playbin, playbin3
Parse H.264 h264parse
Parse H.265 h265parse
Parse AAC aacparse

Plugin Packages (Debian/Ubuntu)

gstreamer1.0-plugins-base    # Core elements: playback, conversion, encoding basics
gstreamer1.0-plugins-good    # High-quality plugins: matroska, jpeg, png, pulse, v4l2
gstreamer1.0-plugins-bad     # Varied quality: x265, opus, srt, webrtc, hls
gstreamer1.0-plugins-ugly    # Patent-encumbered: x264, mp3, mpeg2
gstreamer1.0-libav           # FFmpeg/libav decoders and encoders
gstreamer1.0-vaapi           # VAAPI hardware acceleration
gstreamer1.0-tools           # gst-launch-1.0, gst-inspect-1.0
libgstreamer1.0-dev          # Development headers

Guidelines

  • Use gst-inspect-1.0 ELEMENT to verify an element exists before using it
  • Hardware-accelerated elements (vaapi*, nv*, v4l2*) depend on driver support - fall back to software if unavailable
  • When multiple elements do the same thing, prefer: plugins-base > plugins-good > plugins-bad > plugins-ugly > libav
  • decodebin3 and playbin3 auto-select the best decoder/sink, useful for quick prototyping
  • For production, pin specific elements rather than relying on auto-selection
Install via CLI
npx skills add https://github.com/flejz/skills --skill gst-plugin-finder
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator