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, awk und grep
  • 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
  • install bereinigt alte Instanzen und legt die virtuellen Geräte dauerhaft an.
  • route verschiebt aktive Anwendungen und stellt die PipeWire-Verbindungen her.
  • status zeigt Geräte, Audiostreams, Module und relevante Verbindungen an.
  • cleanup entfernt alte manuelle Module und deaktiviert doppelte Konfigurationen.
  • restore-mic setzt 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.

S
Description
No description provided
Readme
37 KiB
Languages
Shell 100%