TechnologiesVideo, Photos & Camera

VideoToolbox

iOSmacOStvOSwatchOSvisionOS

VideoToolbox provides hardware-accelerated video compression, decompression, format conversion, and frame-processing effects on iOS, macOS, tvOS, and visionOS. You encode and decode frames through a VTCompressionSession and VTDecompressionSession, and move or rotate pixel buffers between formats using VTPixelTransferSession and VTPixelRotationSession. Its VTFrameProcessor applies effects to video frames, configured through types such as VTFrameRateConversionConfiguration, VTLowLatencyFrameInterpolationConfiguration, VTSuperResolutionScalerConfiguration, VTMotionBlurConfiguration, VTOpticalFlowConfiguration, and VTTemporalNoiseFilterConfiguration. Supporting sessions including VTMotionEstimationSession, VTRAWProcessingSession, and VTHDRPerFrameMetadataGenerationSession, along with VTFrameSilo and VTMultiPassStorage, handle motion analysis, raw processing, HDR metadata, and multi-pass encoding storage.

Compression and Decompression 7

Sessions that encode and decode video frames using hardware acceleration.

  • Cl
    VTCompressionSession
    @typedef VTCompressionSessionRef
  • Cl
    VTDecompressionSession
    @typedef VTDecompressionSessionRef
  • St
    VTDecompressionOutputCallbackRecordmacOS 10.8+
    A structure that holds a decompression session's output callback and context.
  • St
    VTCompressionSessionOptionFlagsmacOS 10.10+
    Flags that control optional behavior of a compression session.
  • St
    VTEncodeInfoFlags
    Flags that report information about an encoded frame.
  • St
    VTDecodeFrameFlags
    @enum VTDecodeFrameFlags
  • St
    VTDecodeInfoFlags
    @enum VTDecodeInfoFlags

Pixel Transfer and Rotation 2

Sessions that convert pixel buffers between formats and rotate them.

  • Cl
    VTPixelTransferSessionmacOS 10.8+
    @typedef VTPixelTransferSessionRef
  • Cl
    VTPixelRotationSessionmacOS 13.0+
    @typedef VTPixelRotationSessionRef

Frame Processing 6

The frame processor and the frame and optical-flow objects it operates on.

  • Cl
    VTFrameProcessormacOS 15.4+
    Provides a unified interface you can use to apply video effects to frames.
  • Cl
    VTFrameProcessorFramemacOS 15.4+
    Helper class to wrap pixel buffers as video frames.
  • Cl
    VTFrameProcessorOpticalFlowmacOS 15.4+
    Helper class to wrap optical flow.
  • Pr
    VTFrameProcessorConfigurationmacOS 15.4+
    The protocol that describes the configuration of a processor for a video frame processing session.
  • Pr
    VTFrameProcessorParametersmacOS 15.4+
    The base protocol for input and output processing parameters for a Video Toolbox frame processor implementation.
  • St
    VTFrameProcessorError
    Error codes reported by the frame processor.

Frame Rate and Interpolation Effects 4

Configuration and parameter objects for frame-rate conversion and interpolation.

  • Cl
    VTFrameRateConversionConfigurationmacOS 15.4+
    Configuration that you use to set up the frame rate conversion processor.
  • Cl
    VTFrameRateConversionParametersmacOS 15.4+
    An object that contains both input and output parameters, which the frame-rate conversion processor needs to process a frame.
  • Cl
    VTLowLatencyFrameInterpolationConfigurationmacOS 26.0+
    Configuration that you use to program Video Toolbox frame processor for low-latency frame interpolation.
  • Cl
    VTLowLatencyFrameInterpolationParametersmacOS 26.0+
    An object that contains both input and output parameters that the low-latency frame interpolation processor needs.

Super Resolution and Motion Effects 8

Configuration and parameter objects for upscaling, motion blur, and optical flow.

  • Cl
    VTSuperResolutionScalerConfigurationmacOS 26.0+
    Configuration that you use to set up the super-resolution processor.
  • Cl
    VTSuperResolutionScalerParametersmacOS 26.0+
    An object that contains both input and output parameters that the super-resolution processor needs to run on a frame.
  • Cl
    VTLowLatencySuperResolutionScalerConfigurationmacOS 26.0+
    An object you use to configure frame processor for low-latency super-resolution scaler processing.
  • Cl
    VTLowLatencySuperResolutionScalerParametersmacOS 26.0+
    An object that contains both input and output parameters that the low-latency super-resolution scaler frame processor needs.
  • Cl
    VTMotionBlurConfigurationmacOS 15.4+
    Configuration that you use to set up the motion blur processor.
  • Cl
    VTMotionBlurParametersmacOS 15.4+
    An object that contains both input and output parameters that the motion blur processor needs to run on a frame.
  • Cl
    VTOpticalFlowConfigurationmacOS 15.4+
    Configuration that you use to set up an optical flow processor
  • Cl
    VTOpticalFlowParametersmacOS 15.4+
    An object that contains both input and output parameters the frame processor needs to generate optical flow between two frames.

Noise Filtering 2

Configuration and parameter objects for temporal noise reduction.

  • Cl
    VTTemporalNoiseFilterConfigurationmacOS 26.0+
    A configuration object to initiate a frame processor and use temporal noise-filter processor.
  • Cl
    VTTemporalNoiseFilterParametersmacOS 26.0+
    Encapsulates the frame-level parameters necessary for processing a source frame using temporal noise-filter processor.

Analysis and Specialized Sessions 4

Sessions for motion estimation, raw processing, and HDR metadata generation.

  • Cl
    VTMotionEstimationSession
    An object that estimates motion vectors between video frames.
  • Cl
    VTRAWProcessingSessionmacOS 15.0+
    @typedef VTRAWProcessingSessionRef
  • Cl
    VTHDRPerFrameMetadataGenerationSession
    An object that generates per-frame HDR metadata for video frames.
  • St
    VTHDRPerFrameMetadataGenerationHDRFormatTypemacOS 15.0+
    @header

Multi-Pass and Frame Storage 2

Storage objects that hold encoded frames and multi-pass encoding state.

  • Cl
    VTFrameSilo
    @typedef VTFrameSilo
  • Cl
    VTMultiPassStorage
    @typedef VTMultiPassStorageRef

Geometry and Property Keys 3

Geometric value types and keys used across VideoToolbox APIs.

  • St
    VTInt32Point
    A point defined by integer x and y coordinates.
  • St
    VTInt32Size
    A size defined by integer width and height values.
  • St
    VTExtensionPropertiesKeymacOS 15.0+
    @typedef VTExtensionPropertiesKey

Type Aliases 8

  • Ty
    VTCompressionOutputCallback
    @typedef VTCompressionOutputCallback
  • Ty
    VTCompressionOutputHandler
    @typedef VTCompressionOutputHandler
  • Ty
    VTDecompressionOutputCallback
    @typedef VTDecompressionOutputCallback
  • Ty
    VTDecompressionOutputHandler
    @typedef VTDecompressionOutputHandler
  • Ty
    VTDecompressionOutputMultiImageCallback
    @typedef VTDecompressionOutputMultiImageCallback
  • Ty
    VTDecompressionMultiImageCapableOutputHandler
    @typedef VTDecompressionMultiImageCapableOutputHandler
  • Ty
    VTMotionEstimationOutputHandler
    A block invoked by motion-estimation session when frame processing is complete.
  • Ty
    VTSession
    @typedef VTSessionRef
← Video, Photos & Camera