ProRes 422, Windows 10 und VLC Player

Majima

Komplett-PC-Käufer(in)
Servus,

ich bin da über eine Sache gestolpert, bei der es mir einfach nicht gelingen will, die Fehlerquelle auszumachen.

Ich habe mehrere Videos, die in ProRes 422 exportiert wurden, hier liegen, die sich im VLC Player, der normalerweise dafür bekannt ist, alles zu schlucken, nicht abspielen lassen. Ich bekomme einen Ton, aber das Bild friert die ganze Zeit ein und springt nur sporadisch mal vorwärts. Da ich sie aber auf meinem Smartphone mit dem VLC Player problemlos abspielen kann, ist ausgeschlossen, dass beim Encoding etwas schiefgelaufen ist.

Auf dem Desktop läuft Windows 10 Pro, Hardware sind ein Ryzen 9 5900X und eine Radeon 6900 XT.

Um die mögliche Fehlerquelle einzugrenzen, habe ich folgende Konstellationen durchprobiert:
  • Laptop mit Intel Core i9-13900HX und RTX 4070, Windows 11: VLC spielt die Videos tadellos ab, sowohl mit aktivierter iGPU als auch dedizierter GPU.
  • anderer Laptop mit Intel Core i3-6006U und iGPU, Windows 10: VLC hat hier ebenfalls keine Probleme.
  • selbes Gerät, Linux Mint: Sowohl VLC als auch der Standardplayer nehmen die Videos an.
  • Desktop, Linux Mint: Auch hier schlucken VLC und der Standardplayer die Videos ohne Mucken.
  • Desktop, cleanes Windows 10 auf anderer SSD: Selbes Fehlerbild wie vorher, VLC und die hauseigenen Windows-Player versagen; erst mpv hat Abhilfe geschaffen.
  • Den Workaround mit mpv habe ich dann auf dem Hauptsystem probiert, das funktioniert einwandfrei. Auch der FormatPlayer, ein Überbleibsel von FormatFactory, den ich irgendwie vor Jahren vergessen habe zu deinstallieren und jetzt zufällig wieder entdeckt habe, hat bei den Videos nichts zu beanstanden.
Ich stehe also gerade vor dem Problem, dass ich keinen eindeutigen Übeltäter ausmachen kann: Die Hardware ist schon mit dem positiven Linux-Test aus dem Schneider. Windows 10 kann ebenfalls nicht die Ursache sein, wenn mindestens mpv die Videos fehlerfrei abspielt; und da es auf der frischen Installation dasselbe Fehlerbild gab, liegt es auch nicht am zugemüllten System. VLC spielt die Dateien fehlerfrei in allen Konstellationen aus Hardware und Betriebssystem ab, außer der Kombination „Desktop + Windows 10“. Hardwarebeschleunigung ist in VLC selbstverständlich aktiviert; und mpv zeigt auch, dass der Hardware-Decoder funktioniert und erkannt wird (AMD-Treiberprobleme scheiden also ebenfalls aus). Ich habe dann noch probeweise die Videos per FFmpeg in H.264 konvertiert (4:2:2-Subsampling und 10 Bit/Farbkanal wurden beibehalten); da hatte ich dasselbe Fehlerbild. Erst bei zusätzlicher Umstellung des Pixelformats auf yuv420p (das im Consumer-Bereich übliche 4:2:0-Subsampling und 8 Bit/Farbkanal) nahm VLC die Videos an. Auch eine Neuinstallation des Players mit Rücksetzen auf die Werkseinstellungen hat nichts gebracht.

Auch wenn ich jetzt einen Weg gefunden habe, die Videos nativ auf meinem Hauptsystem abzuspielen, betrachte ich das Problem damit nicht als gelöst. Ich kann mir keinen Reim darauf machen, warum nur diese spezifische Kombination aus der (AMD-)Desktop-Hardware, Windows 10 und VLC Player (Microsofts hauseigene Player ignorieren wir mal beherzt) nicht funktioniert und was hier die Lösung wäre, und das fuchst mich gerade gewaltig. Insofern freue ich mich, wenn sich hier Leute finden sollten, die bereit sind, einen Joker zu dieser Knobelaufgabe zu liefern. :D
 
Zuletzt bearbeitet:
Schau mal hier, ist aber schon drei Jahre alt. Deswegen vlt auch mit einer älteren VLC Version versuchen? Seltsam trotzdem das es sonst überall läuft.... Welche Konfiguration ist das auf der es nicht läuft?

