简体   繁体   中英

Resample and depayload audio rtp using gstreamer

I am developing an application where I am using a wave file from a location at one end of a pipeline and udpsink at the other end of it.

gst-launch-1.0 filesrc location=/path/to/wave/file/Tornado.wav ! wavparse ! audioconvert ! audio/x-raw,channels=1,depth=16,width=16,rate=44100 ! rtpL16pay  ! udpsink host=xxx.xxx.xxx.xxx port=5000

The Above wave file is having sampling rate = 44100 Hz and single-channel(mono)

On the same PC I am using a c++ program application to catch these packets and depayload to a headerless audio file (say Tornado.raw)

The pipeline I am creating for this is basically

gst-launch-1.0 udpsrc port=5000 ! "application/x-rtp,media=(string)audio, clock-rate=(int)44100, width=16, height=16, encoding-name=(string)L16, encoding-params=(string)1, channels=(int)1, channel-positions=(int)1, payload=(int)96" ! rtpL16depay ! filesink location=Tornado.raw

Now This works fine. I get the headerless data and when I play it using the Audacity It plays great!

I am trying to resample this audio file while it is in pipeline from 44100 Hz to 8000 Hz

Simply changing the clock-rate=(int)44100 to clock-rate=(int)8000 is not helping (also absurd logically) I am looking for how to get the headerless file at the pipeline output with 8000 Hz sampling.

Also the data that I am getting now is Big-endian, but I want Little-endian as output. how do I set that in the pipeline?

You might relate this to one of my earlier question .

First, you have some weird caps in your pipeline - width and height are for video here. They probably will be just ignored.. but still.. not sure on others there as well but meh..

For the actual question. Just use audioresample and audioconvert elements of Gstreamer to transfer in your desired format.

Eg

[..] ! rtpL16depay ! audioresample ! audioconvert ! \
audio/x-raw, rate=8000, format=S16LE ! filesink location=Tornado.raw

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM