【问题标题】:Gstreamer client server audio streamingGstreamer 客户端服务器音频流
【发布时间】:2016-03-02 11:20:04
【问题描述】:

我想在 C 中使用 Gstreamer 创建一个简单的客户端-服务器应用程序。客户端必须从麦克风(1 个通道,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

【问题讨论】:

    标签: c audio streaming gstreamer


    【解决方案1】:

    您的客户端代码等于下面的 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 并在其中放置一个 capsfilter 以告诉服务器音频流的格式/通道/速率 ...。

    P/s:您的客户端代码中的while(1) 不好,应该删除它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-19
      • 1970-01-01
      • 2011-11-29
      • 2012-11-22
      相关资源
      最近更新 更多