GStreamer plugins
Strawberry uses GStreamer for the audio backend, to play different audio formats you need different plugins.
On Linux distributions you need to install individual packages to get support for different formats.
Windows and macOS releases have all the listed plugins bundled in the installer.
On Linux plugin files are usually installed in a directory called gstreamer-1.0, examples are.: /usr/lib/gstreamer-1.0 or /usr/lib64/gstreamer-1.0
The gstreamer plugin files are called libgstPLUGIN.so, for example libgstflac.so
gst-inspect
To check if a plugin is installed and properly detected, you can use.:
gst-inspect-1.0 <plugin>
For example.:
gst-inspect-1.0 flac
Returns:
Plugin Details:
Name flac
Description The FLAC Lossless compressor Codec
Filename /usr/lib64/gstreamer-1.0/libgstflac.so
Version 1.20.3
License LGPL
Source module gst-plugins-good
Source release date 2022-06-15
Binary package openSUSE GStreamer-plugins-good package
Origin URL http://download.opensuse.org
flacdec: FLAC audio decoder
flacenc: FLAC audio encoder
flactag: FLAC tagger
3 features:
+-- 3 elements
Always required
These are not tied to any particular audio format, but are needed for any playback at all. coreelements ships as part of GStreamer itself (not a separate gst-plugins-* package), the rest ship inside gst-plugins-base, which is effectively always installed alongside GStreamer.
| Plugin | Type |
|---|---|
| coreelements | Core elements (queue, filesrc, typefind, ...), part of GStreamer itself |
| playback | Core playback framework (playbin/playbin3/decodebin/decodebin3) |
| typefindfunctions | Automatic format detection |
| pbtypes | Shared dynamic types used internally by other plugins |
| app | appsrc/appsink, used internally for fingerprinting, waveform and loudness analysis |
| audioconvert | Audio format/channel conversion, used internally by every pipeline |
| audioresample | Audio sample rate conversion, used internally by every pipeline |
| volume | Software volume control, fading, ReplayGain/EBU R128 gain application |
gst-plugins-base
The base package is almost always installed whenever GStreamer is installed.
| Plugin | Type |
|---|---|
| ogg | Ogg container formats |
| vorbis | Ogg Vorbis decoding and encoding |
| opus | Ogg Opus decoding and encoding |
| alsa | ALSA audio output |
| dsd | DSD-to-PCM conversion, used together with gst-libav for DSD (.dsf/.dff) playback |
gst-plugins-good
The good package is required for common formats such as FLAC and MP3.
| Plugin | Type |
|---|---|
| flac | FLAC decoding and encoding |
| speex | Speex decoding and encoding |
| wavpack | WavPack decoding and encoding |
| wavparse | WAV decoding |
| wavenc | WAV encoding |
| mpg123 | MP3 decoding |
| lame | MP3 encoding |
| taglib | MP3 encoding (Adds ID3v2 tags via id3v2mux) |
| xingmux | MP3 encoding (Adds a Xing header to VBR MP3 files) |
| soup | HTTP/HTTPS client, used for internet radio, podcasts and streaming services |
| icydemux | Reads ICY (Shoutcast/Icecast) metadata from internet radio streams |
| id3demux | Reads ID3v1/ID3v2 tags while demuxing MP3/AIFF files |
| apetag | Reads APEv1/APEv2 tags, used for Musepack/WavPack/APE-tagged files |
| isomp4 | MP4/M4A container decoding and encoding (AAC, ALAC) |
| matroska | Matroska/WebM container decoding |
| audiofx | Audio effects, e.g. stereo balance |
| audioparsers | Parsers for various audio formats, used ahead of most decoders |
| autodetect | Automatic audio output selection |
| equalizer | 10-band equalizer |
| replaygain | ReplayGain volume normalization |
| spectrum | Spectrum analyzer, used for Moodbar generation if Strawberry is built without FFTW3 |
| pulseaudio | PulseAudio audio output |
| rtsp | RTSP network stream support |
| rtp | RTP payload handling, required by RTSP streams |
| rtpmanager | RTP session management (jitter buffer, synchronization), required by RTSP streams |
| udp | UDP transport, used by raw udp:// stream URLs and required by RTSP streams |
| adaptivedemux2 | Adaptive streaming (DASH/HLS/Smooth Streaming) support used by playbin3 |
gst-plugins-bad
Some distributions such as Fedora does not include some of the bad plugins for licensing reasons. On openSUSE, faad/faac/fdkaac are only available via the Packman repository, not the main OSS repository.
| Plugin | Type |
|---|---|
| faad | AAC/MP4 decoding |
| faac | AAC/MP4 encoding |
| fdkaac | AAC/MP4 decoding and encoding |
| musepack | MPC decoding |
| aiff | AIFF decoding |
| asfmux | Microsoft ASF format (WMA) encoding |
| openmpt | Module music (MOD, S3M, XM, IT) decoding |
| bs2b | Improve headphone listening of stereo audio records using the bs2b library |
| gme | Game console music (SPC, VGM, NSF, and other chiptune formats) decoding |
| hls | HTTP Live Streaming (HLS), used when playbin3 is disabled |
| dash | Dynamic Adaptive Streaming over HTTP (DASH) |
| mpegtsdemux | MPEG transport stream (.ts) demuxing, needed for HLS streams that use .ts segments |
gst-plugins-ugly
| Plugin | Type |
|---|---|
| asf | Microsoft ASF format (WMA) decoding |
| cdio | Read audio from audio CDs |
gst-libav
| Plugin | Type |
|---|---|
| libav | Monkey's Audio, WMA, ALAC, DSD (.dsf/.dff) and various other formats supported through ffmpeg |
gst-plugins-rs
Rust-based plugins, packaged separately from the classic C-based gst-plugins-* modules (e.g. as gstreamer-plugins-rs on openSUSE).
| Plugin | Type |
|---|---|
| spotify | Spotify streaming support |
MP3 encoding
For MP3 encoding (Transcoding to MP3 in Strawberry) you need lame, taglib (which provides id3v2mux) and xingmux.
Notes on specific features
HLS / DASH internet radio: Strawberry uses playbin3 when available, falling back to the older playbin otherwise (this can be toggled in settings). playbin3 plays HLS via adaptivedemux2's hlsdemux2, while playbin uses the older hls plugin's hlsdemux instead - both are needed to cover either setting. DASH is only used via adaptivedemux2's dashdemux2 (used for some Tidal streams). Many HLS streams still use .ts-segmented (MPEG transport stream) media internally, which additionally needs mpegtsdemux to demux.
DSD (.dsf/.dff) playback: there is no dedicated GStreamer DSD decoder. Demuxing (avdemux_dsf/avdemux_iff) and decoding (avdec_dsd_*) is done entirely by gst-libav; the dsd plugin's dsdconvert element then converts the decoded DSD samples to PCM for the audio sink.
RTSP / raw stream URLs: Strawberry allows raw rtsp://, rtspu://, rtspt://, rtsph://, udp:// and rtp:// stream URLs to be opened directly. This needs rtsp, rtp, rtpmanager and udp together.
Audio CD playback: needs cdio (provides cdiocddasrc).