Synchronisierte Audioausgabe auf mehreren Rechnern? VLC? Hardware-Lösungen?

7

Ich frage mich, ob es Software- oder Hardwarelösungen gibt, um Audio oder Audio und Video über mehrere Computer oder Geräte in einem Netzwerk zu synchronisieren.

Ich habe Sonos gesehen, und es könnte eine gute Lösung sein, aber es ist auch eine sehr teure Lösung.

Ich möchte in der Lage sein, etwas mit Echtzeit-Audioausgabe auf einem PC wiederzugeben, es aber über Lautsprecher im ganzen Haus zu hören, sei es der Heimkino-Receiver oder ein anderer Computer in einem anderen Raum.

Ich sah eine Lösung mit dem Apple IPort Express, aber die Latenz war für alles andere als nur für Musik inakzeptabel. Ich möchte vermeiden, Audiokabel mit Baluns zu einer Reihe von Verstärkern zu führen, die überall verstreut sind, wenn ich cat5 überall laufen lasse.

Kennt sich jemand mit dieser Art von Verfahren für das gesamte Heim-Audio aus? Die Latenz ist eine große Sache für mich, wenn ich an den Sound ein Video angehängt habe (z. B. ein Hockeyspiel gucken)

AKTUALISIEREN

Seitdem habe ich mehrere Squeezeboxen für Musikzwecke im Haus installiert und einen seriell gesteuerten Onkyo-Empfänger an mein Automatisierungssystem angeschlossen. Dies gibt mir ein wenig mehr Flexibilität und in den meisten Zonen kann ich mithilfe der Multizonen auf dem Receiver Echtzeit-Audio von einem Spiel abrufen. Bei Musik kann ich alle anderen Zonen synchronisieren. Die sqeezeboxes werden miteinander synchronisiert (da es bei Live-Events zu Wartezeiten kommt). In Bereichen, in denen dies ein Problem darstellt (z. B. beim Anschauen eines Hockeyspiels), habe ich HDMI mithilfe eines Matrixschalters auf 4 verschiedene Fernseher verteilt, die alle Audioausgänge haben zu einem Verstärker in diesem Raum. Erlaubt mir, für Live-Events, die Videos benötigen, keine Latenz in verschiedenen Räumen zu haben.

Alles in allem schätze ich die Antworten, aber keine von ihnen hat für mich funktioniert. Ich denke, die HDMI-Distribution ist mit Abstand eine der besten für Video und Audio, und Squeezebox ist billiger als Sonos für Audio (und es gibt Software-Player, die Sie auf jedem PC mit ein wenig Feinabstimmung ausführen können, die sie für eine Synchronisierung direkt aufrüsten können Heim-Audiolösung für viele Zonen)

zimmer62
quelle
Ich habe wirklich keine gute unterstützte Lösung gefunden. Ich denke, ich werde am Ende eine RS232-steuerbare Multizone-Audio-Matrix kaufen und eine Reihe von Kabeln von den Punkten führen, an denen ich Soundausgang und Soundeingang benötige. Schade, aber jede Software-Option wurde entweder nicht unterstützt, es wurde eine Menge Latenz hinzugefügt oder die Synchronisierung wurde nicht gestartet, wenn mehrere Ausgabezonen gleichzeitig verwendet wurden. Ich glaube, ich verstehe einfach nicht, warum es über TCPIP keine Lösung gibt
zimmer62,

Antworten:

1

Wenn die Latenz nicht akzeptabel ist, können Sie den Ton am besten über UKW oder drahtlose Lautsprecher (oder sogar Kabel) im ganzen Haus übertragen .

Matthew Lock
quelle
Ich werde Kabel verlegen und einen Matrix-Audio-Umschalter kaufen.
Zimmer62
3

Probieren Sie Airfoil aus . Ja, es funktioniert am besten für Musik, aber es kann jede Audioausgabe von jeder Anwendung verarbeiten. Es hat eine eigene Video-Player-App, die Audio / Video für Videodateien synchronisiert.

Ich habe Lautsprecher im ganzen Haus verteilt, die entweder an einen Computer oder einen Flughafen-Express angeschlossen sind. Ich kann Sound von jedem Programm auf jedem Computer im Haus ausgeben und auswählen, über welche Lautsprecher der Sound ausgegeben wird. Es ist bekannt, dass ich auf Partys auch einen iPod-Touch an tragbare Lautsprecher im Freien anschliesse.

Curtis Tasker
quelle
Ich habe Airfoil ausprobiert und meine größte Beschwerde war die Latenz, die für Musik in Ordnung war, aber in meiner Anwendung brauche ich so wenig Latenz wie möglich. Die meiste Musik spielt keine Rolle, aber stellen Sie sich vor, Sie möchten ein Live-Sportereignis verfolgen, wenn sich Ihr Sound sogar um einige hundert Millisekunden verzögert.
Zimmer62
2

Pulseaudio sollte das tun, ich glaube, das ist zumindest, was die FAQ sagt

