Changing volumes of tees

Nick nicholas at umantec.net
Fri Jan 15 13:38:25 UTC 2021


Hi,

I am currently using the gstreamer library but gst-parse-launch (i.e 
gst-launch-1.0 with a little extra.)

I wish to setup a pipeline that duplicates a few audiotstsrc using tees 
and then update the volume of each tee individually (If that is possible )

I have an example that runs but the volume is set to 1 regardless of 
value and corrupts the audio.


gst-launch-1.0 interleave name=i \
audiotestsrc wave=0 freq=100 volume=0.4 ! decodebin ! audioconvert ! \
"audio/x-raw,format=S16BE,channels=1" ! tee name=t1 \
audiotestsrc wave=2 freq=100 volume=0.4 ! decodebin ! audioconvert ! \
"audio/x-raw,format=S16BE,channels=1" ! tee name=t2 \
t1. ! queue ! audioconvert ! volume volume=1 ! i. \
t2. ! queue ! audioconvert ! volume volume=0.5 ! i. \
t1. ! queue ! audioconvert ! volume volume=0.8 ! i. \
t2. ! queue ! audioconvert ! volume volume=0.7 ! i. \
i.src ! \
capssetter 
caps="audio/x-raw,format=S16BE,channels=4,channel-mask=(bitmask)0xf" \
! audioconvert ! audioresample ! wavenc ! filesink location=test.wav


the working example without updating volumes is just:

gst-launch-1.0 interleave name=i \
audiotestsrc wave=0 freq=100 volume=0.4 ! decodebin ! audioconvert ! \
"audio/x-raw,format=S16BE,channels=1" ! tee name=t1 \
audiotestsrc wave=2 freq=100 volume=0.4 ! decodebin ! audioconvert ! \
"audio/x-raw,format=S16BE,channels=1" ! tee name=t2 \
t1. ! queue ! i. \
t2. ! queue ! i. \
t1. ! queue ! i. \
t2. ! queue ! i. \
i.src ! \
capssetter 
caps="audio/x-raw,format=S16BE,channels=4,channel-mask=(bitmask)0xf" \
! audioconvert ! audioresample ! wavenc ! filesink location=test.wav


The idea is to name that tee (or pad) and be able to update the volume 
dynamically using

gst_parse_launch() and gst_bin_get_by_name()

Any help would be greatly appreciated.

I have posted on gstreamer-devel as well:

http://gstreamer-devel.966125.n4.nabble.com/Update-volume-of-individual-tee-td4696456.html

Kind regards

Nick Law



More information about the gstreamer-embedded mailing list