---
title: VisionCamera vs Expo Camera
description: Choosing between VisionCamera and Expo Camera based on available features, platform support and native integration requirements
icon: GitCompareArrows
---

Both VisionCamera and Expo Camera are popular Camera libraries for React Native and Expo - however each come with their own feature set and limitations, showcased here on this page.

- Expo Camera ([expo-camera](https://docs.expo.dev/versions/latest/sdk/camera)) is the Expo SDK's Camera view. Pick it for Expo Go, Web, and fast Expo setup.
- VisionCamera ([react-native-vision-camera](/api/react-native-vision-camera)) is a native Camera framework built with Nitro. Pick it for camera-first apps, pro capture controls, high-performance Camera apps, realtime frames/ML, depth, HDR/RAW, multi-cam, custom outputs, or native plugins.

### Feature Comparison

| Feature                                                                                                                  | VisionCamera  | Expo Camera              |
| ------------------------------------------------------------------------------------------------------------------------ | ------------- | ------------------------ |
| Works in [Expo Go](https://expo.dev/go)                                                                                  | ❌            | ✅                       |
| Works on [Web](https://docs.expo.dev/versions/latest/sdk/camera/#web-support)                                            | ❌            | ✅                       |
| [Camera View](camera-view) Component                                                                                     | ✅            | ✅                       |
| Capturing [Photos](photo-output)                                                                                         | ✅            | ✅                       |
| In-memory [Photo Capture](photo-output#capturing-photos-in-memory)                                                       | ✅            | ✅                       |
| Android [Snapshot Capture](snapshot-capture)                                                                             | ✅            | ❌                       |
| Capturing [Videos](video-output)                                                                                         | ✅            | ✅                       |
| Barcode [Scanning](barcode-scanner)                                                                                      | ✅            | ✅                       |
| System [Barcode Scanner UI](https://docs.expo.dev/versions/latest/sdk/camera/#launchscanneroptions)                      | ❌            | ✅                       |
| Scan [Barcodes from Image URL](barcode-scanner#using-the-barcode-scanner)                                                | ✅            | ✅                       |
| Locking [AE/AF/AWB](locking-ae-af-awb)                                                                                   | ✅            | ❌                       |
| Configurable [`focusTo(...)`](tap-to-focus#focus-metering-options)                                                       | ✅            | ❌                       |
| Realtime [Frame Processing](frame-output)                                                                                | ✅            | ❌                       |
| Drawing onto the Camera with [Skia](skia-frame-processors)                                                               | ✅            | ❌                       |
| Realtime [Depth Frame Processing](depth-output)                                                                          | ✅            | ❌                       |
| Depth in [Photos](a-photo)                                                                                               | ✅            | ❌                       |
| Capturing [RAW Photos](raw-photos)                                                                                       | ✅            | ❌                       |
| Photo [HDR](photo-hdr)                                                                                                   | ✅            | ❌                       |
| Video [HDR/Dynamic Ranges](video-hdr)                                                                                    | ✅            | ❌                       |
| Maximum Photo [Resolution](camera-outputs#resolutions)                                                                   | ✅            | ❌                       |
| Android [Camera Extensions](camera-extensions)                                                                           | ✅            | ❌                       |
| Video [Stabilization](video-stabilization)                                                                               | ✅            | ✅                       |
| Preview [Stabilization](/api/react-native-vision-camera/interfaces/PreviewStabilizationModeConstraint)                   | ✅            | ❌                       |
| Low Light [Boost](low-light-boost)                                                                                       | ✅            | ❌                       |
| Exposure [Bias](exposure-bias)                                                                                           | ✅            | ❌                       |
| Configurable [FPS](fps)                                                                                                  | ✅            | ❌                       |
| Specific [Camera/Lens Selection](devices#selecting-a-custom-camera-device)                                               | ✅            | Front/back + iOS lenses  |
| External [Camera Devices](devices#external-devices)                                                                      | ✅            | ❌                       |
| Multi-Camera [Support](multi-camera)                                                                                     | ✅            | ❌                       |
| Persistent [Video Outputs](video-output#persistent-video-outputs)                                                        | ✅            | ❌                       |
| Coordinate [Systems](coordinate-systems)                                                                                 | ✅            | ❌                       |
| Location [Tags](location)                                                                                                | ✅            | ❌                       |
| Photo Output [Callbacks](photo-output-callbacks)                                                                         | ✅            | ❌                       |
| Preview Image [During Capture](photo-output-callbacks#preview-image)                                                     | ✅            | ❌                       |
| Custom Photo [JPEG Quality](photo-quality#configure-jpeg-quality)                                                        | ✅            | ✅                       |
| Photo [`qualityPrioritization`](photo-quality#adjust-quality-prioritization)                                             | ✅            | ❌                       |
| Custom Video [`maxFileSize`](/api/react-native-vision-camera/interfaces/RecorderSettings#maxfilesize)                    | ✅            | ✅                       |
| Custom Video [`maxDuration`](/api/react-native-vision-camera/interfaces/RecorderSettings#maxduration)                    | ✅            | ✅                       |
| Custom Video [Bitrate](/api/react-native-vision-camera/interfaces/VideoOutputOptions#targetbitrate)                      | ✅            | ✅                       |
| Custom Video [`codec`](/api/react-native-vision-camera/interfaces/VideoOutputSettings#codec)                             | ✅            | ✅                       |
| Native [Frame Processor Plugins](native-frame-processor-plugins)                                                         | ✅            | ❌                       |
| Custom Native [`CameraOutput`s](custom-native-camera-outputs)                                                            | ✅            | ❌                       |

### Expo projects

Expo Camera is an Expo SDK package and runs in [Expo Go](https://expo.dev/go).
VisionCamera is a third-party native package and runs in an [Expo Development Build](https://docs.expo.dev/tutorial/eas/configure-development-build/#initialize-a-development-build) (`expo prebuild`), or in a bare React Native app.
