<!--
{
  "availability" : [
    "iOS: 4.0.0 -",
    "iPadOS: 4.0.0 -",
    "macCatalyst: 14.0.0 -",
    "macOS: 10.7.0 -",
    "tvOS: 17.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/AVCaptureInput",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "c:objc(cs)AVCaptureInput"
  },
  "title" : "AVCaptureInput"
}
-->

# AVCaptureInput

An abstract superclass for objects that provide input data to a capture session.

```
class AVCaptureInput
```

## Overview

You create concrete instances of this class, such as [`AVCaptureDeviceInput`](/documentation/AVFoundation/AVCaptureDeviceInput), to add inputs to a capture session. An input provides one or more streams of media data. For example, input devices can provide both audio and video data. The framework represents each media stream that an input provides as an [`AVCaptureInput.Port`](/documentation/AVFoundation/AVCaptureInput/Port) object.

A capture makes connections between capture inputs and capture outputs using a [`AVCaptureConnection`](/documentation/AVFoundation/AVCaptureConnection) object. The connection defines the mapping between a set of port objects and an [`AVCaptureOutput`](/documentation/AVFoundation/AVCaptureOutput).

## Topics

### Accessing ports

[`ports`](/documentation/AVFoundation/AVCaptureInput/ports)

The ports available on a capture input.

[`AVCaptureInput.Port`](/documentation/AVFoundation/AVCaptureInput/Port)

An object that represents a stream of data that a capture input provides.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)