A C++ application for simultaneously previewing and recording video streams from an Orbbec Astra camera and a standard UVC webcam (like a Logitech). It captures RGB, Depth, and IR streams from the Orbbec camera and an RGB stream from the UVC camera, displaying them in a 2x2 grid with timestamps.
- Displays four video streams in a single window:
- Orbbec Astra: RGB
- Orbbec Astra: Depth (colorized)
- Orbbec Astra: IR
- Logitech Webcam: RGB
- Overlays the current system time on each video stream.
- Simple GUI with "Start Rec" and "Stop Rec" buttons.
- Records each stream to a separate AVI file in the
recordingsdirectory. - Gracefully saves recordings if the application is closed while recording is active.
To build and run this project, you will need the following installed:
- A C++11 compatible compiler (e.g., g++)
- CMake (version 3.10 or higher)
- OpenCV
- Orbbec SDK v2
-
Clone the repository:
git clone <your-repository-url> cd AstraLogiRecorder
-
Create a build directory:
mkdir build cd build -
Run CMake and Make:
cmake .. make
This will generate two executables:
AstraLogiRecorderandlist_profiles.
-
Connect Hardware: Ensure both your Orbbec Astra camera and your Logitech (or other UVC) webcam are connected to your computer.
-
Run the Application: Navigate to the
builddirectory and run the executable:./AstraLogiRecorder
-
Controlling the Application:
- A window will open displaying the four camera feeds.
- Click the "Start Rec" button to begin recording all streams. A red circle will appear in the bottom right to indicate that recording is active.
- Click the "Stop Rec" button to stop recording.
- To close the application, press the 'q' or 'Esc' key while the application window is in focus.
- All recorded videos are saved to the
recordingsdirectory within the project's root folder (AstraLogiRecorder/recordings/). - The files are named with the stream type and the timestamp of when the recording was started, for example:
orbbec_rgb_2025-07-17_12-15-30.aviorbbec_depth_2025-07-17_12-15-30.aviorbbec_ir_2025-07-17_12-15-30.avilogitech_rgb_2025-07-17_12-15-30.avi
The list_profiles executable can be used to check the available stream resolutions and formats for your connected Orbbec device. This is useful for debugging or modifying the stream configurations in main.cpp.
./list_profiles