2017-08-01 27 views
1

Gstreamerを使用して、同じポートの複数のポイントからオーディオストリームを受信したいと考えています。 実際には、ネットワーク上のさまざまなノードから、受信オーディオストリームを聴く1つのデバイスにオーディオをストリーミングしたいので、再生前に複数のオーディオをミックスする必要があります。 このような作業を行うには、audiomixerまたはliveadderを使用する必要があります。 しかし、私はそれをすることはできません、ミキサーが正しく動作しないと、2つのオーディオストリームが来たとき、出力音が騒々しいと破損しているでしょう。Gstreamerを使用して複数のオーディオストリームを1つの再生音にミックス

GST-打ち上げ-1.0.exe -v udpsrcポート= 5001のキャップ= "アプリケーション/ X-RTP":

は、私は、次のコマンドを使用しました! キュー! rtppcmudepay! mulawdec! audiomixer name =ミックスミックス。 ! audioconvert!オーディオサンプル! autoaudiosink

ただし、動作しません。

答えて

1

同じポートのパケットは、通常の方法であなたのコマンドに書いたように、同じポートから複数のオーディオストリームを受信するためにSSRCrtpssrcdemux demuxを使用する必要があります。 複数のオーディオストリームを複数のポートで受信して混合するには、liveadder要素を使用できます。以下の2つのポートから2つのオーディオストリームを受信し、それらを混合する例を示します。

GST-打ち上げ-1.0 -v名= src5001キャップ= "アプリケーション/ X-RTP" ポート= 5001 udpsrc! rtppcmudepay! mulawdec!オーディオサンプル! liveadder 名前= m_adder! alsasink device = hw:0,0 udpsrc name = src5002 caps = "application/x-rtp" port = 5002! rtppcmudepay! mulawdec! audioresample!茜。

0

最初にliveadderを超えるaudiomixerを最初に使用すると、さまざまなオーディオストリームの同期が保証されます。

次に、ミキシングの問題について、出力音が「騒々しくて壊れている」と言います。これは、オーディオレベルの問題を考えるようになります。 audiomixerは出力オーディオを最大許容振幅範囲にクリップしますが、ソースが大きすぎるとオーディオアーチファクトが発生する可能性があります。したがって、両方のソースのvolumeプロパティで再生することができます。詳細については、hereおよびthereを参照してください。

1

次に、あなたのミキシングの問題について、あなたは出力音が、私はオーディオレベルで問題を考えさせるれ、「うるさいと壊れた」であることを言及します。

Gstreamer Audiomixerでも同じ問題がありますが、オーディオレベルとは関係ありません。両方のオーディオレベルは普通で、それほど大音量ではありません。 サンプルパイプラインを共有して、同じポート上の複数のオーディオストリーム(例:5001)を受信し、再生にミックスしてください。

関連する問題