Eingebundener Inhalt
An dieser Stelle findest du externe Inhalte von Reddit. Zum Schutz deiner persönlichen Daten werden externe Einbindungen erst angezeigt, wenn du dies durch Klick auf "Alle externen Inhalte laden" bestätigst: Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit werden personenbezogene Daten an Drittplattformen übermittelt.
Für mehr Informationen besuche die Datenschutz-Seite.
 
Kann es mit den Sound Chip vom Mainboard zusammen hängen? Leider haben ja die meisten aktuellen MB mehr schlechte Chips drauf, als noch vor paar Jahren!
 
Welche Konfiguration ist das auf der es nicht läuft?
Siehe Startpost:
Hardware sind ein Ryzen 9 5900X und eine Radeon 6900 XT
[...]
nur diese spezifische Kombination aus der (AMD-)Desktop-Hardware, Windows 10 und VLC Player
Das Ausgabemodul für Video im VLC Player auf OpenGL umzustellen funktioniert tatsächlich. Gelegentlich bekomme ich beim Starten eine Fehlermeldung, dass der Player gecrasht sei und ich einen Bug-Report senden könne, aber dann laufen die Videos.

Ein Downgrade auf 3.0.0 (installiert war die aktuellste Version 3.0.21) hat unterdessen den Fehler behoben. Nach unzähligen Versuchen habe ich mich jetzt an Version 3.0.4 (von 2018!) als letzte funktionierende Version herangetastet. 3.0.5 und 3.0.6 zeigen ein ganz anderes Fehlerverhalten – hier wird kein Videobild gezeigt und dafür flackert das ganze Fenster; ab 3.0.7 ist es bei allen Versionen wie eingangs beschrieben.

Die Schlüsse, die ich daraus jetzt ziehen kann: Der Wurm muss irgendwo beim Direct3D11-Ausgabemodul drin sein. Jetzt ist bloß noch die Frage, ob dieser Bug den AMD-Decoder betrifft oder Windows 10. Da VLC die Videos aber auf beiden Laptops (Windows 10 und 11) mit Intel iGPU und in letzterem Fall mit Nvidia-GPU abspielt, tendiere ich derzeit zu Ersterem. Eine Probe mit einer Windows-11-Installation auf dem Desktop könnte Klarheit schaffen.
 
Wegen der Konfig meinte ich die gesamte Hardware, es ist eigentlich immer gut alles anzugeben. Board ist da genauso wichtig.

Warum aktuellere VLC Versionen das nur fehlerhaft abspielen ist sehr seltsam. Direct X eigens installieren, vlt wird das sozusagen dann repariert oder aktualisiert. Das der Codec AMD nicht mag und deswegen nicht läuft müsste man mal googeln.
 
Weitere Hardware: 16 GB RAM @ XMP-3200, Gigabyte GA-AX370 Gaming K7. Hardwarefehler schließe ich aber aus, wenn es unter allen Betriebssystemen Wege gibt, die Dateien abzuspielen.

Die cleane Win-10-Installation habe ich jetzt mal auf 11 geupgradet; und da zeigt VLC exakt dasselbe Fehlerverhalten wie unter Windows 10, womit das Betriebssystem als Ursache ausscheidet. Die logischste Erklärung ist also aus meiner Sicht nun, dass das Zusammenspiel zwischen dem Direct3D-11-Modul von VLC und dem AMD-Decoder nicht funktioniert. Unbegreiflich ist mir nur, wie so ein Bug sich seit 6 Jahren halten kann. Immerhin kam die 6900 XT zwei Jahre später raus als die letzte funktionierende VLC-Version. Keine aktuelle Version seit Erscheinen der Karte hat das Hardware-Decoding von 4:2:2/10 Bit unterstützt.

Stichwort Hardware-Decoding: Die Hardwarebeschleunigung zu deaktivieren funktioniert auch nicht, obwohl FFmpeg die nötigen Decoder eigentlich an Bord haben muss (sonst hätte die Konvertierung in H.264 auch nicht funktioniert). Das habe ich zugegebenermaßen noch nicht in der Version 3.0.4 getestet, möglicherweise befindet sich der Bug also auch an anderer Stelle.
 
