2025 年 7 月 17 日
Audio&Video AVFoundation iOS iPadOS Photos&Camera WWDC WWDC25運用全新 Cinematic Video API 打造專業級攝影 App
自 iPhone 13 系列推出「電影級」模式(Cinematic mode)以來,這項技術透過淺景深效果與強大的演算法,將行動攝影提升至全新維度。以往這是一項僅限於原生相機應用的功能,但在 iOS 26 中,Apple 正式推出 Cinematic Video API,將「智慧化驅動對焦決策」的核心能力開放給開發者,讓第三方 App 也能實現專業級的移焦(Rack Focus)與追蹤對焦。
在專業電影製作中,手動調焦(Focus Pulling)是一項極需精確度與經驗的技術。Cinematic Video API 的出現,透過自動感應主體入鏡、轉向或離開並進行平滑對焦,大幅簡化了原本極具挑戰性的拍攝流程。
核心配置:一鍵啟用 isCinematicVideoCaptureEnabled
啟用電影級錄影功能的門檻極低,開發者只需在 AVCaptureDeviceInput 層級進行配置。關鍵在於將 isCinematicVideoCaptureEnabled 屬性設為 true,系統便會自動將整個 Capture Session 設定為輸出電影級影像,使所有輸出端(如 Movie File Output、Video Data Output)皆能獲得電影級處理。
在程式碼實作上,必須先確認設備的 activeFormat 是否支援該功能:
import AVFoundation
let camera = AVCaptureDevice(uniqueID: "XcodeProject")!
let videoInput = try! AVCaptureDeviceInput(device: camera)
// 1. 檢查當前格式是否支援電影級錄影
if videoInput.device.activeFormat.isCinematicVideoCaptureSupported {
try? videoInput.device.lockForConfiguration()
// 2. 啟用電影級捕捉
videoInput.isCinematicVideoCaptureEnabled = true
videoInput.device.unlockForConfiguration()
}
非破壞性編輯的技術價值
電影級模式產出的影片檔案包含原始影片、視差數據(Disparity data)與元數據(Metadata)。這種架構支援「非破壞性編輯」,開發者可結合 2023 年推出的 Cinematic Framework,在後製階段根據元數據重新計算並渲染散景效果,甚至更改對焦目標。
電影級影片透過智慧驅動對焦決策,大幅簡化了專業攝影中充滿挑戰的拍攝流程。
硬體支援與 Discovery Session 規範
在 iOS 26 中,Cinematic Video API 對硬體與格式有嚴格要求。開發者應使用 AVCaptureDevice.DiscoverySession 來定位支援的設備,包含機背的雙廣角相機(.builtInDualWideCamera)與前置的 TrueDepth 相機。
以下是受支援的影片格式與色彩空間規格:
| 規格項目 | 支援參數 | 備註 |
| 解析度 | 1080p、4K | 支援機背與前置鏡頭 |
| 幀率 | 30 fps | 固定幀率以確保運算穩定 |
| SDR/EDR 色彩空間 | 420 Video Range/Full Range | 適用於標準動態範圍錄製 |
| 10-bit HDR 色彩空間 | x420 | 高動態範圍專用格式 |
三種手動對焦模式與視覺反饋
API 模擬了專業調焦師的邏輯,提供 CinematicVideoFocusMode 枚舉,讓開發者精確控制 setCinematicVideoTrackingFocus 的行為:
- 強對焦 Strong Focus:強制鎖定主體,即便有更顯眼的主體進入畫面,焦點仍會保持在原目標上。在 UI 上通常以實線(Solid)黃色矩形表示
- 弱對焦 Weak Focus:暫時對焦於主體,但將最終控制權交給演算法。當其他主體(如人臉轉向鏡頭)被判定為更重要時,會自動移焦。在 UI 上以虛線(Dashed)矩形表示
- 固定對焦 Fixed Focus:使用
setCinematicVideoFixedFocus,透過深度訊號將焦點鎖定在特定的平面上,適合用於忽略前景干擾、專注於背景空間的鏡頭
備註:
None 模式僅用於判斷元數據物件當前是否擁有焦點,不可用於設置對焦。
SwiftUI 整合與座標轉換邏輯
在 SwiftUI 中,需透過 UIViewRepresentable 封裝 AVCaptureVideoPreviewLayer。實現互動對焦的關鍵在於處理元數據。
警告:
電影級演算法需特定的元數據類型才能運作。開發者必須讀取 requiredMetadataObjectTypesForCinematicVideoCapture 並將其賦值給 metadataObjectTypes。若類型不符,系統將拋出異常(Exception)導致崩潰。
座標轉換則需注意座標系差異:AVFoundation 使用左上角為原點,而 SwiftUI 通常以中心點(midX、midY)定義位移。
// 將元數據座標轉換為預覽圖層座標
let transformedRect = previewLayer.layerRectConverted(fromMetadataOutputRect: metadataObject.bounds)
// 轉換為 SwiftUI 座標(以中心點為準)
let centerX = transformedRect.midX
let centerY = transformedRect.midY
為了讓使用者能手動驅動對焦,我們必須為人臉等對焦候選主體提供視覺指示器。
進階功能:光圈、穩定化與環境監測
要打造專業級 App,需處理以下進階細節:
- 模擬光圈 Simulated Aperture:透過
simulatedAperture控制散景強度。開發者應讀取格式中的min、max、default值來設定 UI 滑桿。f 值越小(光圈越大),背景虛化越強烈 - 專業級穩定化與音訊:建議啟用
cinematicExtendedEnhanced穩定模式,並將multichannelAudioMode設為一階環境立體聲(First-order Ambisonics)以捕捉空間音訊 - 低光源監測 KVO:電影級演算法需要充足光線。開發者必須使用 Key-Value Observing(KVO)監測
cinematicVideoCaptureSceneMonitoringStatuses。當狀態包含.notEnoughLight時,應在 UI 提示使用者
結語
Cinematic Video API 的開放,代表著專業級影像創作工具的門檻再次降低。透過 iOS 26 提供的深度資訊與智慧演算法,第三方應用不再只是單純地「模糊背景」,而是能真正參與到「說故事」的對焦決策中。
這套 API 不僅提升了影片的質感,更為行動端影音創作開闢了自動化與專業化並行的全新路徑。
延伸思考:
在您開發的 App 中,您最期待實作哪種電影級技術?是讓演算法智慧切換的「弱對焦」,還是能精確鎖定空間深度的「固定對焦」?
關於 XcodeProject
XcodeProject 創立於 2023,致力於協助開發者探索 Apple 的創新世界,學習在 iOS、iPadOS、macOS、tvOS、visionOS 與 watchOS 上開發 App,發現眾多技術與框架,讓開發者獲得更多能力。