PulseAudioで仮想出力を生成するには?

PulseAudioで仮想出力を生成するには?

特定のソースからオーディオをキャプチャしてストリーミングするには、PulseAudioで仮想出力を生成する必要があります。

次のコマンドを使用して、特定のアプリケーションの出力を特定の出力デバイスに再ルーティングできることを知っていますpavucontrol

ここに画像の説明を入力してください。

もう一つ追加したい仮想「出力デバイス」に出力: ここに画像の説明を入力してください。

可能ですか?それではどうすればいいですか?

答え1

シンクを追加できます。

pacmd load-module module-null-sink sink_name=MySink
pacmd update-sink-proplist MySink device.description=MySink

次のコマンドを使用してループバックデバイスを追加できます。

pacmd load-module module-loopback sink=MySink

答え2

sudo modprobe snd_aloop

PulseAudio ボリュームコントロールに表示される ALSA にループバックデバイスを追加します。ストリームをそこにリダイレクトしてください!

複数のループバックデバイスを追加する方法がわかりません。

答え3

@mxcの答えにいくつかの追加があります。彼は module-null-sink をダミー出力として使用できると述べた。

    pacmd load-module module-null-sink sink_name=MySink

これにより、アプリケーションで使用できる新しいシンク(「仮想出力」)が作成されます。作成したシンクごとに、pulseaudioはモニタソースも作成するため、MySink出力デバイスに加えて、仮想出力に送信される内容をキャプチャするために使用できるMySink.monitor入力デバイスがあります。

これにより、アプリケーションのオーディオ出力を簡単にキャプチャ、再送信、または録音できます。

これはAlsaを必要としない純粋なPulseaudioソリューションなので、PulseaudioのAlsaとは異なるバックエンドを使用することもできます。

答え4

snd_aloop私のシステムで動作させることはできません。また、使用時にffmpeg -f pulse -i alsa_output.pci-0000_00_1f.3.analog-stereo.monitor etc.システム録画が1〜2秒程度遅れます。 mxcの答えは解決策を見つけるのに役立ちましたが、いくつかの情報を追加したいと思います。

まず、内蔵オーディオのパルスモニターをデフォルト値に設定する必要がありました。次に、上記のコマンドを実行します。毎回私のプロフィールでデフォルトに設定したいので、~/.config/pulse/default.pa次の行を作成して追加しました。

.include /etc/pulse/default.pa

set-default-source alsa_output.pci-0000_00_1f.3.analog-stereo.monitor
load-module module-null-sink sink_name=MySink
update-sink-proplist MySink device.description=MySink
load-module module-loopback sink=MySink

最初の行には、システム全体のPulseAudio設定が含まれています。これにより、最後の4行がすべてのシステム設定よりもユーザーに優先的に適用されます。もちろん、前に4行があれば端末で実行できますpacmd

内蔵オーディオデバイスのパルスモニタ名を取得するには、次の手順を実行します。

pacmd list-sources | awk '/index:/ {print $0}; /name:/ {print $0}; /device\.description/ {print $0}'

関連情報