Gstreamer上に構築された(私の)カスタムソフトウェアを実行している2台のLinuxマシン間でリアルタイムオーディオを移動する必要があります。(ソフトウェアは、別のTCPベースのプロトコルを介して、マシン間ですでに他の通信を行っています。信頼できる帯域外データがあるとソリューションに違いが生じる場合に備えて、これについて説明します)。
オーディオ入力は送信機のマイク/ライン入力になり、宛先のシンクとして通常のオーディオ出力になります。alsasrcとalsasinkが最も可能性が高いですが、テストでは、実際のマイクの代わりにaudiotestsrcを使用しています。
GStreamerは、RTP、RTSP、GDPペイロード、UDPおよびTCPサーバー、クライアントとソケットなど、ネットワーク上でデータを移動するためのさまざまな方法を提供します。ウェブ上にはオーディオとビデオの両方をストリーミングする例もたくさんありますが、実際にはどれも私にはうまくいかないようです。宛先パイプラインがキャップのネゴシエーションに失敗するか、単一のパケットが聞こえてからパイプラインストールが停止するか、宛先パイプラインがデータなしですぐに停止します。
すべての場合において、私はコマンドラインでgst-launchだけをテストしています。オーディオデータの圧縮は必要ありません-生のオーディオ、または些細なWAV、uLaw、またはaLawエンコーディングで問題ありません。さらに重要なのは、低レイテンシーです。