An der AMD Karte kanns auch nicht liegen.
Hab ich auch nicht geschrieben. Die Diagnose war, dass das VLC-Modul für DirectX 11 Probleme mit dem AMD-Decoder hat. Da es bis einschließlich Version 3.0.4 funktioniert, ist anzunehmen, dass sich mit Version 3.0.5 ein Bug eingeschlichen hat, der bis heute nicht behoben wurde.

Den ProRes-RAW-Decoder von Apple habe ich nicht installiert, aber das sollte egal sein, da ProRes RAW und ProRes 422 unterschiedliche Formate sind.
 
Zuletzt bearbeitet:
Ich glaube, jetzt reden wir aneinander vorbei. Ein Verweis auf den Startpost:
  • Desktop, cleanes Windows 10 auf anderer SSD: Selbes Fehlerbild wie vorher, VLC und die hauseigenen Windows-Player versagen; erst mpv hat Abhilfe geschaffen.
  • Den Workaround mit mpv habe ich dann auf dem Hauptsystem probiert, das funktioniert einwandfrei. [...]
Windows 10 kann ebenfalls nicht die Ursache sein, wenn mindestens mpv die Videos fehlerfrei abspielt; [...] und mpv zeigt auch, dass der Hardware-Decoder funktioniert und erkannt wird (AMD-Treiberprobleme scheiden also ebenfalls aus).
Ganz für die Katz war es trotzdem nicht. Ich habe mpv noch einmal per geänderter Konfiguration mit Direct3D 11 und Vulkan als GPU-API getestet, und er hatte bei den Videos nichts zu beanstanden. Läge es an DirectX, dann hätte mpv hier dasselbe Fehlerverhalten zeigen müssen wie VLC.

Die Frage war auch nicht: „Wie kann ich die Videos abspielen?“ Das Problem war bereits gelöst. Ich wollte explizit herausfinden, warum VLC nur auf meinem Desktop und nur unter Windows (10) die Videos nicht abspielt. Der Tipp mit OpenGL und den älteren Versionen hat geholfen, die Ursache einzugrenzen, und mit dem negativen Test unter Windows 11 sowie nun dem Durchprobieren unterschiedlicher APIs bei mpv kann ich mit Sicherheit sagen, dass der Fehler beim VLC Player liegt. Es hat auch nichts mit den Codecs zu tun, denn die Originalvideos in ProRes 422 habe ich ja einmal in H.264 konvertiert und sie wurden genauso fehlerhaft abgespielt. Entscheidend sind das Subsampling (4:2:2 statt 4:2:0) und die Farbauflösung (10 statt 8 Bit pro Farbkanal).

Aber es wird immer lustiger: Stelle ich das Ausgabemodul im VLC auf Direct3D 9 (!), funktioniert es auch mit der aktuellen Version. Es ist also nur das Modul für Direct3D 11 betroffen. Wenn der VLC Player unter Windows nicht so doof wäre, mit der Einstellung „Automatisch“ immer D3D11 anzuwählen, wäre mir das nie aufgefallen.

Ich habe jetzt als allerletzten Schritt die libdirect3d11_plugin.dll der aktuellen Version 3.0.21 im Programmverzeichnis unter C:\Programme\VideoLAN\VLC\plugins\video_output durch das entsprechende Plugin der Version 3.0.4 (letzte funktionsfähige Version) ersetzt, et voilà, schon gibt es keine Wiedergabeprobleme mehr. Ich würde sagen, damit habe ich meine These bestätigt und das kleine Teufelchen gefunden, das mir so viel Kopfschmerzen bereitet hat. :D

Solltet ihr also beabsichtigen, auf einem Windows-Rechner mit AMD-Hardware Videos mit 4:2:2-Subsampling und 10 Bit/Kanal Farbauflösung im VLC Player mit Direct3D 11 als API abzuspielen, installiert euch zunächst VLC Player 3.0.4, sichert das genannte Plugin und kopiert es dann nach dem Versionsupdate dorthin, wo ihr es herhabt. Den letzten Schritt müsst ihr natürlich nach jedem Versionsupdate wiederholen, zumindest so lange, bis der Bug mal gefixt wird.

Update: Der Plugintausch führt dazu, dass der Player bei allen anderen Videos sofort crasht. Also Kommando zurück. Auf OpenGL stellen, alte Version oder gleich einen anderen Player nutzen. VideoLAN hat hier einen mächtigen Bock geschossen. Kann ja passieren, aber die Tatsache, dass sie das seit sechs Jahren nicht beheben, ist informativ und enttäuschend.
 
Zuletzt bearbeitet:
Zurück