A C++ bridge for publishing industrial camera frames to LiveKit. The bridge keeps the frame-source boundary separate from the publisher, so the same pipeline can use a real Lucid camera or a local MP4 replay source.
LucidFrameSource or Mp4FrameSource
|
v
StreamController
|
v
LiveKitPublisher
|
v
LiveKit room
The companion frontend consumes the resulting LiveKit video tracks. It does not generate the camera stream.
LucidFrameSourceconnects to a Lucid camera through the Arena SDK.Mp4FrameSourcereplays a local MP4 or compatible video file through the same frame-source interface.LiveKitPublisherpublishes frames from either source through the same interface.
The current multi-camera entry point was exercised on Windows with one Lucid source and one local MP4 replay. Both sources entered the same publishing boundary and exposed separate room, identity, and track metadata. Device identifiers, access tokens, and the local replay path are redacted from the screenshot.
Copy .env.example into the environment used to start the program, then set the local LiveKit credentials and URL. Do not commit the resulting .env file or any camera recordings.
The multi-camera entry point starts Lucid devices when they are available and adds an MP4 replay camera when MP4_SOURCE_PATH is set. The repository also contains the MP4 publisher flow, but the current Visual Studio solution still links the Arena SDK. A separate MP4-only target remains pending Windows verification.
- Windows with Visual Studio for the current solution
- Lucid Arena SDK and a compatible Lucid camera for
LucidFrameSource - OpenCV for frame decoding and conversion
- LiveKit C++ SDK and a reachable LiveKit server
For the Visual Studio project, define these local property or environment values for the installed native dependencies: ARENA_SDK_ROOT, OPENCV_ROOT, LIVEKIT_SDK_ROOT, and JWT_CPP_ROOT. The project file intentionally does not contain machine-specific dependency paths.
The MP4 runtime path does not use a physical camera. The current build configuration still requires the Arena SDK until the separate MP4-only target is completed.
The source boundary, environment-based configuration, camera metadata contract, and MP4 registry initialization have been reviewed in the curated snapshot. A local Windows integration check confirmed that the current multi-camera executable can publish a Lucid source and an MP4 replay through separate LiveKit tracks. The current Visual Studio solution has not been compiled in the present macOS environment, and a separate MP4-only target remains pending.
The application-specific bridge implementation was developed and maintained by Will Cheng. This repository is a curated public version of a larger industrial vision system. Customer media, production configuration, device identifiers, credentials, and internal deployment files are not included.
Vendored third-party headers retain their original copyright and license terms. See THIRD_PARTY_NOTICES.md.
No project license is attached. Publication of the source does not grant permission for reuse, redistribution, or commercial deployment.
The bridge also exposes GET /health on port 8081 for a lightweight service check. It does not require LiveKit credentials.
- Industrial Vision System Reference — component map and integration boundaries
- Industrial Vision Workbench — browser-side stream inspection and OpenCV.js tuning
- Wafer Runtime Reference — inspection sessions, runtime state, and result APIs
- Industrial Vision Console — operation, configuration, and result review
