c - Gstreamer 客户端服务器音频流

标签 c audio streaming gstreamer

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

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

我需要有关客户端出了什么问题的提示。

谢谢!

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

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

最佳答案

您的客户端代码等于下面的 gst-launch 命令
gst-launch-1.0 脉冲源!音频转换!音频重采样!音频/x-raw,格式=S16LE, channel =1,速率=16000,布局=交错! tcpclientsink 主机=127.0.0.1 端口=5000

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

要允许服务器使用此原始音频流,请删除 decodebin 并在那里放置一个 capsfilter 来告诉服务器音频流的格式/ channel /速率...。

P/s:客户端代码中的 while(1) 很糟糕,应该将其删除

关于c - Gstreamer 客户端服务器音频流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35745737/

相关文章:

c - 当影响 int 的值时明显出现段错误

audio - 使用 ALSA,如何用麦克风录制刚刚通过扬声器播放的内容?

java - 如何使用Java代码在Linux服务器上运行VLC流?

ruby-on-rails - 可以在 Rails 3.2 中基于每个请求禁用 Rack 缓存吗?

c - Visual Studio 2008 中的奇怪编译错误

c - 父进程无法读取 C 中 4 个不同管道的所有消息

java - 如何在设备 sleep 时保持 ChromeCast session 处于 Activity 状态?

javascript - HTML 页面中添加背景音乐并循环播放

ios - 如何使用 Phonegap 流式传输在线广播?

c - 我的时间表计划中的任何建议