特定のソースからオーディオをキャプチャしてストリーミングできるように、PulseAudioで仮想出力を作成する必要があります。
pavucontrol
を使用して、特定のアプリケーションの出力を特定の出力デバイスにそのように再ルーティングすることが可能であることを知っています。
私は別のvirtual出力を「出力デバイス」に追加しようとしています:
これは可能ですか?可能な場合、どうすればできますか?
Sudo modprobe snd_aloop
PulseAudioボリュームコントロールに表示されるループバックデバイスをALSAに追加します。ストリームをそこにリダイレクトして、プレストしてください!
複数のループバックデバイスを追加する方法がわかりません。
シンクを追加できます
pacmd load-module module-null-sink sink_name=MySink
pacmd update-sink-proplist MySink device.description=MySink
次のコマンドでループバックデバイスを追加できます
pacmd load-module module-loopback sink=MySink
@mxcの答えを少し補足します。彼は、次のようにして仮想出力としてmodule-null-sinkを使用できると述べました。
pacmd load-module module-null-sink sink_name=MySink
これにより、アプリケーションで使用できる新しいシンク(「仮想出力」)が作成されます。作成するシンクごとに、pulseaudioはモニターソースも作成するため、MySink出力デバイスに加えて、仮想出力に送信されるものをキャプチャするために使用できるMySink.monitor入力デバイスがあります。
このようにして、アプリケーションが出力するオーディオを簡単にキャプチャ、リストリーム、または録音できます。
これは純粋なPulseaudioソリューションであり、Alsaを必要としないため、Pulseaudio用のAlsaとは異なるバックエンドでも動作します。
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}'