Warum ein Sender unter Windows läuft und auf der Xbox nicht

Die beiden Apps teilen sich jeden Bildschirm und laden zwei verschiedene native Player-Bibliotheken. Fast jeder Unterschied, auf den Sie stoßen werden, kommt aus dieser einen Tatsache.

Die Windows-App und die Xbox-App sind 2 Köpfe einer Codebasis. Dieselben Bildschirme, dieselbe Geschäftslogik, dasselbe Konto, dieselbe Playlist. Was sich unterscheidet, ist die native Player-Bibliothek darunter, und fast jede Meldung nach dem Muster "hier geht es, dort nicht" führt darauf zurück.

Der Desktop lädt libvlc 3.0.23. Die Konsole bindet einen UWP-Build aus 3.0.16 mit dem App-Container-Modulsatz ein, und das ist die Form, die eine Store-App auf einer Konsole ausliefern darf. Das ist nicht dieselbe Bibliothek mit einer anderen Versionsnummer. Sie tragen verschiedene Module.

                    Windows            Xbox
libvlc              3.0.23             3.0.16 (UWP app-container build)
AV1 hardware        yes, recent GPUs   no decoder in the build
decoder threads     automatic          capped at 3
HDR output          yes                no
audio passthrough   yes                no
usable memory       system RAM         about 1 GB

Prüfen Sie zuerst den Codec

Bei einem Sender, der unter Windows läuft und auf der Konsole scheitert, ist der Video-Codec die wahrscheinlichste Antwort, und die Prüfung im Feld mit den Stream-Informationen dauert 30 Sekunden.

AV1 ist der eindeutige Fall. Das FFmpeg des Konsolen-Builds hat überhaupt keinen AV1-Hardware-Dekoder, AV1 fällt also auf Software zurück. Einen hochauflösenden AV1-Stream auf Konsolen-Hardware in Software zu dekodieren kommt nicht hinterher, und das Ergebnis ist Ruckeln oder gar nichts. Auf einer aktuellen Windows-GPU dekodiert derselbe Sender mühelos in Hardware.

HEVC und H.264 laufen auf beiden einwandfrei. Wenn Ihr streikender Sender einer von diesen ist, ist der Codec nicht Ihre Antwort. Gehen Sie weiter.

Es gibt einen Effekt zweiter Ordnung. Die Konsole begrenzt die Bild-Threads des Dekoders auf 3, und zwar aus einem gemessenen Grund: sich selbst überlassen nahm der Dekoder 6, was bei 4K einen Ausgabepool mit 40 Oberflächen ergab, also etwa 500 MB GPU-sichtbare Belegung gegen rund 1 GB nutzbaren Speicher auf der Konsole. Die Hardware-Dekodierung nutzt diese Threads nicht, die Begrenzung kostet also nichts auf den Pfaden, die funktionieren. Sie beißt nur beim Rückfall auf Software, und genau dort landet AV1.

Warum die Konsole es nicht einfach trotzdem versucht

Weil sie nicht sanft scheitern kann. Dem Player eine Option zu geben, die zu einem Modul gehört, das sein Build nicht trägt, führt nicht zu eingeschränktem Betrieb und wird auch nicht ignoriert; es lässt die gesamte Instanz scheitern. Das ist uns schon einmal passiert, mit einem Vorauslesepuffer-Schalter, und deshalb werden die Schalter heute je Kopf, an einer Stelle, aus einer Positivliste gewählt, wobei die Konsole nur die Teilmenge bekommt, die ihr Build einlösen kann.

Deshalb werden die HDR-Ausgabe und das Durchschleifen des Tons auf der Konsole ausgeblendet statt gezeigt und ausgegraut. Es gibt von beidem keine Teilfassung. 4K und HDR auf der Xbox ist die vollständige Liste dessen, was die Konsole ausgibt und was nicht.

Der Speicher, der die andere Hälfte ist

Auf der Konsole sind rund 1 GB für eine App wie diese nutzbar. Wir haben eine 12 Minuten lange Stöbersitzung auf dem Desktop profiliert, und sie erreichte einen Spitzenwert von 1.080 MB.

Das ist kein knapper Puffer. Es ist gar keiner. Der Bericht sagt es mit eigenen Worten: auf einer Xbox ist der Spitzenwert allein schon eine Beendigung. Das ist ein gegenwärtiges Problem und keine Eigenschaft, und es ist der Grund, warum sich eine Konsole nach 20 Minuten Stöbern anders verhalten kann als auf dem ersten Bildschirm.

