Gstreamer客户端服务器音频流

时间:2016-03-02 11:20:05

标签: c audio streaming gstreamer

我想在C中使用Gstreamer创建一个简单的客户端 - 服务器应用程序。客户端必须从麦克风(1通道,16Khz)捕获音频,并将音频流发送到服务器,将其保存为磁盘上的.wav文件。

实际代码在磁盘上创建文件,但它是空的。我认为服务器工作正常,因为如果我将此命令用作客户端,它会创建文件:gst-launch-1.0 filesrc location = audio.wav! tcpclientsink host = 127.0.0.1 port = 5000

我需要提示客户端有什么问题。

谢谢!

以下是我的客户代码:https://drive.google.com/open?id=0B7umVbxKsF0GVWZ3b3J3QTN2T1k

这是我的服务器代码:https://drive.google.com/open?id=0B7umVbxKsF0GRDVKQXVKVXVGVnM

1 个答案:

答案 0 :(得分:0)

您的客户端代码等于gst-launch命令以下 gst-launch-1.0 pulsesrc ! audioconvert ! audioresample ! audio/x-raw, format=S16LE, channels=1, rate=16000, layout=interleaved ! tcpclientsink host=127.0.0.1 port=5000

它发送原始音频,而不是像可运行示例那样的wav文件。

要允许服务器使用此原始音频流,请删除decodebin将封装过滤器放在那里告诉服务器音频流的格式/频道/速率....

P / s:您的客户端代码中的while(1)错误,应将其删除