Sie sind gerade hier!
  • Home
  • Zond 265Überprüfung von HEVC mit Alpha-Kanal-Unterstützung

Überprüfung von HEVC mit Alpha-Kanal-Unterstützung

24.10.2024 Olga Krovyakova 363

High-Efficiency Video Coding (HEVC), auch bekannt als H.265, bietet fortschrittliche Komprimierungsmöglichkeiten. Die Integration von Transparenz (Alphakanal) in einen HEVC-Stream stellt jedoch eine technische Herausforderung dar. Dieser Artikel beschreibt, wie HEVC mit Alphakanälen mithilfe des x265-Encoders codiert, YUVA-Daten (YUV + Alpha) mit FFmpeg extrahiert und die Transparenz in verschiedenen Formaten wie VP9 überprüft wird. Wir beleuchten außerdem die Grenzen aktueller Tools bei der Verarbeitung von Alphakanälen, insbesondere in FFmpeg und Zond 265 .

HEVC-Kodierung mit Alphakanal unter Verwendung von x265

Der X265-Encoder wird verwendet, um die Komprimierung des Videos mit Transparenz in HEVC zu testen. Er kann von VideoLAN heruntergeladen werden. Die für diesen Test verwendete Encoder-Version stammt aus dem Commit 26d2bab00 (vom 04.10.2024) und wurde unter Windows mit der Option ENABLE_ALPHA kompiliert. Es wurden Rohdaten im YUVA420p-Format vorbereitet, bei denen die Werte des Alphakanals innerhalb des Frames variierten. Die Kodierung in einen HEVC-Stream mit Alphakanal erfolgt mit folgendem Befehl:

x265.exe --input-res 1920x1080 --fps 30 --input input.yuva --alpha --output output.h265

x265_log

Dadurch wird ein 1920×1080 H.265 Elementarstream mit Alphakanal erzeugt. Sie können ihn hier herunterladen.

Extraktion von YUVA-Daten mit FFmpeg

Die Extraktion von YUVA420p-Daten aus dem kodierten HEVC-Stream erfolgt mit FFmpeg. Die für diesen Test verwendete FFmpeg-Version wurde vom Master-Branch (2024-10-21-git-baa23e40c1 unter Windows) erstellt. FFmpeg erzeugt während des Extraktionsprozesses die folgenden Fehler:

ffmpeg -i output.h265 -pix_fmt yuva420p output_yuva.yuv -loglevel verbose -hide_banner

ffmpeg_log

Für den dekodierten 1920×1080-Stream sollten die Transparenzdaten ab Offset 0x2F7600 beginnen (berechnet als 1920*1080*3/2 = 3110400 Bytes). Die Untersuchung des Alphakanals in der YUVA420p-Datei mit einem Hex-Editor ergab, dass dieser anstelle der erwarteten Transparenzmaske ausschließlich 0xFF-Werte (vollständige Deckkraft) enthält.

ffmpeg_yuva

Darüber hinaus erzeugt FFmpeg beim Versuch, den komprimierten Datenstrom in MP4 zu multiplexen, dieselben Fehler wie während des Extraktionsprozesses:

ffmpeg -i output.h265 -c:v copy output.mp4 -loglevel verbose

Zusammenarbeit mit VP9 und Transparenz

Transparenz kann auch in VP9 kodiert werden, einem weiteren Codec, der häufig für Webvideos verwendet wird. Testen wir, wie man mit FFmpeg YUVA420p-Daten aus einer VP9-Datei mit Transparenz extrahiert:

ffmpeg -vcodec libvpx-vp9 -i "input.webm" -pix_fmt yuva420p output_vp9.yuv

Sie können die kodierte VP9-Datei hier herunterladen.

Der Hex-Editor zeigt nun beim Untersuchen der extrahierten YUV-Datei die korrekten Transparenzdaten an.

ffmpeg_yuva_vp9

Die Transparenz kann auch überprüft werden, indem das VP9-Video in Chrome (Version 130.0.6723.58) unter Windows abgespielt wird.

vp9_chrome

HEVC mit Alpha auf macOS

Um eine HEVC-Datei mit Alphakanal zu erstellen, können Sie Ihr Video zunächst in Anwendungen wie Final Cut Pro oder Adobe Premiere Pro als ProRes 4444 exportieren. ProRes 4444 erhält den Alphakanal und gewährleistet so die Transparenz während des gesamten Bearbeitungs- und Exportprozesses.

„Ausgewählte Videodateien kodieren“ ist ein Finder-Dienst von macOS. Er ermöglicht es Nutzern, Videos direkt im Finder in verschiedene Formate zu konvertieren, darunter HEVC (H.265), H.264 und ProRes, ohne eine Videobearbeitungsanwendung öffnen zu müssen. Dieser Dienst bietet die Option, die Transparenz (Alphakanal) bei der Konvertierung von ProRes 4444-Videos nach HEVC beizubehalten. Er wurde erstmals mit macOS High Sierra (10.13) eingeführt. High Sierra war die erste macOS-Version mit nativer Unterstützung für die HEVC-Kodierung. Der Dienst funktioniert auf jedem Mac mit HEVC-fähiger Hardware, typischerweise Macs ab Baujahr 2016 mit Intel-Prozessor (Skylake oder neuer) oder Apple Silicon-Chip (z. B. M1, M2).

Sobald Sie eine ProRes 4444-Datei haben, bietet macOS eine Methode, diese unter Beibehaltung der Transparenz in HEVC zu kodieren.

1. Klicken Sie mit der rechten Maustaste (oder bei gedrückter Ctrl-Taste) auf die ProRes 4444-Datei im Finder.

encode_selected_video_context

2. Wählen Sie im Kontextmenü „Ausgewählte Videodateien kodieren“. Wählen Sie im sich öffnenden Fenster HEVC 1080p als Zielformat und aktivieren Sie das Kontrollkästchen „Transparenz beibehalten“.

encode_media

3. macOS generiert dann eine HEVC-Datei, die die Transparenz der ursprünglichen ProRes 4444-Quelle beibehält.

Um zu überprüfen, ob die Transparenz erhalten geblieben ist, können Sie die HEVC-Datei im QuickTime Player öffnen (für die Tests wird die auf macOS Version 14.7 (23H124) installierte Anwendung verwendet).

Quicktime

QuickTime unterstützt die Wiedergabe von HEVC-Dateien mit Transparenz, sodass Sie den Alphakanal im Vorschaubereich des Players erkennen können sollten.

Wenn man jedoch versucht, diese Datei mit FFmpeg zu dekodieren, enthält der resultierende YUVA-Puffer im Alphakanal ausschließlich 0xFF-Werte, ähnlich wie bei x265. Dies deutet darauf hin, dass FFmpeg die korrekte Dekodierung von Alphakanälen aus HEVC-Streams weiterhin nicht unterstützt.

Anzeige der SEI-Nachricht alpha_channel_info in Zond 265

HEVC-Streams mit Alphakanalinformationen enthalten eine SEI-Nachricht (Supplemental Enhancement Information) mit payloadType=165. Diese SEI-Nachricht, genannt alpha_channel_info, signalisiert das Vorhandensein eines Alphakanals im Stream. In Zond 265 , einem Tool zur Analyse von HEVC-Bitstreams, können Sie nach alpha_channel_info suchen, indem Sie zum Tab „Bitstream“ navigieren und auf einen Präfix-SEI-Header klicken. Dort finden Sie detaillierte Informationen zum Alphakanal im Stream. Zond 265 unterstützt derzeit keine Anzeige von Alphakanälen in dekodierten YUVA-Puffer, zukünftige Updates könnten jedoch die Visualisierung von Transparenz ermöglichen.

zond_sei_alpha_channel_info

Häufig gestellte Fragen

F: Was ist das YUVA 420-Format?

A: YUVA420p ist ein Pixelformat, das die Komponenten Y (Luma), U, V (Chroma) und A (Alpha) umfasst. Es ist ein gängiges Format zur Darstellung von Videos mit Transparenz. YUVA420p verwendet 4:2:0-Chroma-Subsampling. Das bedeutet, dass die Chroma-Kanäle (U und V) mit der halben horizontalen und vertikalen Auflösung im Vergleich zum Luma-Kanal (Y) abgetastet werden. Zusätzlich gibt es einen Alpha-Kanal für Transparenzinformationen.

F: Wie kann ich die Transparenz einer YUVA 420-Videodatei überprüfen?

A: Sie können spezielle Videobearbeitungsprogramme oder Online-Anwendungen verwenden, mit denen Sie YUVA-420-Videos hochladen und in der Vorschau ansehen können. Diese Programme helfen Ihnen, anhand der Transparenzmaske zu überprüfen, ob das Video einen Alphakanal enthält. Einige Programme ermöglichen es Ihnen auch, das Video Bild für Bild zu untersuchen, um sicherzustellen, dass die Transparenzinformationen korrekt sind.

F: Kann YUVA 420 unter Beibehaltung der Transparenz kodiert werden?

A: Ja, es gibt Videocodecs, die Videos im YUVA-420-Format verarbeiten können. Sie können Ihr Video beispielsweise mit Transparenz in HEVC oder VP9 kodieren und entsprechend als MP4- oder WebM-Datei speichern. Die Konvertierung kann mit Tools wie FFmpeg oder speziellen macOS-Anwendungen, die transparentes Video unterstützen, erfolgen. Der Alphakanal bleibt dabei erhalten, sodass das Video bei der Wiedergabe seine Transparenz behält.

F: Gibt es eine Möglichkeit, die YUVA 420-Daten manuell einzusehen?

A: Ja, Sie können Videoanalysetools wie einen Hex-Editor oder YUV-Viewer verwenden, um die Rohdaten von YUVA 420 zu untersuchen. Durch die Prüfung der Alphakanalwerte können Sie feststellen, ob die Transparenzinformationen korrekt in die Datei eingebettet sind. Dies ist hilfreich beim Debuggen oder um die korrekte Kodierung bei der Arbeit mit YUVA-420-Videos sicherzustellen.

F: Was ist HEVC mit Alpha?

HEVC (High Efficiency Video Coding) mit Alphakanal bezeichnet Videodateien im HEVC-Format, die zusätzlich einen Alphakanal enthalten. Dieser dient der Speicherung von Transparenzinformationen und ermöglicht die Darstellung von Teilen des Videos transparent, was für Overlays, Spezialeffekte oder Compositing nützlich ist.

F: Wie kann ich schnell überprüfen, ob eine Videodatei Transparenz enthält?

A: Mit Zond 265 können Sie die Informationen zum Alpha-Kanal in der SEI-Nachricht mit payloadType=165 überprüfen, was das Vorhandensein eines Alpha-Kanals im Datenstrom signalisiert.

Sie können auch andere Online-Tools verwenden, mit denen Sie eine Videodatei hochladen und deren Transparenz direkt im Webbrowser überprüfen können. Wählen Sie einfach Ihre Datei aus, und das Tool zeigt Ihnen an, ob sie einen Alphakanal (Transparenz) enthält.

F: Gibt es ein Tool, mit dem man Videos mit Transparenz konvertieren kann?

A: Unter macOS können Sie HEVC mit Alpha codieren, indem Sie ProRes 4444 als Quelle verwenden. Nutzen Sie dazu den im Finder integrierten Dienst „Ausgewählte Videodateien codieren“, der HEVC mit Alpha unterstützt.

Auf der Windows-Plattform können Sie mit FFmpeg und dem VP9-Codec Videos mit Transparenz im WebM-Format kodieren.

Abschluss

Die Kodierung und Extraktion von Transparenz in HEVC stellt weiterhin eine Herausforderung dar, insbesondere aufgrund der aktuellen Einschränkungen gängiger Tools wie FFmpeg. VP9 bietet zwar eine bessere Transparenzunterstützung, HEVC mit Alphakanal befindet sich jedoch noch in der Entwicklung und erfordert spezielle Dekodierungswerkzeuge. macOS bietet native HEVC-Kodierung mit Transparenz mittels ProRes 4444 sowie die entsprechende Dekodierung – der QuickTime Player ist vollständig kompatibel und ermöglicht die korrekte Videovorschau mit Transparenz.

Rate this post

AV1-Level-Beschränkungen mit Zond 265

Einführung Der AV1-Codec, entwickelt von der Alliance for Open Media, wird von modernen Streaming-Plattformen wie YouTube und Netflix weithin eingesetzt. Bei der Analyse von AV1-Bitströmen in Zond 265 stoßen Sie möglicherweise auf die Tabelle „Level Constraint check“. Dieser Artikel erläutert, was diese bedeutet und wie sie zu interpretieren ist. Was sind ein AV1-Level und ein […]