使用GSTREAMER重新采样和Depayload Audio RTP
Resample and depayload audio rtp using gstreamer
我正在开发一个应用程序,其中我正在使用 wave文件从管道的一端和的位置上 udpsink 在另一端。
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
上面的波文件的采样率= 44100 Hz和单渠道(Mono)
在同一个人PC上,我正在使用c++
程序应用程序捕获这些数据包和 depayload 到无标题音频文件(例如tornado.raw)
我为此创建的管道基本上是
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
现在这很好。我获得了无标题数据,当我使用Audacity播放它时,它会发挥出色!
我正在尝试将该音频文件从44100 Hz到8000 Hz
重新访问该音频文件简单地将clock-rate=(int)44100
更改为clock-rate=(int)8000
没有帮助(逻辑上也荒谬)我正在寻找如何通过8000 Hz采样来获取管道输出的无标题文件。
我现在得到的数据也是大型的,但我希望小居民作为输出。我该如何在管道中设置?
您可以将其与我先前的问题之一相关联。
首先,您的管道中有一些怪异的帽子 - 宽度和高度在这里进行视频。他们可能会被忽略..但仍然不确定。
对于实际问题。只需使用 audioresample
和 audioconvert
gstreamer的元素以您所需的格式传输。
,例如
[..] ! rtpL16depay ! audioresample ! audioconvert !
audio/x-raw, rate=8000, format=S16LE ! filesink location=Tornado.raw
相关文章:
- 避免在使用WinAPI(Windows Core Audio)时无效的指针
- Opensl Es-eSunipuling Audio缓冲区队列
- 使用libwebrtc-audio-Processing-Devel汇编程序
- 使用GSTREAMER重新采样和Depayload Audio RTP
- (GSTREAMER)如何使Taglib和Core Audio实用程序类一起工作
- IPlugEffect (Audio Unit target) "SysError 0 during open of " resource.h " "
- C++ audio mixing
- Windows Audio / WaveInAddBuffer() blocks
- Windows Core Audio Api在捕获设备上获取所有支持的格式
- 输出音频(Windows audio API)-低频安静
- Kinect Audio PCM Values
- Libavcodec with audio
- Android OpenSL Audio Buffer低于本机采样率/缓冲区大小(仅部分设备)
- iOS:如何在运行时使用audio Unit重新采样音频(PCM数据)
- 开始为jack-audio开发
- 使用RtAudio和Core-Audio时,probeDeviceOpen函数失败
- 是否有适用于所有音频和视频(如 "audio/*" 和"video/*")的 MIME 类型?