Geselle Geek
quelle
"Microsoft Windows-Binärdateien können von Cendio heruntergeladen werden. Beachten Sie, dass es sich um 0.9.6 vom November 2007 handelt. Sie funktionieren, sofern Sie anscheinend nur eine Soundkarte verwenden." Es scheint, dass die Windows-Plattform für diese Software nicht sehr gut unterstützt wird. Ich erinnere mich, es vor einem Jahr versucht zu haben und hatte keinen Erfolg.
Zimmer62
2

Wir entschuldigen uns für die Länge dieser Antwort - es handelt sich um mehrere Wochen Test-und-Fehler-Forschung. Ich fürchte, die Details könnten von Bedeutung sein, deshalb habe ich mehr als weniger bereitgestellt. Es konzentriert sich auf Audio-Sharing

Wie andere in diesem Thread war ich daran interessiert, Audio mit Räumen zu synchronisieren, in denen sich die akustischen Umgebungen überschneiden. Da sich der Ton mit einer Geschwindigkeit von etwa einem Fuß / Millisekunde bewegt, ist eine Synchronisation mit einer Geschwindigkeit von etwa 10 Millisekunden erforderlich. Ich habe eine Möglichkeit gefunden, diese Funktion mit VLC zu nutzen und sie stundenlang synchron zu halten, ohne zu wandern. Ich gebe zwar zu, dass ich mir den VLC-Quellcode angesehen habe, um zu verstehen, welche Uhren verwendet werden, aber ich gebe nicht vor, zu verstehen, was dort vor sich geht. Darüber hinaus war vieles, was ich getan habe, empirisch. Wenn also die Leute, die VLC wirklich verstehen, Aufschluss darüber geben, wie dies besser zu erreichen ist, bin ich am empfänglichsten. Mit diesen Vorbehalten aus dem Weg zu gehen, scheint das, was ich getan habe, zu funktionieren.

Aufbau

Ich habe vier Bereiche, in denen ich Audio teilen möchte, und eine Sammlung von Computern verschiedener Jahrgänge, die ich bereit bin, Audio bereitzustellen. Auf einigen dieser Computer wird Linux (Ubuntu 12.04) ausgeführt, auf anderen Windows. Insgesamt war es einfacher, die Linux-Boxen als die Windows-Boxen zu synchronisieren, aber es war möglich.

Unter Linux mussten die pulseaudio-Treiber mit ppa: ubuntu-audio-dev / ppa aktualisiert werden, um die Version mit niedriger Latenz zu erhalten. Ansonsten war die Konfiguration Vanille. VLC beklagte sich über die Latenz ohne dieses Upgrade. Ich hoffe, wenn wir den 14.04 bekommen, wird dieses Problem verschwinden.

Auf den Windows-Boxen starte ich Windows 7 Pro.

Das Audio wird von VLC einer Linux-Box geliefert, die unabhängig von den Abspielgeräten ist. Es befindet sich direkt hinter der Firewall, an der das Netzwerk ins Haus gelangt.

Das Netzwerk ist eine Mischung aus kabelgebundenem und kabellosem Gigabit (802.11g).

Dinge, die möglicherweise keine Rolle spielen