Was mich überrascht hat, war, wo der Speicher lag. Ich hatte ein Problem im verwalteten Heap erwartet, die Sorte, um die sich ein Speicherbereiniger irgendwann kümmert. Über drei identische Stöberzyklen hinweg, jeweils nach einer erzwungenen Gen-2-Sammlung gemessen, lag der gehaltene verwaltete Heap bei 61.1, 62.6 und 62.5 MB, also flach, während der Arbeitsspeicher von 827 auf 918 MB stieg. Das Wachstum ist nativ, und das ist die falsche Stelle für einen Profiler des verwalteten Heaps, und der Oberflächen-Thread blockierte dabei nie länger als 392 Millisekunden, es fühlte sich also nichts langsam an, während es geschah.

Die zugehörige Zahl: ein Kaltstart der Konsole wurde mit 39.5 Sekunden und 1.4 GB gemessen, gegen etwa 4.6 Sekunden für einen warmen Desktop-Start. Wenn Ihre Konsole beim ersten Lauf des Tages langsam ist und danach in Ordnung, sehen Sie genau dieses Muster.

Wenn es nicht der Codec ist

Führen Sie das der Reihe nach aus.

Probieren Sie denselben Sender auf der Konsole direkt nach einem Neustart der App. Läuft er dann und nach einer Stöbersitzung nicht, sehen Sie Speicherdruck und nicht den Sender.

Probieren Sie einen anderen Sender derselben Quelle. Wenn alles aus dieser Quelle auf der Konsole scheitert und unter Windows läuft, verdächtigen Sie das Verbindungslimit und nicht die Konsole: 2 Geräte gegen einen Zugang mit 2 Verbindungen heißt, dass das zweite abgewiesen wird, und welches Gerät verliert, hängt davon ab, welches als Zweites gefragt hat. Maximale Verbindungen behandelt das.

Prüfen Sie, ob die Konsole im Funknetz hängt und der PC am Kabel. Banal, und häufig die ganze Antwort.

Eine Kategorie, die kein Defekt ist

Bevor Sie irgendetwas melden: mehrere Ziele auf der Konsole sind nach Entwurf Platzhalterbildschirme. Quellen, Profile, Geräte, Einstellungen, Abonnement, der eigenständige Programmführer und die Erinnerungen zeigen alle einen Platzhalter, und jedes einzelne davon ist eine Verwaltungsoberfläche und keine zur Wiedergabe.

Ein Bildschirm, den Sie unter Windows erreichen und auf der Konsole nicht, ist also meist die Aufteilung, die wie beabsichtigt funktioniert. Die Installation auf der Xbox erklärt, wo diese Linie gezogen wird und warum.

Für die allgemeine Einordnung von Wiedergabefehlern ist Pufferung und Ruckeln beheben der Ausgangspunkt.

