私はLinux、Ubuntuを使用しており、オーディオソースpulse audio
(マイクなど)にオーディオエフェクトを適用し、それをarecordまたは他のアプリケーションで使用でき、一般的に使用されている新しいシンクにパイプしたいのですが、主なコンテンツに関するフィードバックを受けました。流し台(非分離)。
VirtualSink
モジュールを使用してというダミー受信機を作成しました。モジュールヌル受信機渡す:
pactl load-module module-null-sink sink_name=VirtualSink sink_properties=device.description=Virtual_Sink
私のマイクソースを含むすべてのソースのリストを取得しpactl list sources short
、ffmpegを実行してマイクソースを使用してエコーを適用し、以下を介してVirtualSinkのモニタに渡します。
ffmpeg -f pulse -i <mic-source> -af "aecho=0.8:0.9:1000:0.3" -f pulse "VirtualSink.monitor"
仮想リスナーは実際に作成され、arecord / Skypeなどのアプリケーションで表示され、ストリームは通過しますが問題があります。
- マイクのオーディオはスピーカー/ヘッドフォンで聞くことができます(アプリケーションとメインレシーバーの出力に転送されます)。
- 数秒後、スピーカー/ヘッドフォンから音が聞こえます(一種のフィードバック)。
ミュートと変更コントロールを見てみpavucontrol
ましたが、違いはありませんでした。どちらの問題も解決しないままストリームを沈黙させることがあります。 ffmpegが自動的にプライマリシンクにストリーミングするのは問題ですか、それともOSが新しいシンクを通常のフルシンクに送信するのでしょうか?不足している設定がありますか?
フィードバックを受けずにソースからシンクロにオーディオをストリーミングするシンクを作成するには?