AVFoundation HDR과 Apple Log: iPhone에서의 프로 비디오 워크플로우
iPhone 15 Pro 이후 모델은 표준 HEVC 및 Apple ProRes 코덱과 함께 Apple Log를 녹화하며, AVFoundation은 이 기능에 참여하고자 하는 앱을 위해 AVCaptureDevice와 AVCaptureSession을 통해 전체 프로 비디오 스택을 노출합니다1. 같은 프레임워크의 HDR 측면은 AVPlayer.HDRMode를 통해 HLG, HDR10, Dolby Vision을 지원하며, AVKit을 통해 EDR로 비디오를 표시할 수도 있습니다. 이 두 부분(캡처와 표시)은 코덱 선택, 색공간 메타데이터, 그리고 그레이딩 앱으로의 후반 작업 핸드오프를 통해 연결됩니다.
이 글은 Apple의 문서를 기준으로 프로 비디오를 위한 AVFoundation 표면을 살펴봅니다. 프레임은 “영화 제작자, 비디오 편집자, HDR을 의식하는 앱을 위해 어떤 앱이 무엇을 노출해야 하는가”입니다. 프레임워크의 프로 비디오 기능은 문서화되어 있지만 홍보되지 않으며, 혜택을 받을 수 있는 대부분의 앱이 이를 노출하지 않기 때문입니다.
TL;DR
- AVFoundation은 세 가지 HDR 전송 포맷을 지원합니다: HLG(Hybrid Log-Gamma), HDR10, Dolby Vision. iOS 26은 권장 검사 방법으로 더 단순한
AVPlayer.eligibleForHDRPlaybackBoolean을 도입했습니다. 기존의AVPlayer.HDRMode(.hlg,.hdr10,.dolbyVision을 포함하는OptionSet구조체)와 클래스 수준의availableHDRModes는 deprecated 되었지만 여전히 확인 가능합니다2. AVCaptureDevice.isVideoHDREnabled는 디바이스가 HDR 버퍼를 스트리밍하고 있는지를 읽으며,videoHDREnabled를 설정하면(automaticallyAdjustsVideoHDREnabled를 비활성화한 후) 호환되는 포맷에 대해 강제로 활성화됩니다.- Apple Log는 iPhone 15 Pro+ 및 iPhone 16 Pro+의 영역입니다. 후반 작업에서 그레이딩하기 위한 평탄하고 채도가 낮은 컬러 프로파일입니다. 앱은 Apple Log 색공간을 지원하는 디바이스에서
AVCaptureDevice의 활성 포맷 선택을 통해 이를 캡처하며, HEVC(10비트) 또는 Apple ProRes로 인코딩됩니다3. - Apple은 개발자 사이트를 통해 공식 Apple Log → Rec.709 및 Apple Log → Rec.2020 LUT를 제공합니다. 후반 작업 핸드오프를 처리하는 앱은 LUT를 포함하거나 어디서 찾을 수 있는지 문서화합니다4.
- AVKit은 지원하는 디바이스에서 HDR 콘텐츠를 EDR(Extended Dynamic Range)로 표시합니다. SDR 디바이스는 자동으로 톤 매핑된 출력을 받습니다.
AVPlayerViewController나VideoPlayer를 사용하는 앱은 디스플레이별 분기 없이 올바른 동작을 얻습니다.
세 가지 HDR 포맷
AVFoundation은 세 가지 HDR 포맷을 지원합니다. 이를 열거하는 기존 방식은 AVPlayer.HDRMode OptionSet 구조체(.hlg, .hdr10, .dolbyVision 케이스)와 클래스 수준의 AVPlayer.availableHDRModes 프로퍼티였으며, iOS 26은 이 두 가지를 deprecated 처리하고 더 단순한 인스턴스 수준의 AVPlayer.eligibleForHDRPlayback Boolean을 선호합니다2.
HLG(Hybrid Log-Gamma). 방송 표준으로, 신호를 올바르게 해석하는 SDR 디스플레이와 하위 호환되도록 설계되었습니다. HLG 콘텐츠는 SDR TV에서도 그림자가 뭉개지거나 하이라이트가 날아가지 않고 재생할 수 있으며, 같은 신호가 HDR 디스플레이에서 더 좋게 보입니다. 가장 폭넓은 디바이스 호환성이 필요한 앱은 기본적으로 HLG를 사용합니다.
HDR10. TV / 스트리밍 표준입니다. 정적 메타데이터(피크 밝기, 색 볼륨)가 스트림에 임베드됩니다. Dolby Vision보다 디테일은 적지만 더 보편적입니다. 콘텐츠를 “HDR”로 표시하는 대부분의 스트리밍 서비스는 HDR10이나 Dolby Vision을 사용합니다.
Dolby Vision. 프레임별 HDR 메타데이터로, 일반적으로 가장 높은 품질의 HDR 경험을 제공합니다. 완전한 혜택을 위해서는 Dolby Vision 지원 디스플레이 체인(디코더, 디스플레이)이 필요하며, 하위 디스플레이에서도 자연스럽게 톤 매핑됩니다.
최신 코드의 경우 AVPlayer.eligibleForHDRPlayback은 현재 항목이 디바이스에서 HDR로 재생되는지를 읽습니다. 명시적인 포맷 검사가 필요한 앱(레거시 코드 경로, 포맷별 UI)은 여전히 AVPlayer.availableHDRModes를 쿼리할 수 있지만, 새 코드는 더 단순한 Boolean을 사용해야 합니다.
AVCaptureDevice를 통한 HDR 비디오 캡처
캡처 측 HDR은 AVCaptureDevice 프로퍼티를 사용합니다. 두 가지 제어 지점은 포맷과 HDR 토글입니다:
import AVFoundation
guard let device = AVCaptureDevice.default(for: .video) else { return }
try device.lockForConfiguration()
device.automaticallyAdjustsVideoHDREnabled = false
device.isVideoHDREnabled = true
device.unlockForConfiguration()
automaticallyAdjustsVideoHDREnabled 프로퍼티의 기본값은 true이며, iOS는 작동 조건에 따라 포맷별로 HDR 또는 SDR을 선택합니다. 명시적 제어를 원하는 앱은 이를 false로 설정하고 isVideoHDREnabled를 직접 토글합니다. 참고: 이 프로퍼티는 관찰 가능합니다. isVideoHDREnabled를 읽으면 현재 상태가 반영되며, 포맷이 HDR을 지원하지 않는 경우 수동 설정과 다를 수 있습니다.
AVCaptureDevice.activeFormat은 isVideoHDRSupported를 통해 포맷의 HDR 지원을 노출합니다. 디바이스의 모든 포맷이 HDR을 지원하는 것은 아닙니다. HDR 지원 앱의 패턴은 디바이스의 formats를 열거하여 원하는 해상도와 프레임 레이트에서 isVideoHDRSupported == true인 것을 찾고, HDR을 활성화하기 전에 활성 포맷을 명시적으로 설정하는 것입니다.
Apple Log: 프로 컬러 워크플로우
Apple Log는 iPhone 15 Pro / Pro Max / iPhone 16 Pro / Pro Max 이상에서 사용 가능한 평탄한 컬러 프로파일입니다. 이 프로파일은 로그 감마 곡선과 최소한의 카메라 내부 톤 매핑으로 비디오를 기록합니다. 카메라에서 바로 나온 이미지는 색이 빠진 듯 보이지만 후반 작업의 그레이딩을 위한 최대 다이내믹 레인지를 보존합니다3.
캡처 경로:
1. Apple Log를 지원하는 AVCaptureDevice.Format을 선택합니다. 포맷은 supportedColorSpaces 목록을 통해 이를 노출하며, 지원 디바이스에서는 .appleLog를 포함합니다.
2. 구성을 잠근 후 디바이스의 activeColorSpace를 .appleLog로 설정합니다.
3. 녹화 코덱을 구성합니다(iPhone 내부 경로용 HEVC, 더 높은 대역폭 경로용 Apple ProRes).
4. 녹화합니다. 캡처된 비디오는 Apple Log 컬러 메타데이터를 함께 포함합니다.
후반 작업 핸드오프가 가치 제안입니다: Apple Log는 편집자에게 하이라이트와 그림자를 독립적으로 그레이딩하고, 카메라가 직접 담아낼 수 없었던 방향으로 색을 끌어내며, 다른 Log 지원 카메라의 푸티지와 매칭할 수 있는 최대한의 유연성을 제공합니다.
Apple Log 푸티지를 처리하는 앱(비디오 편집기, 컬러 그레이딩 유틸리티, 에셋 관리 도구)의 경우, 프레임워크는 에셋의 트랙 프로퍼티를 통해 컬러 메타데이터를 노출합니다. 앱은 AVAssetTrack.formatDescriptions를 읽고 kCVImageBufferTransferFunctionKey를 검사하여 Apple Log 콘텐츠임을 확인합니다.
인코딩: HEVC, ProRes, ProRes Log
HDR / Apple Log 비디오에 중요한 세 가지 코덱 경로:
HEVC(H.265). 기본 컨슈머 코덱입니다. 10비트 HEVC는 HDR(HLG, HDR10, Dolby Vision 메타데이터)을 지원합니다. HDR 지원 코덱 중 가장 작은 파일 크기를 가집니다. iPhone은 대부분의 컨슈머 HDR 비디오를 HEVC로 녹화합니다.
Apple ProRes. 전문가용 코덱입니다. 파일 크기는 더 크지만(동일 품질에서 HEVC의 10-50배) 그레이딩이 깔끔하게 처리되는 무손실 인트라 프레임 압축을 사용합니다. iPhone 15 Pro+는 ProRes를 내부 저장소(4K30 최대, 지속 시간 제한)나 외장 USB-C SSD(4K60 지속, 더 긴 시간)에 녹화합니다.
Apple ProRes Log. Apple Log 컬러 프로파일로 인코딩된 ProRes입니다. “프로 영화 제작자” 경로로, 최대의 그레이딩 유연성과 가장 큰 파일 크기를 가지며 지속적인 4K60 캡처를 위해서는 외장 SSD가 필요합니다. 핸드오프 대상은 DaVinci Resolve, Final Cut, 또는 다른 그레이딩 가능한 NLE입니다.
코덱 선택은 AVCaptureMovieFileOutput의 출력 설정을 통해 노출됩니다. 녹화 흐름을 처리하는 앱은 AVVideoCodecKey를 .hevc, .proRes422, .proRes422HQ, .proRes422LT, .proRes422Proxy, .proRes4444 등 중 하나로 설정한 출력 포맷 딕셔너리를 설정합니다. 이들은 AVVideoCodecType 정적 상수입니다. 최신 Swift API에는 “apple” 접두사가 없다는 점을 참고하세요. AVCaptureDevice.Format은 디바이스가 어떤 코덱으로 스트리밍할 수 있는지를 제약하며, 모든 코덱이 모든 해상도에서 사용 가능한 것은 아닙니다.
컬러 그레이딩 핸드오프: LUT
Apple Log 푸티지는 색이 빠진 것처럼 보입니다. 그레이딩 워크플로우는 LUT(Look-Up Table)를 적용하여 Apple Log의 색공간을 전달 대상(SDR용 Rec.709, HDR용 Rec.2020)으로 매핑합니다. Apple은 Final Cut Pro / Pro Apps 지원 문서 허브를 통해 공식 LUT를 제공합니다4:
- Apple Log to Rec.709. SDR 전달용. 표준 YouTube / 웹 비디오 색공간입니다.
- Apple Log to Rec.2020 HLG. HLG를 통한 HDR 전달용. 방송 / 일반 HDR입니다.
- Apple Log to Rec.2020 HDR10. HDR10을 통한 HDR 전달용. 스트리밍 HDR입니다.
Apple Log 푸티지를 처리하는 앱은 다음 중 하나를 선택합니다: 1. LUT를 직접 임베드하고 가져오기 시 적용(Final Cut, DaVinci Resolve, LUT 플러그인이 있는 Photoshop) 2. 편집자가 수동으로 적용할 수 있도록 LUT 경로를 문서화
Apple Log를 인식하는 도구를 만드는 앱 개발자에게 올바른 패턴은 옵션 1입니다: LUT를 번들로 제공하고 가져오기 시 적용하며 사용자가 표준 전달 포맷으로 내보내도록 하는 것입니다. Apple이 제공하는 LUT는 Apple의 개발자 도구 라이선스를 통해 자유롭게 재배포할 수 있습니다.
표시: AVKit을 통한 EDR
표시 측은 대부분 자동입니다. AVKit의 AVPlayerViewController(UIKit)와 SwiftUI의 VideoPlayer는 모두 지원 디스플레이에서 HDR 콘텐츠를 EDR(Extended Dynamic Range)로 렌더링합니다:
- iPhone OLED 디스플레이(iPhone X 이상, ProMotion이 있는 Pro 모델).
- iPad Pro 미니-LED 디스플레이.
- Mac XDR 디스플레이.
- AirPlay를 통한 외부 HDR 지원 디스플레이.
SDR 전용 디스플레이의 경우 시스템이 HDR 콘텐츠를 자동으로 톤 매핑합니다. 앱은 재생 경로에서 디스플레이 기능에 따라 분기하지 않습니다. 시스템이 처리합니다.
커스텀 비디오 파이프라인(Metal 기반 플레이어, 커스텀 처리가 있는 AVSampleBufferDisplayLayer)이 있는 앱은 CAMetalLayer.wantsExtendedDynamicRangeContent 또는 동등한 레이어 프로퍼티를 통해 명시적으로 EDR을 옵트인해야 합니다. 커스텀 Metal 레이어의 기본값은 SDR입니다. HDR 지원에는 명시적 옵트인과 함께 1.0 이상의 컴포넌트 값을 지원하는 픽셀 포맷(일반적으로 bgr10a2Unorm 또는 HDR 지원 float 포맷)이 필요합니다.
자주 발생하는 실패
AVFoundation HDR / Apple Log 실패 로그의 세 가지 패턴:
HDR을 캡처하지만 이를 지원하지 않는 코덱으로 녹화하기. 8비트 HEVC로 녹화하는 세션에서 isVideoHDREnabled = true로 설정하면 조용히 SDR 출력이 생성됩니다. HDR 신호는 캡처되지만 인코딩이 이를 제거합니다. 해결책: HDR 캡처를 10비트 코덱(10비트 HEVC, ProRes, ProRes Log)과 페어링합니다.
전달 파이프라인에 LUT 없이 Apple Log 캡처하기. Apple Log 비디오는 의도적으로 색이 빠진 것처럼 보입니다. 그레이딩되지 않은 Apple Log 푸티지를 보는 시청자는 카메라나 앱이 고장났다고 가정합니다. 해결책: 앱에서 표시 전에 Apple Log → Rec.709 LUT를 적용하거나, 사용자에게 후처리 요구사항을 이해할 수 있도록 명확한 라벨링과 함께 푸티지를 “log”로 표면화합니다.
bgr10a2Unorm(또는 float HDR 픽셀 포맷) 없이 wantsExtendedDynamicRangeContent를 통한 HDR 표시. EDR 옵트인이 되어 있지만 채널당 8비트 픽셀 포맷으로 렌더링하는 Metal 레이어는 클리핑된 하이라이트를 생성합니다. 해결책: EDR 옵트인을 올바른 픽셀 포맷(10비트 unsigned-norm 또는 16비트 float)과 페어링합니다.
이 패턴이 iOS 26+ 앱에 의미하는 것
세 가지 핵심 사항.
-
일반 앱에는 기본적으로 HEVC를 사용하고, 전문 워크플로우가 그것을 정당화할 때만 ProRes를 선택하세요. 10비트 HEVC를 통해 HDR을 캡처하는 컨슈머 비디오 앱은 합리적인 파일 크기로 풀 HDR을 제공합니다. ProRes는 무손실 그레이딩 유연성이 필요한 영화 제작자와 편집자를 위한 것입니다. 파일 크기 비용은 실제적입니다.
-
Apple Log는 iPhone 15 Pro+의 영역입니다. 디바이스 요구사항을 문서화하세요. Apple Log 캡처를 약속하는 앱은 런타임에
AVCaptureDevice.Format.supportedColorSpaces에서.appleLog를 확인하고, 이를 지원하지 않는 디바이스에서는 우아하게 다운그레이드해야 합니다. 포맷 검사는 디바이스별이지 iOS 버전별이 아닙니다. -
Apple Log 푸티지를 위해 LUT를 번들로 제공하거나 워크플로우를 문서화하세요. Apple Log 비디오를 처리하는 앱은 원본 Log에서 그레이딩된 전달까지의 경로가 필요합니다. LUT를 임베드하고 가져오기 시 적용하거나, 사용자가 선택한 NLE에서 어떻게 적용할지에 대한 명확한 문서와 함께 Apple이 제공하는 LUT를 사용자에게 표면화하는 것입니다.
전체 Apple Ecosystem 클러스터: 타입화된 App Intents; MCP 서버; 라우팅 질문; Foundation Models; 런타임 vs 툴링 LLM 구분; 세 가지 표면; 단일 진실 공급원 패턴; 두 개의 MCP 서버; Apple 개발을 위한 hooks; Live Activities; watchOS 런타임; SwiftUI 내부; RealityKit의 공간 사고 모델; SwiftData 스키마 규율; Liquid Glass 패턴; 멀티 플랫폼 출시; 플랫폼 매트릭스; Vision 프레임워크; Symbol Effects; Core ML 추론; Writing Tools API; Swift Testing; Privacy Manifest; 플랫폼으로서의 접근성; SF Pro 타이포그래피; visionOS 공간 패턴; Speech 프레임워크; SwiftData 마이그레이션; tvOS 포커스 엔진; @Observable 내부; SwiftUI Layout 프로토콜; 커스텀 SF Symbols; 내가 쓰지 않는 것. 허브는 Apple Ecosystem 시리즈에 있습니다. AI 에이전트와 함께하는 더 넓은 iOS 컨텍스트는 iOS Agent Development 가이드를 참조하세요.
FAQ
앱에서 HDR 비디오를 녹화하려면 iPhone 15 Pro가 필요한가요?
아니요. HDR 비디오(HLG, HDR10)는 iPhone 12 Pro 이후 모델에서 10비트 HEVC를 통해 지원됩니다. iPhone 15 Pro 이후는 Apple Log를 추가로 지원합니다. 더 광범위한 HDR 파이프라인은 더 많은 디바이스에서 작동합니다.
Apple Log와 Dolby Vision의 차이는 무엇인가요?
Apple Log는 캡처 컬러 프로파일(그레이딩을 위해 설계됨)입니다. Dolby Vision은 전달 HDR 포맷(재생을 위해 설계됨)입니다. 이들은 파이프라인의 다른 단계를 차지합니다. Apple Log 푸티지는 그레이딩되어 전달 포맷으로 내보내지며, Dolby Vision은 전달 옵션 중 하나입니다.
런타임에 Apple Log 지원을 어떻게 감지하나요?
AVCaptureDevice.formats를 열거한 다음, 각 포맷에 대해 supportedColorSpaces를 확인합니다. Apple Log 지원은 그 목록에 .appleLog로 나타납니다. 지원 디바이스에서만 Apple Log 캡처를 노출하려는 앱은 iPhone 모델 식별자를 파싱하는 대신 이 검사를 키로 사용합니다.
HEVC HDR과 ProRes Log 사이의 파일 크기 차이는 어느 정도인가요?
비트 레이트와 해상도에 따라 분당 약 10-50배입니다. 4K30 HEVC HDR은 약 50-100 MB/분이며, 4K30 ProRes 422 HQ는 약 1.5-2.5 GB/분입니다. ProRes Log 파일은 지속적인 4K60 캡처를 위해 외장 USB-C SSD가 필요합니다. iPhone의 내부 저장소는 지속적인 ProRes 쓰기에 대해 속도 제한이 있습니다.
LUT 없이 Apple Log 푸티지를 표시할 수 있나요?
원본 비디오를 표시할 수는 있지만 색이 빠지고 채도가 낮아 보일 것입니다. Apple Log 컬러 프로파일은 직접 보기가 아닌 그레이딩을 위한 것입니다. 사용자에게 원본 Apple Log 푸티지를 표면화해야 하는 앱은 사용자가 후처리 요구사항을 이해할 수 있도록 “log”로 라벨링해야 합니다. 그렇지 않으면 표시를 위해 Apple Log → Rec.709 LUT를 적용하세요.
AVFoundation은 HDR-to-SDR 톤 매핑을 자동으로 처리하나요?
AVKit의 표준 플레이어(AVPlayerViewController, SwiftUI의 VideoPlayer)에서는 그렇습니다. 커스텀 Metal 비디오 파이프라인은 명시적으로 EDR을 옵트인하고 HDR 지원 픽셀 포맷을 선택해야 합니다. 그것이 없으면 HDR 콘텐츠는 클리핑된 SDR로 표시됩니다.
참고 자료
-
Apple Developer Documentation: AVFoundation. iOS, iPadOS, macOS, tvOS, watchOS, visionOS 전반에 걸친 캡처, 편집, 재생 API를 다루는 프레임워크 레퍼런스입니다. ↩
-
Apple Developer Documentation:
AVPlayer.HDRMode. 세 가지 HDR 케이스(.hlg,.hdr10,.dolbyVision)와AVPlayer인스턴스가 현재 항목에 대해 어떤 것을 지원하는지를 위한availableHDRModes쿼리. ↩↩ -
Apple Developer Documentation:
AVCaptureDevice및AVCaptureDevice.Format. Apple Log 감지를 위한supportedColorSpaces와 HDR 가능성을 위한isVideoHDRSupported를 포함한 캡처 디바이스의 포맷 프로퍼티. ↩↩ -
Apple Pro Apps Support: Apple Pro Apps support and downloads. Apple Log Profile 리소스와 Apple Log 푸티지를 표준 전달 색공간으로 변환하기 위한 다운로드 가능한 LUT를 연결하는 Pro Apps 허브입니다. LUT는 Final Cut Pro와 Logic Pro에 번들로 제공되며 독립 다운로드로도 제공됩니다. ↩↩