0

gstreamer で次のパイプラインをセットアップしています。

2 つの独立した USB オーディオ インターフェイスと 1 つのパルス オーディオ シンク (pulsesink) からの 2 つのパルス オーディオ ソース (pulsesrc)。adder コンポーネントを使用して、2 つの着信オーディオ ストリームを結合しています。残念ながら、2 つのオーディオ チャンネル間にわずかな遅延があります。

pulsesrc1 --- queue --- audioconvert --- audioresample --- |
                                                           | adder --- queue --- | pulsesink
pulsesrc2 --- queue --- audioconvert --- audioresample --- |

同期にシステムの時刻/クロックを使用しています。両方のオーディオ インターフェイスが同じ USB ハブに接続されています。私は、オーディオがソースによって拾われる前に、オーディオがすでにわずかな遅延を持っていると推測しています (クロックが異なるため)。

これが、それを補うために、最初のオーディオ チャンネル (2 番目のオーディオ チャンネルはわずかに遅れます) に遅延/ギャップ/シフトを導入したい理由です。

これまでのところ、最初のキューのプロパティ「min-threshold-time」を設定してみました。残念ながら、パイプラインはこの遅延を補正するため、両方のオーディオ ストリームが等しく遅延します。要素「audioecho」もチェックアウトしました。残念ながら、「ドライ/ウェット」プロパティがありません。これは、元の信号が常に元の時間に再生され、その後遅延テールが開始されることを意味します (これはまったく役に立ちません)。

この問題を解決する方法について、さらにアイデアはありますか? たぶん、沈黙のギャップを追加しますか?または、欠落している可能性のある他のパラメーター。

Python を使用してこのパイプラインを実装しました。前もって感謝します!

4

1 に答える 1

0

キュー内の最小しきい値時間/バイトを使用して、残りのパイプラインでのデータの送信を遅らせることができますか? うまくいくはずだと思います。それがうまくいかない場合のみ:

http://gentrans.sourceforge.net/docs/head/gst-entrans-plugins/html/gst-entrans-plugins-shift.html

またはオーディオ用の frie0r 遅延プラグインを変更します。

于 2013-05-08T09:41:55.877 に答える