Version 1.0.0 · Apache-2.0 · C++, optional Python
Holoscan Camera
Holoscan Camera brings camera frames into a Holoscan SDK 5 graph. Pick the backend that matches your camera and host: V4L2 for standard Linux devices, NvSIPL for NvSIPL-managed cameras on Jetson and IGX, or Argus for ISP-processed images on Jetson. Each backend ships with a reference application you can use to validate the graph and capture frames.
At a glance
| Package | holoscan-camera |
|---|---|
| Version | 1.0.0 |
| C++ namespace | holoscan::camera |
| Python | holoscan_camera.operators.V4l2CaptureOp (optional) |
| Holoscan SDK | 5.0.0 or later with sensor_io, tested with 5.0.0 |
| CUDA | 13.x |
| Platforms | x86_64, aarch64 |
| License | Apache-2.0 |
| Maintainer | Holoscan Team, NVIDIA |
| Debian package | holoscan-camera |
Operators
| Operator | Identifier | What it captures |
|---|---|---|
V4l2CaptureOp |
v4l2_capture_op |
Packed YUYV frames from Linux V4L2 devices into host, pinned-host, or CUDA device memory |
SIPLCaptureOp |
sipl_capture_op |
RAW10 or NV12 frames from NvSIPL-managed cameras on Jetson and IGX (aarch64 only) |
ArgusCaptureOp |
argus_capture_op |
ISP-processed Jetson Argus images with sensor metadata and bounded native buffers |
Link holoscan::camera to get every operator enabled in your build, or link a single backend: holoscan::v4l2_capture_op, holoscan::sipl_capture_op, or holoscan::argus_capture_op.
Supported platforms
| Operator | Ubuntu 24.04 | DGX OS | IGX Thor + IGX OS 2.0 | Jetson Orin + JetPack 7.2.1 | Jetson Thor + JetPack 7.2.1 |
|---|---|---|---|---|---|
V4l2CaptureOp |
Supported | Supported | Supported | Supported | Supported |
SIPLCaptureOp |
— | — | Build from source | Supported | Supported |
ArgusCaptureOp |
— | — | — | Supported | — |
Camera support also depends on the host BSP, camera driver, and development libraries. Installing the SDK alone does not make a camera compatible.
Reference applications
| Application | Use it to |
|---|---|
holoscan_camera_v4l2 |
Validate a graph or stream V4L2 frames, in C++ or Python |
holoscan_camera_argus |
Receive Jetson Argus frames and metadata |
sipl_frame_saver |
Save camera frames and metadata to disk |
sipl_stereo_monitor |
Monitor a stereo rig and cross-camera timing |
Configuration
| Backend | Operator configuration | Reference application |
|---|---|---|
| V4L2 | Constructor arguments for device, dimensions, frame rate, coordinate frame, and memory placement | CLI options such as --device and --memory-kind |
| SIPL | A shared SIPLCaptureService plus per-camera operator arguments |
CLI options and vendor JSON platform files selected with --json-config |
| Argus | An ArgusCaptureConfig value |
CLI options for camera and mode selection, image size, and memory placement |
Camera operators are configured in C++ when you build the graph. The module has no YAML loader, so an application that uses YAML parses its own settings and passes the values to the constructors.
Use it in an application
Start with V4L2. It does not need the SIPL or Argus development libraries.
# Build and validate the C++ V4L2 example graph without a camera.
./holoscan_camera run holoscan_camera_v4l2 --language cpp
# Run the reference application's tests.
./holoscan_camera test holoscan_camera_v4l2 --language cpp
With the Python bindings, a compatible NVIDIA GPU, and display access, preview a live camera:
./holoscan_camera run holoscan_camera_v4l2 preview --language python \
--run-args='--device /dev/video0 --width 640 --height 480 --fps 30'
After installing the package, link it from CMake:
find_package(holoscan-camera CONFIG REQUIRED)
target_link_libraries(my_pipeline PRIVATE holoscan::camera)
To build from source, you need Holoscan SDK 5.0 with sensor_io, CUDA 13, CMake 4.0 or later, and a C++20 compiler.
Source is in the Holoscan Camera repository.