Natenoms Wiki

Weil Teilen Spaß macht :)

Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Übersetzungen dieser Seite:

Navigation



Lizenz dieses Wikis
Über dieses Wiki
Feed des Wikis
Impressum


Was gerade in meinem Blog geschieht:

mumble:audiobots:low-bandwidth-bot

Low-Bandwidth-Bot (auf Basis von normalen Mumble-Clienten)

Weitere Audiobots siehe AudioBots für Mumble.

Das Problem

Jeder Mumble-Client sendet mit der bei sich selbst (unter Audioeingabe→Qualität) eingestellten Qualität und Latenz seinen Audiostream (das was er redet) an den Server und dieser leitet die Daten ohne Konvertierung an alle Clients (Zuhörer) im Kanal weiter.

Ein Benutzer hat keinen Einfluss darauf, mit welcher Qualität er die Daten der anderen Benutzer empfängt; das legen diese fest. Die Einstellungen unter Audioeingabe→Qualität betreffen nur die eigene Sendequalität.

Wer jedoch mit UMTS unterwegs ist, hat je nach Anbieter und Tarif aber wenig Bandbreite und Datenvolumen zur Verfügung. Oft reicht das nicht aus um den Audiostream von mehreren Benutzern gleichzeitig zu empfangen.

Und selbst dann, wenn alle Benutzer ihre Sendequalität herunterdrehen würden, wäre es bei mehr als x Benutzern immer noch zu viel Bandbreite; deshalb scheidet diese Möglichkeit aus.

Für eine Bandbreite von nur insgesamt 15,8 kBit/s je Stream (1 up + 1 down) wird die Verwendung der aktuellen Version 1.2.4 empfohlen. Denn die neue Version unterstützt den Opus-Codec mit verbesserter Qualität im Vergleich zu CELT.

Die Lösung

Hier kommen die beiden Bots ins Spiel, welche auf einem Server (oder bei einem anderen Benutzer mit genügend Bandbreite) laufen:
Der Bot UMTS-Bot Others, der im Kanal mit mehreren Benutzern sitzt, empfängt die Audiostreams derjenigen, mischt diese zu einem Audiostream und leitet diesen an den Bot UMTS-Bot User weiter, welcher im Kanal mit dem Benutzer sitzt, der per UMTS verbunden ist; dadurch empfängt dieser nur noch einen Stream in niedriger Qualität.

Die Voraussetzungen

Ein Rechner mit funktionierendem Jack-Audio-Connection-Kit (JACK) und zwei portablen Mumble-Clients mit dem JACK-Patch.

(Eine Anleitung, wie man auf einem Server eine Headless-VM einrichtet gibt es hier: Jack-Sound-Server in VM als Bot.)

Der Benutzer muss auf jeden Fall einen Up- und Downstream von je 15,8 kbits/s haben; falls es weniger ist, gehen Pakete verloren.

Alternativ funktioniert solch ein Konstrukt auch mit PulseAudio und dem Null-Sink-Modul, wie man das grundsätzlich einrichtet steht z. B. unter Mumble-Musikbot mit PulseAudio und eigener virtueller Soundkarte.

Anleitung

Jack sollte bereits laufen, dann startet man zwei portable Mumble-Clients, die man zuerst miteinander verknüft und dann entsprechend konfiguriert (siehe unten).

Zum Verknüpfen der Kanäle kann man z. B. patchage verwenden.

Mumble-Clients miteinander verknüpfen

Die Ein- und Ausgänge der beiden Bots werden miteinander verknpüft:

Gleiche Einstellungen bei Audioausgabe für beide Bots

Die Ausgabeeinstellungen beider Bots sollten meinem Verständnis nach die beste Qualität und die niedrigste Latenz eingestellt haben, da letztlich die Audioeingabe jedes Bots die Ausgabe des anderen Bots auf die nötige Bandbreite, Qualität, Verzögerung usw. konvertiert.

  • Standard Jitter-Puffer: 10ms
  • Lautstärke: 100%
  • Ausgabeverzögerung: 10ms

Unterschiedliche Einstellungen der Audioeingabe beider Bots

UMTS-Bot User

Der Audiostream des UMTS-Bot Others, der ein Mix aller Audiostreams der Benutzer im entsprechenden Kanal ist, wird mittels JACK als Audioeingabe an den Bot UMTS-Bot User weitergeleitet.

Unser Ziel: Möglichst gerine Qualität und hohe Latenz, durch die der Bandbreitenbedarf nochmals sinkt, verwenden.

  • Übertragen: Sprachaktivierung
    Hier sind Daten sehr kostbar für den leidigen UMTS-Nutzer; deshalb nur senden wenn auch wirklich jemand spricht.
  • Qualität: Je nach verfügbarer Bandbreite soweit links wie nötig; minimal sind hier 8kb/s.
  • Audio pro Paket: 60ms
  • Rauschunterdrückung: Aus
  • Max. Verstärkung: 1

UMTS-Bot Others

Die Audioausgabe des Bots UMTS-Bot User wird hier als Eingabe von JACK durchgereicht und wird an der Ausgabe an die anderen Benutzer weitergegeben.

Unser Ziel: Soviel wie möglich von der Qualität behalten. Deshalb werden hier mittlere Qualitätseinstellungen verwendet.

  • Übertragen: Sprachaktivierung
  • Qualität: 55,8kb/s
  • Audio pro Paket: 10ms
  • Rauschunterdrückung: Aus
  • Max. Verstärkung: 1

Das Ergebnis

Ausprobieren

Jeder kann gerne auf unseren Server kommen und das Setup ausprobieren; dazu einfach auf den folgenden Link klicken: Zum Natemologie-Zentrum verbinden

mumble/audiobots/low-bandwidth-bot.txt · Zuletzt geändert: 2017/11/12 06:04 von Natenom