CameraVideoOutput

interface CameraVideoOutput extends CameraOutput

A Video output allows recording videos (possibly with audio) to a file.

See

Examples

Creating a CameraVideoOutput via the Hooks API:

const videoOutput = useVideoOutput()

Creating a CameraVideoOutput via the Imperative API:

const videoOutput = VisionCamera.createVideoOutput({
  targetResolution: CommonResolutions.FHD_16_9,
})

Properties

currentResolution?

readonly optional currentResolution?: Size

The resolution that the underlying capture pipeline has resolved this CameraOutput to, in sensor-native (un-rotated) pixels, or undefined if the output has not yet been connected to a CameraSession.

Discussion

The selected Size may differ from the requested Size (e.g. from PhotoOutputOptions.targetResolution), as the CameraSession negotiates resolutions across attached CameraOutputs, connected CameraDevice capabilities, and enabled Constraints.

Discussion

For outputs that are not pixel-based (e.g. metadata-only outputs), this reports the resolution of the upstream video stream feeding the output, or undefined if no video input is attached.

Inherited from

CameraOutput.currentResolution


mediaType

readonly mediaType: MediaType

The media type of the content being streamed by this CameraOutput.

Inherited from

CameraOutput.mediaType


outputOrientation

outputOrientation: CameraOrientation

Gets or sets the output orientation of this CameraOutput.

Individual implementations of CameraOutput may choose different strategies for implementing output orientation, for example:

  • A Photo output might apply orientation via EXIF flags.
  • A Video output might apply orientation via track transform metadata.
  • A Preview output might apply orientation via view transforms.
  • A Frame output might not apply orientation and only pass it as a property via the Frame object, unless explicitly configured to physically rotate buffers.

Inherited from

CameraOutput.outputOrientation

Methods

createRecorder(...)

createRecorder(settings: RecorderSettings): Promise<Recorder>

Creates and prepares a new Recorder instance with the given RecorderSettings.

The Recorder will record to the configured file path, or to a temporary file if no path was provided. The Recorder's file paths are filesystem paths, not file:// URLs. It can only record once.

If you want to create a second recording, you must create a new Recorder.


getSupportedVideoCodecs()

iOS
getSupportedVideoCodecs(): VideoCodec[]

Get all supported VideoCodecs this CameraVideoOutput currently can record in.

This method must be called after the CameraVideoOutput has been attached to a Camera Session.

Throws

This method throws if you call it before this output is attached to a Camera Session (via configure(...))


setOutputSettings(...)

iOS
setOutputSettings(settings: VideoOutputSettings): Promise<void>

Set the output settings for this video output. This method must be called after the output has been attached to the Camera Session, and before createRecorder(...).