Ich arbeite an zwei Computern mit einem USB-Headset. Ich möchte beides hören, indem ich die Ausgabe der Nicht-Linux-Computer in den Line-In (blaue Audiobuchse) des Linux-Computers leite und das Signal mit PulseAudio in den Headset-Ausgang des Linux-Computers mische.
pavucontrol zeigt ein „Integriertes analoges Stereo-Audio“-Eingabegerät an, mit dem ich Anschlüsse wie „Line In“ (ausgewählt), „Frontmikrofon“ und „Rückmikrofon“ auswählen kann. Ich kann sehen, wie die Lautstärkeanzeige des Geräts auf die Audiowiedergabe auf dem Nicht-Linux-Computer reagiert.
Wie bringe ich PulseAudio dazu, dieses Audiosignal auf dem Ausgabegerät meiner Wahl wiederzugeben?
Antwort1
1. Laden Sie das Loopback-Modul
pacmd load-module module-loopback latency_msec=5
erstellt ein Wiedergabe- und ein Aufnahmegerät.
2. Konfigurieren Sie die Geräte in pavucontrol
In pavucontrol, in derAufzeichnungRegisterkarte "Loopback" des Geräts festlegenausEingangsgerät an das Gerät, das das Line-In-Signal empfängt.
ImWiedergabeRegisterkarte "Loopback" des Geräts festlegenAnAusgabegerät mit dem Gerät, über das Sie das Line-In-Signal hören möchten.
3. Fehlerbehebung
Wenn es Probleme mit dem Audiosignal gibt, entfernen Sie das Modul pacmd unload-module module-loopback
und versuchen Sie es erneut mit einem höheren latency_msec=
Wert
Zusätzliche Bemerkungen
Ihr moderner Mittelklassecomputer kann möglicherweise mit der folgenden latency_msec=1
Option problemlos eine geringere Latenz erreichen:
pacmd load-module module-loopback latency_msec=1
Diese Antwort wurde ermöglicht durchdieser Forumsbeitrag. Danke!
Antwort2
Wie in derbevorzugte Antwort
pacmd load-module module-loopback latency_msec=5
Das sollte ein Wiedergabe- und Aufnahmegerät erstellen, scheint aber nicht in allen Fällen zu funktionieren. In diesem Fall können Sie versuchen
pactl load-module module-loopback latency_msec=5
Beachten Sie die ähnlichen Argumente bei Verwendung von pactl
Bei mir hat es mit pacmd nicht funktioniert, mit pactl schon.
Hinweis: Beide Optionen sind nur für Pulse Audio und nicht für Pipewire
Antwort3
Ich habe hier eine sehr ähnliche Situation! 2 PCs, eine Linux-Maschine (meine primäre) und eine Windows-Maschine. Ich habe etwas Nettes eingerichtet, um die ZWEI-WEGE-Audioverbindung zu automatisieren. Ich verwende mein Headset mit der Linux-Maschine und Pulseaudio. Ich höre sowohl die Windows-Maschine als auch kann über Linux in das Mikrofon zurück in das Mikrofon der Windows-Maschine sprechen.
Offensichtlich müssen dafür nicht nur 1, sondern 2 AUX-Kabel zwischen den Maschinen angeschlossen werden. Aber es funktioniert wunderbar, seit ich es einmal herausgefunden habe. Um es jedem, der dasselbe tun möchte, leicht zu machen, teile ich mein Skript hier. Damit es funktioniert, müssen Sie nur zwei spezifische Audio-Sink-Namen für Ihre Maschine finden und diese in die Variablen des Skripts einfügen, wenn sie sich von meinen unterscheiden.
#!/usr/bin/env bash
# 2-way audio connection - Slaves 2nd device audio through this device:
# - Directs AUX in to default speakers (connect 2nd device -> AUX).
# - Directs Mic to AUX out (connect AUX out -> 2nd device AUX in).
#
# Then sleeps forever. Stops audio redirection when killed.
#
# Requires:
# sudo apt-get install pactl
#
# Manual Process:
# 1) pavucontrol > Configuration > Built-in Audio > Analog Stereo Duplex
# 2) Find - look for "analog-stereo" (no frills) in both commands:
# pacmd list-sources | grep name:
# pacmd list-sinks | grep name:
# 3) Select - enter found name or ID in this command:
# pactl load-module module-loopback source=$auxinsource source_dont_move=1 sink=$defaultsink
# 4) pavucontrol > Input > Built-in Analog Stereo > Line in (plugged in)
# 5) pavucontrol > Playback > Loopback from Built-in Analog Stereo > SELECT_SPEAKERS
# 6) pavucontrol > Output > Built-in Analog Stereo > Line Out (plugged in)
# 7) pavucontrol > Recording > Loopback to Built-in Analog Stereo > SELECT_HEADSET_MIC
#
# BREAKPOINT:
# read -n 1 -s -r -p 'BREAKPOINT'
auxinsource='alsa_input.pci-0000_00_1f.3.analog-stereo' # Get name of AUX in (Replace these with yours!)
micsink='alsa_output.pci-0000_00_1f.3.analog-stereo' # Get name of AUX out (Replace these with yours!)
set -e
printf '\n 1) Connect Audio IN (Win->)...'
defaultsink=$(pactl get-default-sink) # Get name of currently selected speakers
modulein=$(pactl load-module module-loopback source=$auxinsource source_dont_move=1 sink=$defaultsink) # Locked from manual selection in GUI, will not jump around
#modulein=$(pactl load-module module-loopback source=$auxinsource sink=$defaultsink) # Unlocked for manual selection in GUI, but may jump around
#echo ' ' $defaultsink ' connected!' # Debug output
echo ' connected!'
printf '\n 2) Connect Audio OUT (<-Mic)...'
modulemic=$(pactl load-module module-loopback latency_msec=10 source_dont_move=1 sink=$micsink) # Locked from manual selection in GUI, will not jump around
#modulemic=$(pactl load-module module-loopback latency_msec=10 sink=$micsink) # Unlocked for manual selection in GUI, but may jump around
#echo ' ' $micsink ' connected!' # Debug output
echo ' connected!'
printf '\n CTRL+C to stop' # Flavor text.
function cleanup
{
pactl unload-module $modulemic
if [ ! -z ${modulein+x} ]; then
pactl unload-module $modulein
else
echo
fi
}
trap cleanup EXIT
sleep infinity
Und für eine geführte Schritt-für-Schritt-Fehlerbehebung bei diesem Setup (optional),
#!/usr/bin/env bash
# Troubleshooting steps for audioconnect
#
# Requires:
# sudo apt-get install pactl
#
# BREAKPOINT:
# read -n 1 -s -r -p 'BREAKPOINT'
printf ' 1) pavucontrol > Configuration > Built-in Audio > Analog Stereo Duplex'
read -n 1 -s -r -p ''
echo ': OK'
printf ' 2) pavucontrol > Input > Built-in Analog Stereo > Line in (plugged in)'
read -n 1 -s -r -p ''
echo ': OK'
printf ' 3) pavucontrol > Playback > Loopback from Built-in Analog Stereo > SELECT_SPEAKERS'
read -n 1 -s -r -p ''
echo ': OK'
printf ' 4) pavucontrol > Output > Built-in Analog Stereo > Line Out (plugged in)'
read -n 1 -s -r -p ''
echo ': OK'
printf ' 5) pavucontrol > Recording > Loopback to Built-in Analog Stereo > SELECT_MIC'
read -n 1 -s -r -p ''
echo ': OK'