Da ich ein Zeitnarr bin, sind alle Maschinen mithilfe von NTP auf der Sub-Millisekunden-Ebene zeitlich miteinander verbunden. Auf den Linux-Boxen ist dies trivial. Auf der Windows-Box verwende ich die Meinberg-Implementierung von ntp (zu finden unter http://www.meinbergglobal.com/english/sw/ntp.htm ). Die Box, die das Audio bereitstellt, wird mit den normalen externen Zeitservern synchronisiert . Die Zeit der Wiedergabegeräte wird jedoch ausschließlich mit dem Audioserver synchronisiert und verfolgt diesen genau. Die Zeile aus der Datei ntp.config auf den Wiedergabegeräten, die dies ausführt

server 10.17.0.12 iburst burst minpoll 4 maxpoll 4 prefer

Dies stellt sicher, dass alle 16 Sekunden Zeitprüfungen durchgeführt werden - natürlich mache ich mir keine Sorgen um den Netzwerkverkehr.

Server

Der Server ist so eingerichtet, dass er den PulseAudio-Stream überwacht, sodass alles, was ich auf dem Server spiele, in den Ausgabestream eingespeist wird.

Der Ausgangsstrom ist ein RTSP-Strom, der zwei Kanäle mit 44,1 kHz bedient. Auch hier gibt es wahrscheinlich Dinge, die ich tun könnte, um Bandbreite zu sparen, aber ich bin mehr daran interessiert, die Synchronisierung richtig zu machen, als die Bandbreite zu minimieren.

In den Einstellungen (unter Extras)

  1. Audio - Stellen Sie in den einfachen Einstellungen sicher, dass Audio mit Zeitdehnung aktiviert ist

    Klicken Sie für die restlichen Einstellungen unten auf der Seite "Einstellungen" auf "Alle"

  2. Echtzeitpriorität zulassen

  3. Netzwerksynchronisation - Überprüfen Sie die Netzwerk-Hauptuhr und geben Sie die IP des Hauptservers an (in meinem Fall dieses System)
  4. Audio - Aktivieren Sie Audio-Resampling in hoher Qualität und aktivieren Sie das Kontrollkästchen Time Stretching für Audio aktivieren
  5. Input / Codecs - dieser scheint am wichtigsten zu sein - scrollen Sie nach unten zum Ende der Seite
    1. Stellen Sie das Netzwerk-Caching auf 300 ms ein. Möglicherweise müssen Sie dies abhängig von der Geschwindigkeit und der Konkurrenz Ihrer Computer variieren. Bei Mine 300 ist dies ausreichend
    2. Clock Reference Average Counter - ich fand, dass 1000 gut funktionierte - dies scheint zu beeinflussen, wie schnell die Synchronisation kleinen Zeitänderungen folgt
    3. Aktivieren Sie die Uhrzeitsynchronisation
    4. Clock Jitter - 30 ms funktioniert auf meinen Systemen
    5. Überprüfen Sie die Netzwerksynchronisation
    6. Ich habe Dateinamen für das Record-Verzeichnis und das Timeshift-Verzeichnis angegeben. Ich weiß nicht, ob dies von Bedeutung ist
    7. Timeshift-Granularität - Ich habe wieder auf 1000 gesetzt und bin mir nicht sicher, ob das wichtig ist.

Kunden

Richten Sie die Clients so ein, dass sie den vom Server bereitgestellten Stream wiedergeben.

Die Clients sind bis auf wenige Ausnahmen so eingestellt, dass sie mit dem Master übereinstimmen - hier werde ich nur die Unterschiede auflisten

Windows-Einstellungen

  1. Erhöhen Sie die Priorität des Prozesses
  2. Stellen Sie die Uhrzeitquelle auf Systemzeit (gefährlich!) - Ich habe die anderen Einstellungen ausprobiert und sie tendieren dazu, zu driften. Dies scheint gut zu funktionieren, solange das NTP seinen Job macht. Wenn ich NTP ausschalte, beginnen die Dinge zu driften. Beim Betrachten des Quellcodes sieht es so aus, als ob diese Option verwendet wird GetSystemTimePreciseAsFileTime ()- auf modernen Systemen ist dies ein Sub-Mikrosekunden-Timer und scheint die Uhr zu sein, die NTP verwaltet. Ich bin mir sicher, dass es einen Grund gibt, warum es als gefährlich eingestuft ist. Die Verwendung erfolgt also auf eigenes Risiko - es scheint für mich zu funktionieren.
  3. In der Netzwerksynchronisation - Überprüfen Sie nicht die Netzwerk-Hauptuhr (dies ist immerhin der Client). Geben Sie die IP-Adresse für Ihre Hauptuhr an.

Ansonsten ist alles wie beim Master.

Linux -

Einstellungen

  1. Sie haben keine Wahl auf der Uhr - Sie müssen die IP des Masters genau wie für Windows angeben.

Vorbehalte

Nach alledem scheinen alle von mir eingerichteten Linux-Clients gut zu funktionieren - sogar ein sehr altes Netbook mit sehr wenig PS.

Windows ist eine andere Geschichte. Ich habe zwei Boxen mit i7-Prozessoren ausprobiert - sie sind relativ neu und schnell. Einer, ein Lenovo-Laptop, arbeitet mit dem obigen Rezept. Die andere, eine Shuttle-Box, funktionierte bis zu einem gewissen Grad, aber nach ein paar Stunden begann sie zu treiben. Endlich habe ich aufgegeben und es auf Dual Boot mit Ubuntu eingestellt. Sobald ich das getan habe, hat einfach alles funktioniert. Obwohl ich davon überzeugt bin, dass Windows funktionieren kann, da ich einen Existenznachweis habe, scheint Linux einer zuverlässigen Lösung näher zu sein. Ich habe jetzt drei Boxen mit dem Linux-Client, und alle funktionieren einwandfrei und bleiben auf Zeitskalen von vielen Stunden synchron, ohne dass der VLC-Client neu gestartet werden muss.

Charles McMillan
quelle
Willkommen bei Super User . Entschuldigen Sie die Länge nicht! Lange Antworten sind besser. Vermeiden Sie hier das Wort "Thread", da dies kein Diskussionsforum ist, sondern nur eine Frage und Antwort.
Kevin Panko
1

Zu diesem Zweck sollte es möglich sein, VLC zu verwenden.

Siehe zB How-To: Fast alles mit VLC streamen :

"... wir zeigen Ihnen, wie Sie jede Art von Mediendatei von Ihrem Computer auf ein anderes Gerät in Ihrem Netzwerk streamen können ... Mit diesen Techniken können Sie Videos von Ihrem Bürocomputer auf einen Laptop streamen, der an den Fernseher im Wohnzimmer angeschlossen ist und steuere die Wiedergabeliste mit deinem PDA. "

Peter Mortensen
quelle
Ich habe in diesem Artikel nichts über das Synchronisieren der Wiedergabe auf mehreren Computern gesehen. Ich schätze, ich kann es installieren und mit der Software spielen, um zu sehen, ob ich Optionen finde, die die beiden Maschinen synchron halten.
Zimmer62