Skip to main content

cv2_enumerate_cameras

PyPI - Version Python Version from PEP 621 TOML PyPI - Downloads

Retrieve camera names, VID/PID information, device paths, and the corresponding OpenCV indices.

Installation

Install from PyPI

pip install cv2-enumerate-cameras

Quick Start

Run as a Script

A simple command-line script is provided to enumerate all cameras:

lscam

Or run the module directly:

python -m cv2_enumerate_cameras

Integrate into Your Project

To enumerate cameras inside your code:

from cv2_enumerate_cameras import enumerate_cameras

for camera_info in enumerate_cameras():
    print(camera_info)

By default, enumerate_cameras() is called with the parameter CAP_ANY, which instructs cv2_enumerate_cameras to probe all supported backends when enumerating cameras. Example output:

1400: 2K USB Camera (2BDF:02A5)
700: 2K USB Camera (2BDF:02A5)
701: OBS Virtual Camera

These seemingly unusual indices are intentional: OpenCV encodes the backend ID into the high digits of the index. For example, 701 indicates the second camera (1) on the DSHOW backend (700).

To explicitly use a specific backend:

import cv2
from cv2_enumerate_cameras import enumerate_cameras

for camera_info in enumerate_cameras(cv2.CAP_MSMF):
    print(camera_info)

Output:

0: 2K USB Camera (2BDF:02A5)
1: ...
2: ...

Once you have found the target camera, you can create a cv2.VideoCapture by its index and backend properties.

cap = cv2.VideoCapture(camera_info.index, camera_info.backend)

When using CAP_ANY, the backend argument can be omitted. But for robust behavior, explicitly passing it is strongly recommended.

Supported Backends

Not all OpenCV backends support camera enumeration. Use the following snippet to print the names of the supported backends:

from cv2.videoio_registry import getBackendName
from cv2_enumerate_cameras import supported_backends

for backend in supported_backends:
    print(getBackendName(backend))

Windows:

  • Microsoft Media Foundation (CAP_MSMF)
  • DirectShow (CAP_DSHOW)

Linux:

  • GStreamer (CAP_GSTREAMER)
  • V4L/V4L2 (CAP_V4L2)

macOS:

  • AVFoundation (CAP_AVFOUNDATION)

CameraInfo Object

enumerate_cameras() returns a list of CameraInfo objects:

def enumerate_cameras(apiPreference: int = CAP_ANY) -> list[CameraInfo]:
    ...
  • CameraInfo.index: Camera index for the selected backend
  • CameraInfo.name: Human-readable device name
  • CameraInfo.path: Device path (macOS: uniqueID);
  • CameraInfo.vid: USB Vendor ID (if available);
  • CameraInfo.pid: USB Product ID (if available);
  • CameraInfo.backend: OpenCV backend used for enumeration.

Examples

Automatically Select a Camera by VID/PID

This example finds a camera using VID/PID and creates a VideoCapture:

import cv2
from cv2_enumerate_cameras import enumerate_cameras

# Search for a specific camera by VID and PID
def find_camera(vid, pid, apiPreference=cv2.CAP_ANY):
    for i in enumerate_cameras(apiPreference):
        if i.vid == vid and i.pid == pid:
            return cv2.VideoCapture(i.index, i.backend)
    raise RuntimeError('Camera not found!')

# Example: Find the camera with VID 0x04F2 and PID 0xB711
cap = find_camera(0x04F2, 0xB711)

# Capture and display frames
while True:
    ok, frame = cap.read()
    if not ok:
        break
    cv2.imshow('frame', frame)
    if cv2.waitKey(1) == ord('q'):
        break

Release files for cv2-enumerate-cameras 1.3.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cv2-enumerate-cameras 1.3.3
File Size Uploaded
cv2_enumerate_cameras-1.3.3.tar.gz 12.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for cv2-enumerate-cameras 1.3.3
File Interpreter ABI Platform
cv2_enumerate_cameras-1.3.3-py3-none-any.whl Python 3 none any Details
cv2_enumerate_cameras-1.3.3-cp32-abi3-win_amd64.whl CPython 3.2 abi3 Windows x86-64 Details
cv2_enumerate_cameras-1.3.3-cp32-abi3-win32.whl CPython 3.2 abi3 Windows x86-32 Details

Total release size: 67.6 kB

Release files / cv2_enumerate_cameras-1.3.3.tar.gz

Download URL cv2_enumerate_cameras-1.3.3.tar.gz
Size 12.9 kB
Tags Source
SHA-256 checksum
How to use checksums
cc09429e3fd4a2ea3449bbc0ee12420666aee6705d80a36f2235503d90fff3a2
BLAKE2b-256 checksum
How to use checksums
88406208e5ef9a0e46e9acc233c00a1b30728ca3b03b429e751c59e4d9cf5c8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 16, 2026.

Transparency log

Release files / cv2_enumerate_cameras-1.3.3-py3-none-any.whl

Download URL cv2_enumerate_cameras-1.3.3-py3-none-any.whl
Size 12.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f83c7329d85462bc27d805aa25a3cde73aa66d7e28e2f5b6cb425ccc84c965d0
BLAKE2b-256 checksum
How to use checksums
98b1183463b131f6fb459186fd060ab1761aa8230f52417efc827d335c72df54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 16, 2026.

Transparency log

Release files / cv2_enumerate_cameras-1.3.3-cp32-abi3-win_amd64.whl

Download URL cv2_enumerate_cameras-1.3.3-cp32-abi3-win_amd64.whl
Size 21.8 kB
Tags CPython 3.2 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
fb4c9cf9d3f9d1bc0e648943f6683d5dd0228c93d6ed11aae471500701009dee
BLAKE2b-256 checksum
How to use checksums
1ae8197478c59e66ace7b41cbe6a5ce9cbbea42dfe6a0afba3d4dcc5d4b59df4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 16, 2026.

Transparency log

Release files / cv2_enumerate_cameras-1.3.3-cp32-abi3-win32.whl

Download URL cv2_enumerate_cameras-1.3.3-cp32-abi3-win32.whl
Size 20.9 kB
Tags CPython 3.2 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
700d5d4283eb630e74d0a9e4829b9f5a3e373c3ce9a2e5bbed7959eb5bb31246
BLAKE2b-256 checksum
How to use checksums
38a97395194e0a7ad25e14669fd499a5bf062cb9ae3dcba4d4fca8dd398b4061
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 16, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page