audioconvert
Audioconvert converts raw audio buffers between various possible formats. It supports integer to float conversion, width/depth conversion, signedness and endianness conversion and channel transformations (ie. upmixing and downmixing), as well as dithering and noise-shaping.
Example launch line
gst-launch-1.0 -v -m audiotestsrc ! audioconvert ! audio/x-raw,format=S8,channels=2 ! level ! fakesink silent=TRUE
This pipeline converts audio to 8-bit. The level element shows that the output levels still match the one for a sine wave.
gst-launch-1.0 -v -m uridecodebin uri=file:///path/to/audio.flac ! audioconvert ! vorbisenc ! oggmux ! filesink location=audio.ogg
The vorbis encoder takes float audio data instead of the integer data output by most other audio elements. This pipeline decodes a FLAC audio file (or any other audio file for which decoders are installed) and re-encodes it into an Ogg/Vorbis audio file.
A mix matrix can be passed to audioconvert, that will govern the remapping of input to output channels. This is required if the input channels are unpositioned and no standard layout can be determined. If an empty mix matrix is specified, a (potentially truncated) identity matrix will be generated.
Example matrix generation code
To generate the matrix using code:
GValue v = G_VALUE_INIT;
GValue v2 = G_VALUE_INIT;
GValue v3 = G_VALUE_INIT;
g_value_init (&v2, GST_TYPE_ARRAY);
g_value_init (&v3, G_TYPE_FLOAT);
g_value_set_float (&v3, 1);
gst_value_array_append_value (&v2, &v3);
g_value_unset (&v3);
[ Repeat for as many float as your input channels - unset and reinit v3 ]
g_value_init (&v, GST_TYPE_ARRAY);
gst_value_array_append_value (&v, &v2);
g_value_unset (&v2);
[ Repeat for as many v2's as your output channels - unset and reinit v2]
g_object_set_property (G_OBJECT (audioconvert), "mix-matrix", &v);
g_value_unset (&v);
Example launch line
gst-launch-1.0 audiotestsrc ! audio/x-raw, channels=4 ! audioconvert mix-matrix="<<(float)1.0, (float)0.0, (float)0.0, (float)0.0>, <(float)0.0, (float)1.0, (float)0.0, (float)0.0>>" ! audio/x-raw,channels=2 ! autoaudiosink
Example empty matrix generation code
GValue v = G_VALUE_INIT;
g_value_init (&v, GST_TYPE_ARRAY);
g_object_set_property (G_OBJECT (audioconvert), "mix-matrix", &v);
g_value_unset (&v);
Example empty matrix launch line
gst-launch-1.0 -v audiotestsrc ! audio/x-raw,channels=8 ! audioconvert mix-matrix="<>" ! audio/x-raw,channels=16,channel-mask=\(bitmask\)0x0000000000000000 ! fakesink
Hierarchy
GObject ╰──GInitiallyUnowned ╰──GstObject ╰──GstElement ╰──GstBaseTransform ╰──audioconvert
Factory details
Authors: – Benjamin Otte
Classification: – Filter/Converter/Audio
Rank – primary
Plugin – audioconvert
Package – GStreamer Base Plug-ins
Pad Templates
sink
audio/x-raw:
format: { F64LE, F64BE, F32LE, F32BE, S32LE, S32BE, U32LE, U32BE, S24_32LE, S24_32BE, U24_32LE, U24_32BE, S24LE, S24BE, U24LE, U24BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, S16LE, S16BE, U16LE, U16BE, S8, U8 }
rate: [ 1, 2147483647 ]
channels: [ 1, 2147483647 ]
layout: { (string)interleaved, (string)non-interleaved }
src
audio/x-raw:
format: { F64LE, F64BE, F32LE, F32BE, S32LE, S32BE, U32LE, U32BE, S24_32LE, S24_32BE, U24_32LE, U24_32BE, S24LE, S24BE, U24LE, U24BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, S16LE, S16BE, U16LE, U16BE, S8, U8 }
rate: [ 1, 2147483647 ]
channels: [ 1, 2147483647 ]
layout: { (string)interleaved, (string)non-interleaved }
Properties
dithering
“dithering” GstAudioDitherMethod *
Selects between different dithering methods.
Flags : Read / Write
Default value : tpdf (2)
dithering-threshold
“dithering-threshold” guint
Threshold for the output bit depth at/below which to apply dithering.
Flags : Read / Write
Default value : 20
Since : 1.22
mix-matrix
“mix-matrix” GstValueArray *
Transformation matrix for input/output channels. Required if the input channels are unpositioned and no standard layout can be determined. Setting an empty matrix like "< >" will generate an identity matrix."
Flags : Read / Write
noise-shaping
“noise-shaping” GstAudioNoiseShapingMethod *
Selects between different noise shaping methods.
Flags : Read / Write
Default value : none (0)
The results of the search are