Stream camera frames over MQTT for low-FPS IoT viewing, recording, and image processing pipelines.
mqtt-camera-streamer is a Python-based tool that streams images from cameras or video feeds over MQTT for remote viewing, recording, and processing. It solves the complexity of setting up camera streams in IoT and scientific projects by using the simple MQTT protocol, enabling low-frame-rate monitoring and image manipulation across a network.
IoT enthusiasts, researchers, and developers working with Raspberry Pi or other systems who need to remotely monitor camera feeds, save frames for analysis, or build simple image processing pipelines without high-performance requirements.
Developers choose mqtt-camera-streamer for its straightforward approach to camera streaming using MQTT, avoiding the steep learning curve of tools like Gstreamer. It offers integrated viewing with Streamlit, flexible recording options, and easy integration with platforms like Home Assistant.
Stream images from a connected camera over MQTT, view using Streamlit, record to file and sqlite
Leverages the straightforward MQTT protocol to publish camera frames, avoiding the steep learning curve of tools like Gstreamer, as highlighted in the README's introduction.
Supports OpenCV-compatible cameras, MJPEG streams, and RTSP feeds, with configurable video sources in config.yml, allowing diverse input options.
Provides a Streamlit-based web interface for viewing feeds on any network computer, demonstrated with viewer.py and usage screenshots.
Directly compatible with Home Assistant's MQTT camera component, including example YAML configuration for smart home monitoring.
Offers scripts to save frames to disk or a SQLite database with thumbnails, and enables simple image processing pipelines by chaining MQTT topics.
Explicitly not designed for high FPS, achieving around 1 FPS in practice, which restricts use for real-time applications, as stated in the README.
Installation on Raspberry Pi requires additional system dependencies and can be troublesome for OpenCV and Streamlit, with notes on challenges in the README.
Relies on a manual YAML config file that needs setup and validation, with no built-in error checking for values, as seen in validate-config.py.
Depends on external MQTT brokers without integrated authentication or encryption, potentially exposing streams if not secured separately.
Cloud replacement for vacuum robots enabling local-only operation
Linux service to collect and transfer Xiaomi Mi Flora plant sensor data via MQTT to your smart home system, with cluster support 🌱🌼🥀🏡🌳
A simple Python script which provides a Bluetooth to MQTT gateway, easily extensible via custom workers. See https://github.com/zewelor/bt-mqtt-gateway/wiki for more information.
gBridge.io allows you to control (almost) anything with Google Assistant, by translating voice commands to MQTT messages.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.