Was dieser Artikel gemessen hat21 Behauptungen, jeweils mit den Beweisen dahinter
AnspruchBeweiseGezählt
Beide Köpfe übersetzen dieselben gemeinsamen XAML-Seiten und dieselbe Geschäftslogik und laden unterschiedliche native Player-Bibliotheken: 3.0.23 auf dem Desktop, einen UWP-Build aus 3.0.16 auf der Konsole.n = 123.08.2026
Das FFmpeg des Konsolen-Builds trägt keinen AV1-Hardware-Dekoder, AV1 fällt dort also auf die Dekodierung in Software zurück.n = 123.08.2026
Die Konsole begrenzt die Bild-Threads des Dekoders auf 3. Sich selbst überlassen nahm der Dekoder 6 und erzeugte bei 4K einen Ausgabepool mit 40 Oberflächen, also etwa 500 MB GPU-sichtbare Belegung gegen rund 1 GB nutzbaren Speicher auf der Konsole.n = 131.08.2026
Dem Player eine Option zu übergeben, die zu einem Modul gehört, das sein Build nicht trägt, lässt die gesamte Instanz scheitern, statt ignoriert zu werden, und deshalb wird die Schalterliste je Kopf an einer einzigen Stelle entschieden.n = 123.08.2026
Eine 12 Minuten lange Stöbersitzung auf dem Desktop erreichte einen Spitzenwert von 1.080 MB Arbeitsspeicher. Auf einer Konsole, wo rund 1 GB nutzbar ist, ist dieser Spitzenwert allein schon eine Beendigung.n = 330.08.2026
Ein Kaltstart der Konsole wurde mit 39.5 Sekunden und 1.4 GB gemessen, gegenüber einem warmen Desktop-Start von etwa 4.6 Sekunden.n = 126.08.2026
Die beiden Köpfe sind als verschiedene native Pakete benannt und nicht als eine Bibliothek in zwei Versionen: der Desktop bindet VideoLAN.LibVLC.Windows 3.0.23.x mit dem vollen Modulsatz ein, die Konsole VideoLAN.LibVLC.UWP 3.3.2, gebaut aus libvlc 3.0.16 mit dem App-Container-Modulsatz.n = 201.09.2026
Die Fehlerart, der Konsole eine Option zu geben, die sie nicht unterstützen kann, ist nicht theoretisch: in dieselbe Falle sind wir bereits einmal mit einem Vorauslesepuffer-Schalter getappt, und deshalb hängt der Optionsbauer jeden Schalter an den Kopf, der das Modul tatsächlich hat.n = 101.09.2026
Ob die geladene Bibliothek den HDR-Schalter unterstützt, wird zur Laufzeit gelesen und nicht aus dem Kopf abgeleitet. Ein zurückgestuftes natives Paket verliert daher HDR, statt den Start des Players überhaupt scheitern zu lassen.n = 101.09.2026
Dem Optionsbauer wird die Genauigkeit übergeben, mit der die Videooberfläche tatsächlich hochgekommen ist, und nicht die von der Nutzerin oder dem Nutzer angeforderte, eine gescheiterte 10-Bit-Anforderung kann also keinen unpassenden Schalter erzeugen.n = 101.09.2026
Es gibt drei Player-Rollen und sie sind nicht gleichwertig: eine Hauptinstanz, die die Zuschauerin oder der Zuschauer sieht, eine Übergabe-Bereitschaft und Multiview-Kacheln, von denen mehrere gleichzeitig laufen, jede mit ihrem eigenen Player.n = 301.09.2026
Das Konsolen-Layout hält an jeder Kante einen fernsehsicheren Rand von 5 Prozent frei, also 96 mal 54 effektive Pixel bei 1080p, und die Marke sowie der Profil-Chip liegen darin statt in einem Fensterrahmen.n = 101.09.2026
Die Konsole liefert ein überschreibendes Ressourcenverzeichnis aus, das die Typografie für das Lesen aus 10 Fuß Entfernung um 25 Prozent vergrößert, den Fließtext also von 14 auf 18 und die Anzeigegröße von 32 auf 40 bringt, wobei Abstände oberhalb eines Schwellenwerts um 30 Prozent wachsen, um der Fokus-Engine Platz zu geben.n = 801.09.2026
Jeder Konsolenbildschirm endet in einer verbindlichen Hinweisleiste von 72 effektiven Pixeln, und der Hinweissatz kommt aus dem Ansichtsmodell der Seite, sodass er zentral statt je Bildschirm übersetzt wird.n = 101.09.2026
Das Bild-im-Bild fehlt auf der Konsole nicht nur, es ist als Rumpf übersetzt, dessen aktiver Zustand dauerhaft falsch ist und dessen Umschalter nichts tut.n = 101.09.2026
Die beiden Köpfe sind nicht zwei Anwendungen: die Seiten liegen in einem gemeinsamen Quellbaum und werden über eine gemeinsame Eigenschaftsdatei in jeden Kopf übersetzt, ein Unterschied auf einem Bildschirm ist also eine Bedingung auf den Kopf und keine Abspaltung.n = 101.09.2026
Der Speicher, den sich die Konsole nicht leisten kann, ist nativer und kein verwalteter: über drei identische Stöberzyklen hinweg lag der gehaltene verwaltete Heap bei 61.1, 62.6 und 62.5 MB, während der Arbeitsspeicher von 827 auf 918 MB stieg.n = 330.08.2026
Derselbe Profilierungslauf ergab, dass die Reaktionsfähigkeit nicht das Problem war: der Oberflächen-Thread blockierte nie länger als 392 Millisekunden und hörte nie auf, Nachrichten abzuarbeiten.n = 130.08.2026
Die Thread-Begrenzung der Konsole wird nur auf Instanzen außerhalb von Multiview angewendet, Mosaik-Kacheln bleiben davon also unberührt.n = 101.09.2026
Die Entscheidung darüber, welche Schalter jeder Kopf bekommt, wird bewusst an einer einzigen reinen, mit Unit-Tests abgedeckten Stelle ohne Oberflächen- oder Plattformabhängigkeiten gehalten, sodass sie in Tests eine Achse nach der anderen verändert werden kann.n = 101.09.2026
Mehrere Ziele auf der Konsole sind Platzhalterbildschirme, und alle davon sind Verwaltungsoberflächen und keine zur Wiedergabe. Ein fehlender Bildschirm auf der Konsole ist also meist Absicht und kein Defekt.n = 731.08.2026