Capture setup
Configure built-in cameras and microphones, and external capture devices, for media capture.
Overview
The AVFoundation Capture subsystem provides a common high-level architecture for video, photo, and audio capture services in iOS and macOS. Use this system if you want to:
Build a custom camera UI to integrate shooting photos or videos into your app’s user experience.
Give users more direct control over photo and video capture, such as focus, exposure, and stabilization options.
Produce different results than the system camera UI, such as RAW format photos, depth maps, or videos with custom timed metadata.
Get live access to pixel or audio data streaming directly from a capture device.
The main parts of the capture architecture are sessions, inputs, and outputs: Capture sessions connect one or more inputs to one or more outputs. Inputs are sources of media, including capture devices like the cameras and microphones built into an iOS device or Mac. Outputs acquire media from inputs to produce useful data, such as movie files written to disk or raw pixel buffers available for live processing.
[Image]
Topics
Essentials
Capture sessions
Setting up a capture sessionAccessing the camera while multitasking on iPadAVCam: Building a camera appBuilding a responsive camera app that launches quicklyCapturing Cinematic videoSupporting Center Stage front camera in your iOS appAVMultiCamPiP: Capturing from Multiple CamerasAVCamBarcode: detecting barcodes and facesRegistering a camera capture accessory on iPhone DuoAVCaptureSessionAVCaptureMultiCamSessionAVCaptureInputAVCaptureOutputAVCaptureConnection
Capture devices
Choosing a capture deviceAdopting smart framing in your camera appSupporting device rotation in your camera appAVCaptureDeviceAVCaptureDeviceInputAVContinuityDeviceAVExternalStorageDeviceAVExternalStorageDeviceDiscoverySession
Capture preview
Continuity Camera
Supporting Continuity Camera in your tvOS appSupporting Continuity Camera in your macOS appAVCaptureDeskViewApplication
Capture controls
Enhancing your app experience with the Camera ControlAVCaptureControlAVCaptureSystemZoomSliderAVCaptureSystemExposureBiasSliderAVCaptureSliderAVCaptureIndexPicker
External display output
Timecode generation
AVCaptureTimecodeGeneratorAVCaptureTimecodeGeneratorDelegateAVCaptureTimecodeGenerator.SynchronizationStatusAVCaptureTimecode.SourceAVCaptureTimecode.SourceTypeAVCaptureTimecodeadvanced(_:by:)createMetadataSampleBuffer(from:associatedWithPresentationTimeStamp:)createMetadataSampleBuffer(from:forDuration:)
External synchronization
AVExternalSyncDeviceAVExternalSyncDeviceDelegateAVExternalSyncDeviceStatusAVExternalSyncDevice.DiscoverySession