web-dev-qa-db-ja.com

PulseAudioで仮想出力を作成するにはどうすればよいですか?

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

pavucontrolを使用して、特定のアプリケーションの出力を特定の出力デバイスにそのように再ルーティングすることが可能であることを知っています。

私は別のvirtual出力を「出力デバイス」に追加しようとしています:

これは可能ですか?可能な場合、どうすればできますか?

14
Naftuli Kay
Sudo modprobe snd_aloop

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

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

11
Naftuli Kay

シンクを追加できます

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

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

pacmd load-module module-loopback sink=MySink
14
mxc

@mxcの答えを少し補足します。彼は、次のようにして仮想出力としてmodule-null-sinkを使用できると述べました。

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

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

このようにして、アプリケーションが出力するオーディオを簡単にキャプチャ、リストリーム、または録音できます。

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

5
Martin

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}'

0
jbrock