Skip to content

Repository files navigation

Lucid LiveKit Bridge

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.

Architecture

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.

Source modes

  • LucidFrameSource connects to a Lucid camera through the Arena SDK.
  • Mp4FrameSource replays a local MP4 or compatible video file through the same frame-source interface.
  • LiveKitPublisher publishes frames from either source through the same interface.

Windows integration check

Windows terminal showing Lucid and MP4 sources publishing separate LiveKit tracks

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.

Configuration

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.

Requirements

  • 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.

Verification

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.

Author and scope

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.

Related repositories

About

C++ bridge for publishing Lucid camera or MP4 frames to LiveKit through a shared industrial video-source boundary.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages