← Alle Beitrage

AVFoundation HDR und Apple Log: Pro-Video-Workflows auf dem iPhone

iPhone 15 Pro und spätere Modelle zeichnen Apple Log neben den Standard-Codecs HEVC und Apple ProRes auf, und AVFoundation stellt den vollständigen Pro-Video-Stack über AVCaptureDevice und AVCaptureSession für Apps bereit, die daran teilhaben möchten1. Die HDR-Seite desselben Frameworks unterstützt HLG, HDR10 und Dolby Vision über AVPlayer.HDRMode, plus Videodarstellung als EDR über AVKit. Die beiden Bestandteile (Aufnahme und Wiedergabe) werden über die Codec-Wahl, Farbraum-Metadaten und die Postproduktions-Übergabe an Grading-Apps verbunden.

Der Beitrag geht die AVFoundation-Oberfläche für Pro-Video anhand der Apple-Dokumentation durch. Der Rahmen lautet: „Was eine App für Filmschaffende, Videoeditoren und HDR-bewusste Apps offenlegen muss”, denn die Pro-Video-Funktionen des Frameworks sind dokumentiert, aber nicht beworben; die meisten Apps, die davon profitieren könnten, machen sie nicht zugänglich.

TL;DR

  • AVFoundation unterstützt drei HDR-Bereitstellungsformate: HLG (Hybrid Log-Gamma), HDR10 und Dolby Vision. iOS 26 hat das einfachere AVPlayer.eligibleForHDRPlayback-Boolean als empfohlene Prüfung eingeführt; das veraltete AVPlayer.HDRMode (eine OptionSet-Struktur mit .hlg, .hdr10, .dolbyVision) sowie das klassenebene availableHDRModes sind veraltet, aber weiterhin auflösbar2.
  • AVCaptureDevice.isVideoHDREnabled liest aus, ob das Gerät HDR-Buffer streamt; das Setzen von videoHDREnabled (nach dem Deaktivieren von automaticallyAdjustsVideoHDREnabled) erzwingt es für kompatible Formate.
  • Apple Log ist iPhone-15-Pro+- und iPhone-16-Pro+-Terrain: ein flaches, entsättigtes Farbprofil zum Grading in der Post. Apps erfassen es über die Auswahl des aktiven Formats von AVCaptureDevice auf Geräten, die den Apple-Log-Farbraum unterstützen, kodiert als HEVC (10-Bit) oder Apple ProRes3.
  • Apple liefert offizielle Apple Log → Rec.709- und Apple Log → Rec.2020-LUTs über die Entwicklerseite aus; Apps, die die Postproduktions-Übergabe handhaben, beziehen die LUT mit ein oder dokumentieren, wo sie zu finden ist4.
  • AVKit zeigt HDR-Inhalte als EDR (Extended Dynamic Range) auf unterstützenden Geräten an; SDR-Geräte erhalten automatisch tonemap-bearbeitete Ausgabe. Apps, die AVPlayerViewController oder VideoPlayer verwenden, erhalten das richtige Verhalten ohne anzeigespezifische Verzweigung.

Die drei HDR-Formate

AVFoundation unterstützt drei HDR-Formate. Der veraltete Weg, sie aufzuzählen, war die AVPlayer.HDRMode-OptionSet-Struktur (Fälle .hlg, .hdr10, .dolbyVision) plus die klassenebene Eigenschaft AVPlayer.availableHDRModes; iOS 26 erklärt beide zugunsten des einfacheren instanzebenen AVPlayer.eligibleForHDRPlayback-Booleans für veraltet2.

HLG (Hybrid Log-Gamma). Der Broadcast-Standard, entworfen, um abwärtskompatibel mit SDR-Displays zu sein, die das Signal korrekt interpretieren. HLG-Inhalte können auf einem SDR-Fernseher ohne abgesoffene Schatten oder ausgebrannte Lichter wiedergegeben werden; dasselbe Signal sieht auf einem HDR-Display besser aus. Apps, die die breiteste Gerätekompatibilität benötigen, setzen standardmäßig auf HLG.

HDR10. Der TV-/Streaming-Standard. Statische Metadaten (Spitzenhelligkeit, Farbvolumen) sind in den Stream eingebettet; weniger Detail als Dolby Vision, aber universeller. Die meisten Streaming-Dienste, die Inhalte als „HDR” kennzeichnen, verwenden HDR10 oder Dolby Vision.

Dolby Vision. Bildgenaue HDR-Metadaten, typischerweise das hochwertigste HDR-Erlebnis. Erfordert eine Dolby-Vision-fähige Anzeigekette (Decoder, Display) für den vollen Nutzen; tonemapping-fähig auf weniger leistungsstarken Displays.

Für modernen Code liest AVPlayer.eligibleForHDRPlayback aus, ob das aktuelle Item auf dem Gerät in HDR wiedergegeben wird. Apps, die explizite Format-Introspektion benötigen (Legacy-Codepfade, formatspezifische UI), können weiterhin AVPlayer.availableHDRModes abfragen, aber neuer Code sollte nach dem einfacheren Boolean greifen.

HDR-Video erfassen über AVCaptureDevice

Aufnahmeseitiges HDR verwendet AVCaptureDevice-Eigenschaften. Die beiden Steuerpunkte sind das Format und der HDR-Schalter:

import AVFoundation

guard let device = AVCaptureDevice.default(for: .video) else { return }

try device.lockForConfiguration()
device.automaticallyAdjustsVideoHDREnabled = false
device.isVideoHDREnabled = true
device.unlockForConfiguration()

Die Eigenschaft automaticallyAdjustsVideoHDREnabled ist standardmäßig true; iOS wählt HDR oder SDR pro Format basierend auf den Betriebsbedingungen. Apps, die explizite Kontrolle wünschen, setzen sie auf false und schalten isVideoHDREnabled direkt um. Hinweis: Die Eigenschaft ist beobachtbar; das Lesen von isVideoHDREnabled spiegelt den aktuellen Zustand wider, der von einer manuellen Einstellung abweichen kann, wenn das Format kein HDR unterstützt.

AVCaptureDevice.activeFormat legt die HDR-Unterstützung des Formats über isVideoHDRSupported offen; nicht jedes Format auf einem Gerät unterstützt HDR. Das Muster für HDR-fähige Apps ist, die formats des Geräts aufzuzählen, diejenigen mit isVideoHDRSupported == true bei der gewünschten Auflösung und Bildrate zu finden und das aktive Format vor dem Aktivieren von HDR explizit zu setzen.

Apple Log: Der professionelle Farb-Workflow

Apple Log ist ein flaches Farbprofil, verfügbar auf iPhone 15 Pro / Pro Max / iPhone 16 Pro / Pro Max und neuer. Das Profil zeichnet Video mit einer logarithmischen Gammakurve und minimalem In-Camera-Tonemapping auf; das Bild sieht direkt aus der Kamera ausgewaschen aus, bewahrt aber den maximalen Dynamikumfang für das Grading in der Postproduktion3.

Der Aufnahmepfad: 1. Wählen Sie ein AVCaptureDevice.Format, das Apple Log unterstützt. Das Format legt dies über seine supportedColorSpaces-Liste offen, die auf unterstützenden Geräten .appleLog enthält. 2. Setzen Sie den activeColorSpace des Geräts auf .appleLog, nachdem Sie für die Konfiguration gesperrt haben. 3. Konfigurieren Sie den Aufnahme-Codec (HEVC für den iPhone-internen Pfad, Apple ProRes für den Pfad mit höherer Bandbreite). 4. Aufnahme starten. Das aufgezeichnete Video trägt Apple-Log-Farb-Metadaten.

Die Postproduktions-Übergabe ist der Wertbeitrag: Apple Log gibt dem Editor maximale Flexibilität, um Lichter und Schatten unabhängig zu graden, Farben in Richtungen zu ziehen, die die Kamera nicht erfassen konnte, und Material von anderen log-fähigen Kameras anzugleichen.

Für Apps, die Apple-Log-Material verarbeiten (Videoeditoren, Color-Grading-Werkzeuge, Asset-Management-Tools), legt das Framework die Farb-Metadaten über die Track-Eigenschaften des Assets offen; die App liest AVAssetTrack.formatDescriptions und prüft das kCVImageBufferTransferFunctionKey, um Apple-Log-Inhalt zu bestätigen.

Encoding: HEVC, ProRes, ProRes Log

Drei Codec-Pfade sind für HDR-/Apple-Log-Video relevant:

HEVC (H.265). Der standardmäßige Consumer-Codec. 10-Bit-HEVC unterstützt HDR (HLG-, HDR10-, Dolby-Vision-Metadaten). Kleinste Dateigrößen unter den HDR-fähigen Codecs. Das iPhone zeichnet die meisten Consumer-HDR-Videos über HEVC auf.

Apple ProRes. Der professionelle Codec. Größere Dateien (10–50× HEVC bei gleicher Qualität), aber verlustfreie Intra-Frame-Kompression, die sich sauber graden lässt. iPhone 15 Pro+ zeichnet ProRes entweder im internen Speicher (4K30 max., dauerhaft begrenzt) oder auf einer externen USB-C-SSD (4K60 dauerhaft, längere Aufnahmedauer) auf.

Apple ProRes Log. ProRes kodiert mit dem Apple-Log-Farbprofil. Der Pfad für „Pro-Filmschaffende”: maximale Grading-Flexibilität, größte Dateien, erfordert eine externe SSD für dauerhafte 4K60-Aufnahme. Das Übergabeziel ist DaVinci Resolve, Final Cut oder ein anderes grading-fähiges NLE.

Die Codec-Wahl wird über die Output-Einstellungen von AVCaptureMovieFileOutput offengelegt. Apps, die den Aufnahme-Flow handhaben, setzen das Output-Format-Dictionary mit AVVideoCodecKey auf einen von .hevc, .proRes422, .proRes422HQ, .proRes422LT, .proRes422Proxy, .proRes4444 usw. Dies sind die statischen AVVideoCodecType-Konstanten; beachten Sie: kein „apple”-Präfix in der modernen Swift-API. Das AVCaptureDevice.Format schränkt ein, in welche Codecs das Gerät streamen kann; nicht jeder Codec ist bei jeder Auflösung verfügbar.

Color-Grading-Übergabe: LUTs

Apple-Log-Material sieht ausgewaschen aus. Der Grading-Workflow wendet eine LUT (Look-Up Table) an, um den Apple-Log-Farbraum in das Bereitstellungsziel zu mappen (Rec.709 für SDR, Rec.2020 für HDR). Apple liefert offizielle LUTs über das Final-Cut-Pro-/Pro-Apps-Support-Dokumentations-Hub aus4:

  • Apple Log auf Rec.709. SDR-Bereitstellung. Der Standard-Farbraum für YouTube/Web-Video.
  • Apple Log auf Rec.2020 HLG. HDR-Bereitstellung über HLG. Broadcast/allgemeines HDR.
  • Apple Log auf Rec.2020 HDR10. HDR-Bereitstellung über HDR10. Streaming-HDR.

Apps, die Apple-Log-Material verarbeiten, gehen einen von zwei Wegen: 1. Die LUT direkt einbetten und beim Import anwenden (Final Cut, DaVinci Resolve, Photoshop mit dem LUT-Plug-in) 2. Den LUT-Pfad dokumentieren, damit Editoren ihn manuell anwenden können

Für App-Entwickler, die ein Apple-Log-fähiges Werkzeug bauen, ist das richtige Muster Option 1: Bündeln Sie die LUT, wenden Sie sie beim Import an und lassen Sie Nutzer im Standard-Bereitstellungsformat exportieren. Die von Apple bereitgestellten LUTs dürfen über Apples Entwicklertools-Lizenzierung weiterverbreitet werden.

Wiedergabe: EDR über AVKit

Die Wiedergabeseite ist weitgehend automatisch. AVKits AVPlayerViewController (UIKit) und SwiftUIs VideoPlayer rendern HDR-Inhalte beide als EDR (Extended Dynamic Range) auf unterstützenden Displays:

  • iPhone-OLED-Displays (iPhone X und neuer, Pro-Modelle mit ProMotion).
  • iPad-Pro-Mini-LED-Displays.
  • Mac-XDR-Displays.
  • Externe HDR-fähige Displays über AirPlay.

Für reine SDR-Displays mappt das System HDR-Inhalte automatisch tonal. Apps verzweigen für den Wiedergabepfad nicht nach Display-Fähigkeit; das System übernimmt das.

Apps mit benutzerdefinierten Video-Pipelines (Metal-basierte Player, AVSampleBufferDisplayLayer mit benutzerdefinierter Verarbeitung) müssen sich explizit über CAMetalLayer.wantsExtendedDynamicRangeContent oder die entsprechende Layer-Eigenschaft für EDR aktivieren. Der Standard für benutzerdefinierte Metal-Layer ist SDR; HDR-Unterstützung erfordert die explizite Aktivierung plus ein entsprechendes Pixelformat, das Komponentenwerte >1,0 unterstützt (typischerweise bgr10a2Unorm oder ein HDR-fähiges Float-Format).

Häufige Fehler

Drei Muster aus den AVFoundation-HDR-/Apple-Log-Fehlerprotokollen:

HDR aufnehmen, aber in einen Codec aufzeichnen, der es nicht unterstützt. Das Setzen von isVideoHDREnabled = true in einer Session, die in 8-Bit-HEVC aufzeichnet, erzeugt stille SDR-Ausgabe. Das HDR-Signal wird erfasst, aber das Encoding entfernt es. Lösung: HDR-Aufnahme mit einem 10-Bit-Codec kombinieren (10-Bit-HEVC, ProRes oder ProRes Log).

Apple-Log-Aufnahme ohne LUT in der Bereitstellungs-Pipeline. Apple-Log-Video sieht systembedingt ausgewaschen aus; Betrachter, die ungegradetes Apple-Log-Material sehen, gehen davon aus, dass die Kamera oder die App defekt ist. Lösung: Entweder die Apple Log → Rec.709-LUT vor der Anzeige in der App anwenden oder das Material den Nutzern als „Log” mit klarer Kennzeichnung präsentieren, damit sie die Postproduktions-Anforderung verstehen.

HDR-Anzeige über wantsExtendedDynamicRangeContent ohne bgr10a2Unorm (oder Float-HDR-Pixelformat). Ein Metal-Layer mit aktiviertem EDR, der aber in ein 8-Bit-pro-Kanal-Pixelformat rendert, erzeugt geclippte Lichter. Lösung: Die EDR-Aktivierung mit dem korrekten Pixelformat kombinieren (10-Bit Unsigned-Norm oder 16-Bit Float).

Was dieses Muster für iOS-26+-Apps bedeutet

Drei Erkenntnisse.

  1. Standardmäßig HEVC für allgemeine Apps; greifen Sie nur zu ProRes, wenn ein professioneller Workflow das rechtfertigt. Eine Consumer-Video-App, die HDR über 10-Bit-HEVC erfasst, liefert vollständiges HDR mit angemessenen Dateigrößen. ProRes ist für Filmschaffende und Editoren, die verlustfreie Grading-Flexibilität benötigen; die Kosten in puncto Dateigröße sind real.

  2. Apple Log ist iPhone-15-Pro+-Terrain; dokumentieren Sie die Geräteanforderung. Apps, die Apple-Log-Aufnahme zusagen, müssen AVCaptureDevice.Format.supportedColorSpaces zur Laufzeit auf .appleLog prüfen und auf Geräten, die es nicht unterstützen, anmutig degradieren. Die Format-Prüfung erfolgt pro Gerät, nicht pro iOS-Version.

  3. Bündeln Sie die LUT oder dokumentieren Sie den Workflow für Apple-Log-Material. Apps, die Apple-Log-Video verarbeiten, brauchen einen Pfad vom rohen Log zur gegradeten Bereitstellung. Entweder die LUT einbetten und beim Import anwenden oder die von Apple bereitgestellte LUT mit klarer Dokumentation, wie sie im NLE der Wahl angewendet wird, an die Nutzer durchreichen.

Der vollständige Apple-Ecosystem-Cluster: typisierte App Intents; MCP-Server; die Routing-Frage; Foundation Models; die Unterscheidung Laufzeit vs. Tooling-LLM; drei Oberflächen; das Single-Source-of-Truth-Muster; Zwei MCP-Server; Hooks für die Apple-Entwicklung; Live Activities; die watchOS-Laufzeit; SwiftUI-Internas; RealityKits räumliches Mentalmodell; SwiftData-Schema-Disziplin; Liquid-Glass-Muster; Multi-Plattform-Auslieferung; die Plattform-Matrix; Vision-Framework; Symbol Effects; Core-ML-Inferenz; Writing Tools API; Swift Testing; Privacy Manifest; Barrierefreiheit als Plattform; SF-Pro-Typografie; visionOS-Raum-Muster; Speech-Framework; SwiftData-Migrationen; tvOS-Focus-Engine; @Observable-Internas; SwiftUI-Layout-Protocol; benutzerdefinierte SF Symbols; worüber ich nicht schreibe. Der Hub befindet sich unter der Apple Ecosystem Series. Für breiteren Kontext zu iOS mit KI-Agenten siehe den iOS Agent Development guide.

FAQ

Brauche ich ein iPhone 15 Pro, um HDR-Video in meiner App aufzuzeichnen?

Nein. HDR-Video (HLG, HDR10) wird auf iPhone 12 Pro und neuer über 10-Bit-HEVC unterstützt. iPhone 15 Pro und neuer fügen speziell Apple Log hinzu; die breitere HDR-Pipeline funktioniert auf mehr Geräten.

Was ist der Unterschied zwischen Apple Log und Dolby Vision?

Apple Log ist ein Aufnahme-Farbprofil (für das Grading entworfen). Dolby Vision ist ein Bereitstellungs-HDR-Format (für die Wiedergabe entworfen). Sie befinden sich in unterschiedlichen Stufen der Pipeline. Apple-Log-Material wird gegradet und in ein Bereitstellungsformat exportiert; Dolby Vision ist eine der Bereitstellungsoptionen.

Wie erkenne ich Apple-Log-Unterstützung zur Laufzeit?

Zählen Sie AVCaptureDevice.formats auf, prüfen Sie dann für jedes Format supportedColorSpaces. Apple-Log-Unterstützung erscheint als .appleLog in dieser Liste. Apps, die Apple-Log-Aufnahme nur auf unterstützenden Geräten freigeben wollen, orientieren sich an dieser Prüfung anstatt iPhone-Modellbezeichner zu parsen.

Wie groß ist der Dateigrößenunterschied zwischen HEVC HDR und ProRes Log?

Grob 10–50× pro Minute, abhängig von Bitrate und Auflösung. 4K30 HEVC HDR liegt bei etwa 50–100 MB/min; 4K30 ProRes 422 HQ bei etwa 1,5–2,5 GB/min. ProRes-Log-Dateien erfordern für dauerhafte 4K60-Aufnahme eine externe USB-C-SSD; der interne Speicher des iPhones ist für dauerhaftes ProRes-Schreiben raten-limitiert.

Kann ich Apple-Log-Material ohne LUT anzeigen?

Sie können das rohe Video anzeigen, aber es wird ausgewaschen und entsättigt aussehen. Das Apple-Log-Farbprofil ist für das Grading gedacht, nicht für die direkte Betrachtung. Apps, die rohes Apple-Log-Material an Nutzer durchreichen müssen, sollten es als „Log” kennzeichnen, damit Nutzer die Postproduktions-Anforderung verstehen; andernfalls wenden Sie die Apple Log → Rec.709-LUT für die Anzeige an.

Übernimmt AVFoundation HDR-zu-SDR-Tonemapping automatisch?

Ja, für AVKits Standard-Player (AVPlayerViewController, SwiftUIs VideoPlayer). Benutzerdefinierte Metal-Video-Pipelines müssen explizit für EDR aktivieren und ein HDR-fähiges Pixelformat wählen; ohne diese werden HDR-Inhalte als geclipptes SDR angezeigt.

Referenzen


  1. Apple Developer Documentation: AVFoundation. Die Framework-Referenz, die Aufnahme, Bearbeitung und Wiedergabe-APIs über iOS, iPadOS, macOS, tvOS, watchOS und visionOS abdeckt. 

  2. Apple Developer Documentation: AVPlayer.HDRMode. Die drei HDR-Fälle (.hlg, .hdr10, .dolbyVision) und die availableHDRModes-Abfrage dafür, was eine AVPlayer-Instanz für das aktuelle Item unterstützt. 

  3. Apple Developer Documentation: AVCaptureDevice und AVCaptureDevice.Format. Die Format-Eigenschaften des Aufnahmegeräts einschließlich supportedColorSpaces für die Apple-Log-Erkennung und isVideoHDRSupported für die HDR-Machbarkeit. 

  4. Apple Pro Apps Support: Apple Pro Apps support and downloads. Das Pro-Apps-Hub mit Verlinkungen zu den Apple-Log-Profil-Ressourcen und herunterladbaren LUTs für die Konvertierung von Apple-Log-Material in Standard-Bereitstellungsfarbräume; LUTs werden gebündelt mit Final Cut Pro und Logic Pro sowie als eigenständige Downloads ausgeliefert. 

Verwandte Beiträge

The Privacy Manifest Deep Dive: What Counts As Data Collection

Apple's privacy manifest is a structured contract, not a checkbox: four sections, five required-reason API categories, S…

14 Min. Lesezeit

SwiftData Migrations: Lightweight vs Custom, And When You Don't Need a V2

SwiftData's migration model uses VersionedSchema, MigrationStage, and SchemaMigrationPlan. Most schema changes don't nee…

13 Min. Lesezeit

The Cleanup Layer Is the Real AI Agent Market

Charlie Labs pivoted from building agents to cleaning up after them. The AI agent market is moving from generation to pr…

15 Min. Lesezeit