3.9 KiB
Streaming Audio
streaming-audio.sh richtet ein persönliches Streaming-Audiorouting für Fedora,
PipeWire, OBS und Discord ein. Das Skript trennt Spiel- und Systemton, Discord,
Firebot und Soundboard in eigene virtuelle Ausgänge.
Signalwege
| Virtuelles Gerät | Verwendung | Kopfhörer | OBS | Discord |
|---|---|---|---|---|
game_audio |
Spiel- und Systemton | ja | ja | nein |
discord_sink |
Stimmen aus Discord | ja | ja | nein |
firebot_sounds |
Firebot und Browser | ja | ja | nein |
soundboard_sounds |
Soundboard und Stream Deck | ja | ja | ja, leiser |
discord_micmix |
Gefiltertes OBS-Mikrofon und Soundboard-Kopie | nein | nein | ja |
Das echte Mikrofon wird zuerst in OBS bearbeitet. Das OBS-Audiomonitoring leitet
die gefilterte Stimme anschließend an discord_micmix und damit an das virtuelle
Eingabegerät Discord-Mikrofon weiter.
Voraussetzungen
- Fedora oder ein vergleichbares System mit PipeWire und WirePlumber
bash,pactl,pw-link,systemctl,awkundgrep- OBS Studio und Discord
Die Gerätenamen und Routing-Regeln sind auf das ursprüngliche System abgestimmt.
Vor einer Verwendung auf einem anderen Rechner müssen insbesondere MIC_RE,
LINE_OUT_RE und gegebenenfalls die Erkennung der Anwendungen im Skript angepasst
werden.
Installation
git clone https://git.hnz.io/hnzio/streaming-audio.git ~/Projekte/streaming-audio
ln -s ~/Projekte/streaming-audio/streaming-audio.sh ~/bin/streaming-audio.sh
~/bin/streaming-audio.sh install
install schreibt die PipeWire-Konfiguration nach
~/.config/pipewire/pipewire.conf.d/10-streaming-sinks.conf und startet die
PipeWire-Benutzerdienste neu. Laufende Audioverbindungen werden dabei kurz
unterbrochen. Danach sollten OBS, Discord, Firebot und das Soundboard neu gestartet
werden.
Verwendung
~/bin/streaming-audio.sh install
~/bin/streaming-audio.sh route
~/bin/streaming-audio.sh status
~/bin/streaming-audio.sh cleanup
~/bin/streaming-audio.sh restore-mic
installbereinigt alte Instanzen und legt die virtuellen Geräte dauerhaft an.routeverschiebt aktive Anwendungen und stellt die PipeWire-Verbindungen her.statuszeigt Geräte, Audiostreams, Module und relevante Verbindungen an.cleanupentfernt alte manuelle Module und deaktiviert doppelte Konfigurationen.restore-micsetzt das erkannte ZOOM/H6 wieder als Standardmikrofon.
route sollte ausgeführt werden, wenn OBS, Discord und die zu routenden Anwendungen
bereits laufen oder gerade Ton ausgeben. Spiele sollten danach gestartet werden,
damit sie den virtuellen Standardausgang game_audio verwenden.
OBS und Discord
In OBS unter Einstellungen > Audio > Erweitert:
- Audiomonitoring-Gerät:
DiscordMicMix
In den erweiterten Audioeigenschaften:
- Mikrofon:
Monitor und Ausgabe - Soundboard und alle anderen Quellen: Monitoring aus
In Discord:
- Eingabegerät:
Discord-Mikrofon
DiscordMicMix darf nicht als eigene OBS-Quelle aufgenommen werden. Auch der
physische Line-Out sollte nicht zusätzlich in OBS aufgenommen werden, da sonst
doppelte Signale oder Hall entstehen können.
Pegel anpassen
Die Pegel und die Loopback-Latenz lassen sich über Umgebungsvariablen ändern:
DISCORD_MIC_VOLUME=110% \
DISCORD_SOUNDBOARD_VOLUME=70% \
DISCORD_SOUNDBOARD_LATENCY_MS=40 \
~/bin/streaming-audio.sh route
Standardwerte sind 115%, 75% und 30 Millisekunden.
Hinweise zu cleanup
Das Skript sucht in ~/.config/pipewire/pipewire.conf.d nach anderen
Konfigurationen, die Namen seiner virtuellen Geräte enthalten. Solche Dateien
werden nicht gelöscht, sondern mit dem Zusatz .disabled-by-streaming-audio
umbenannt. Falls dieser Name bereits existiert, wird eine freie nummerierte Variante
verwendet.
Vor dem ersten Einsatz auf einem anderen System empfiehlt es sich, die vorhandenen PipeWire-Konfigurationen zu sichern und die Trefferbedingungen im Skript zu prüfen.