PulseAudio仮想オーディオストリームを使用してSkypeで音楽を再生するにはどうすればよいですか?


20

特定のプロセス(A)と別のプロセス(B)のオーディオ出力を聞きながら、Aのオーディオ出力をBのオーディオ入力にリダイレクトしようとしています。これは、音楽と友人の両方を聴きながら、Skypeで音楽を再生し、友人にあなたの声を聞かせることと同じです。

私はそれについてopenSUSEのチュートリアル(Google「Pulse Audioで使用するためのオーディオミキサーを探している(たぶん)」)を試し、ビデオを数回見ました。以前、JACKを試してみましたが、ヘッドセットであるLogitech G35が認識されないことがわかりました。

私は音楽を演奏することができ、友人と一緒にそれを聞くことができますが、同時に声を送ることはできません。友達が聞くのは私の声か音楽のどちらかです。どうすれば音声を送信できますか?

私のセットアップのいくつかの写真(1つのヌル出力を使用):

再生タブ: ここに画像の説明を入力してください

記録タブ: ここに画像の説明を入力してください

回答:


23

何時間もいじくり回した後、ついに達成しました!

2つのヌル出力を作成し、最初のループバックを2つ、2つ目のループバックを1つ作成しました。

pactl load-module module-null-sink sink_name=Virtual1
pactl load-module module-null-sink sink_name=Virtual2
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual2

次に、PulseAudio Volume Control(pavucontrol)を開きました

これらは私の設定です。表示される順に入力しました。数字は上から下に行きます。

  • 記録タブ:

    • アプリケーション:
      • すべてのアプリケーションは、ヘッドセット/マイクから入力する必要があります。
      • オーディオを送信するアプリケーションを除き、次のいずれかに設定する必要があります。オーディオのみを送信する場合:ヌル出力のモニター1.リストの最初の「ヌル出力」になります。オーディオと音声の両方を送信する場合:ヌル出力のモニター2.リストの2番目の「ヌル出力」になります。
    • 仮想ストリーム:
      • ヌル出力へのループバック(1):ヘッドセット/マイク
      • ヘッドセット/マイクへのループバック:ヌル出力1.リストの最初の「ヌル出力」になります。
      • ヌル出力へのループバック:ヌル出力1.リストの最初の「ヌル出力」になります。
  • 再生タブ:

    • アプリケーション:
      • すべてのアプリケーションは、ヘッドセット/スピーカーに出力する必要があります。
      • Skype /ストリームを介して記録/送信するアプリケーションをNull出力1に設定する必要がある場合を除き、リストの最初の「Null出力」になります。
    • 仮想ストリーム:
      • ヘッドセットのループバック:ヌル出力2.リストの2番目の「ヌル出力」になります。
      • ヌル出力のモニターのループバック(1):ヘッドセット。
      • ヌル出力のモニターのループバック(2):ヌル出力2。これはリストの2番目の「ヌル出力」になります。

11

「null出力」と混同しないように、次のように名前を指定します。

pactl load-module module-null-sink sink_name=Virtual1 sink_properties=device.description="NAME HERE (mic+music)"
pactl load-module module-null-sink sink_name=Virtual2 sink_properties=device.description="NAME HERE (only music)"
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual2

1

@MikWindによって提案された改善よりもさらに進んで、作成時にループバックデバイスのソースを構成することができます。

私はついに、定数であるすべてをセットアップするbashスクリプトを手に入れました。

#!/bin/bash

MICROPHONE="alsa_input.pci-0000_00_1b.0.analog-stereo"
SPEAKERS="alsa_output.pci-0000_00_1b.0.analog-stereo"

# Create the null sinks
# virtual1 gets your audio source (mplayer ...) only
# virtual2 gets virtual1 + micro
pactl load-module module-null-sink sink_name=virtual1 sink_properties=device.description="virtual1"
pactl load-module module-null-sink sink_name=virtual2 sink_properties=device.description="virtual2"

# Now create the loopback devices, all arguments are optional and can be configured with pavucontrol
pactl load-module module-loopback source=virtual1.monitor sink=$SPEAKERS
pactl load-module module-loopback source=virtual1.monitor sink=virtual2
pactl load-module module-loopback source=$MICROPHONE sink=virtual2

動作するように十分に理解するまで数時間苦労したため、研究結果(スクリプト、ドキュメントリンク、説明)をgitリポジトリにまとめました。

私以外の誰にも役立つかどうかはわかりませんが、私が自分の研究をしたときにこの種のドキュメントを見つけたいと思っているので、同じようなことをしようとしている人にお勧めしますご覧ください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.