A system that:
- captures USB camera feeds using openCV with platform specific backends
- syncronizes the video feeds and adds metadata
- sends the resulting frame and metadata over a network connection using ZMQ PubSub
git clone https://github.com/kristina-aino/camera-capture-system.git
cd camera-capture-system
poetry install
poetry run pytest
poetry build
{ "cam0": { "id": 1, "width": 1920, "height": 1080, "fps": 30, "name": "A-webcam", "position": "center" }, "cam1": { "id": 0, "width": 1920, "height": 1080, "fps": 60, "name": "Another-webcam", "position": "center-right" }, }
- "cam0", "cam1", etc. is considered the uuid and is required to be unique (enforced by json standard)
- "id" is the OpenCV id the camera runs under
- "width", "height" and "fps" are camera specification
- "name" and "position" are human redables with no logical value
poetry run python main.py
from camera_capture_system.core import load_all_cameras_from_config, MultiCameraCaptureAndPublish
cameras = load_all_cameras_from_config(path_to_conf)
pccp = MultiCameraCaptureAndPublish(cameras=cameras)
pccp.start()
(if there are problems, feel free to create an issue)