Squeezelite synchronisieren und Optimieren

Mit dem Squeezlite auf einen Raspberry lässt sich zusammen mit dem LMS (Logitec Media Server) oder auch Squeeze Server genannte ein günstiges MultiRoom System aufbauen. In anderen Beiträgen habe ich schon viele Punkte beschreiben. Zentrale Tablet Steuerung, Androids APPs, Installation des Squeezelite, sowie alternativen zur Sound Ausgabe wie HDMI, USB oder auch den HifiBerry AMP (mit Verstärker 2X25W).

Nach dem ich jetzt 3 Raspberry Clients habe, bekam ich immer wieder Probleme bei der Synchronisierung der 3 Zonen. Was bei einem Multiroom System sehr störend ist, gerade wenn sich die 3 Lautsprecher paare in Hörweite sich befinden. Auch ein stottern bzw eine verzerrte Wiedergabe war sehr oft der Fall. Nach einigen experimentieren habe ich jetzt das System so konfiguriert, das die Synchronisation und die Sound Qualität sehr gut sind.

Sound Karten:

Als erstes habe ich alle PIs mit HDMI Audio Adapter versehen. Die Qualität ist besser als bei den USB Soundkarten. Auch die Verstärker sind nicht so brumm anfällig. Jedenfalls was die Verstärker Bausätze (fertig Module) angeht,

Eine Anleitung zum einrichten habe ich hier beschrieben (HDMI Audio Ausgabe). Alternativ tut es auch eine USB Soundkarte. Die Ausgabe über die 3,5 Klinke ist beim alten Model (A-Model) sehr schlecht. Beim neuen Modul (B Model) ist es schon besser.

Audio Settings:

Bei der Wiedergabe gab es immer wieder Probleme das man ein stottern oder eine Art hängen des Streams gehört hat. Nach einigen Tests konnte ich die Soundkarten ausklammern. Dann fand ich das Problem beim Audio Buffer vom SqueezeLite liegt. Dieser ist im Default zu klein ausgelegt. Bei mir werden diese Werte im INIT Script beim start mit übergeben:

sudo nano /etc/init.d/squeezelite

Die Zeile

#SLBUFFER=200000:8:

ist für den Wert des Buffers zuständig. Diese Zeile ändern in:

SLBUFFER=40:8::

Danach den SqueezeLite neu starten mit

sudo service squeezelite stop
sudo service squeezelite restart

Einige habe Version von Installationen haben die Konfiguration in /usr/local/bin/squeezelite_settings.sh liege oder auch beim SqueezePlug in /etc/default/squeezelite. Der SLBUFFER wird beim starten des Squeezelite mit der Option -a 40:8:: übergeben, für alle anderen Konfigurations Methoden.

Damit sollten die Wiedergabe Probleme aufhören.

Synchronisierung:

Das alles Player auch synchrone alles wiedergaben war die größte Herausforderung. Manchmal starten die einzelnen Squeezelite Clients nicht gleichzeitig oder verlieren mit der Zeit die Synchronität. Auch das andauernde nach regeln der was der LMS (Server) macht um die Streams anzupassen war hörbar. Die Settings werden im LMS (Logitech Media Server) für jeden einzelnen Client gemacht. Da meine Clients alle die gleiche Hard und Software haben sind diese bei mir alle gleich. Auswirkungen können verschiedene Sound Ausgaben wie USB Soundkarte , HDMI etc sein, oder auch die Raspberry Variante oder auch evtl Netzwerk Laufzeit Verzögerungen. Clients über W-Lan brauchen da angepasste Settings.

Den LMS über das Webinterface aufrufen unter:

http://IPdesLMS:9002 (bei einer Qnap Installation)

http://ipdesLMS:9000 (bei default Installationen)

Web Interface Squeeze LMS Server
Web Interface Squeeze LMS Server

Nach Aufrufen des Web Interface unten Rechts auf Einstellungen gehen.

Dann auf die Registerkarte/TAB Player gehen. Hier können nun die einzelnen Player eingestellt werden. Diese müssen eingeschaltet sein und mit dem Server VErbunden sein damit sie dort zu sehen sind. Die Seite kann, wenn ein Player erst nachträglich gestartet wird, einfach über den Browser aktualisiert werden. Dann sollte auch der Player dort auftauchen.

Den Player auswählen und dann daneben den Punkt Synchronisieren. Der Punkt synchronisieren erscheint nur wenn mehr als 2 Player am LMS angemeldet

SqueezeLMS Server Player Einstellungen
SqueezeLMS Server Player Einstellungen

sind!!!

Folgende Einstellungen gibt es :

Synchronisieren:

Hier tauchen die einzelnen Player auf. Wenn Player immer mit einander Synchronisiert werden sollen, dann kann das hier ausgewählt werden.

Lautstärke synchronisieren:

Wenn bei einen Player die Lautstärke verändert wird, wird das bei allen anderen synchronisierten auch angewendet.

Ein-/Ausschalten synchronisieren:

Wenn ein Player ausgeschaltet wird, wird das bei allen anderen synchronisierten auch angewendet.

Synchronisation beibehalten:

Der Server versucht die Synchronität aufrecht zu halten.

Startverzögerung des Players (ms):

Startverzögerung des Players beim abspielen eines Streams. Die Zeit benötigt der Player um ggf den BUFER zu füllen. Als Default Wert hat sich hier der Wert 300 erwiesen.

Audioverzögerung des Players (ms):

Audio Laufzeitverzögerungen können durch verschiedene Hardware wie USB Soundkarte oder HDMI auftreten. Als Default Wert hat sich hier der Wert 300 bei HDMI Ausgabe und 380 bei verwendug des HifiBerry AMP erwiesen.

Minimale Synchronisationsanpassung (ms):

Wie oft soll der Server die Clients Synchronisieren. Als Default Wert hat sich hier der Wert 50 erwiesen.

Netzwerkpaket-Wartezeit (ms):

Durch W-Lan und verschiedene Netzwerk  Switche etc kann der Stream unterschiedlich lange brauchen um zum Client zu kommen. Als Default Wert hat sich hier der Wert 20 erwiesen. Bei W-lan kann es auch mal 100 sein.

Mit diesen Einstellungen läuft das Ganze sehr stabil und vor allen sehr Synchron. Für Internet Radio sollten man noch bei den Player Einstellungen unter Audio den Punkt Streaming-Methode auf Streaming über Proxy setzen. Das bedeutet das nur ein Audio Stream (bedeutet auch weniger Trafik) für alle Clients abgerufen wird und dann zu allen Clients verteilt wird. Somit können keine Verzögerungen seitens des Internet Radio Anbieters auftreten.

2 Gedanken zu „Squeezelite synchronisieren und Optimieren“

Kommentar verfassen