2016-03-02 152 views
0

我想在C語言中使用Gstreamer創建一個簡單的客戶端 - 服務器應用程序。客戶端必須從麥克風(1聲道,16Khz)捕獲音頻並將音頻流發送到服務器,將其保存爲。在磁盤上的wav文件。Gstreamer客戶端服務器音頻流

實際的代碼在磁盤上創建文件,但它是空的。我認爲服務器工作正常,因爲它創建文件,如果我使用這個命令作爲客戶端: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

回答

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在那裏放置capsfilter以告知服務器音頻流的格式/頻道/比率...。

P/s:while(1)在您的客戶端代碼不好,應該刪除它

相關問題