Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. MQTT
  3. mqtt-camera-streamer

mqtt-camera-streamer

GPL-3.0Python0.8

Stream camera frames over MQTT for low-FPS IoT viewing, recording, and image processing pipelines.

GitHubGitHub
249 stars56 forks0 contributors

What is mqtt-camera-streamer?

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.

Target Audience

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.

Value Proposition

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.

Overview

Stream images from a connected camera over MQTT, view using Streamlit, record to file and sqlite

Use Cases

Best For

  • Remote monitoring of security or wildlife cameras over a local network
  • IoT experiments requiring low-frame-rate image streaming between devices
  • Preprocessing images (cropping, rotating) before saving or viewing
  • Integrating camera feeds into Home Assistant for smart home dashboards
  • Recording camera frames to a SQLite database for later analysis
  • Building simple image processing pipelines by chaining MQTT topics

Not Ideal For

  • Real-time surveillance or video conferencing requiring smooth, high-frame-rate (e.g., 30 FPS) streaming
  • Advanced multimedia projects needing complex video processing, GPU acceleration, or integration with tools like FFmpeg or Gstreamer
  • Scenarios where minimal configuration and quick setup are critical, as it requires YAML file editing and dependency management
  • Teams without an existing MQTT broker or preferring HTTP/WebSocket-based streaming for cloud deployment

Pros & Cons

Pros

Simple MQTT Streaming

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.

Flexible Camera Sources

Supports OpenCV-compatible cameras, MJPEG streams, and RTSP feeds, with configurable video sources in config.yml, allowing diverse input options.

Integrated Remote Viewer

Provides a Streamlit-based web interface for viewing feeds on any network computer, demonstrated with viewer.py and usage screenshots.

Home Assistant Integration

Directly compatible with Home Assistant's MQTT camera component, including example YAML configuration for smart home monitoring.

Recording and Processing

Offers scripts to save frames to disk or a SQLite database with thumbnails, and enables simple image processing pipelines by chaining MQTT topics.

Cons

Low Frame Rate Limitation

Explicitly not designed for high FPS, achieving around 1 FPS in practice, which restricts use for real-time applications, as stated in the README.

Complex Raspberry Pi Setup

Installation on Raspberry Pi requires additional system dependencies and can be troublesome for OpenCV and Streamlit, with notes on challenges in the README.

Configuration Overhead

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.

No Built-in MQTT Security

Depends on external MQTT brokers without integrated authentication or encryption, potentially exposing streams if not secured separately.

Frequently Asked Questions

Quick Stats

Stars249
Forks56
Contributors0
Open Issues16
Last commit1 year ago
CreatedSince 2019

Tags

#iot#camera#home-automation#mqtt#opencv#camera-streaming#image-processing#sqlite#raspberry-pi#home-assistant#rtsp#streamlit

Built With

S
SQLite
O
OpenCV
P
Python
D
Docker
S
Streamlit
M
MQTT

Included in

MQTT2.3k
Auto-fetched 1 day ago

Related Projects

ValetudoValetudo

Cloud replacement for vacuum robots enabling local-only operation

Stars9,111
Forks489
Last commit1 day ago
Mi Flora via MQTT daemonMi Flora via MQTT daemon

Linux service to collect and transfer Xiaomi Mi Flora plant sensor data via MQTT to your smart home system, with cluster support 🌱🌼🥀🏡🌳

Stars623
Forks142
Last commit2 years ago
bt-mqtt-gatewaybt-mqtt-gateway

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.

Stars556
Forks118
Last commit2 years ago
gBridgegBridge

gBridge.io allows you to control (almost) anything with Google Assistant, by translating voice commands to MQTT messages.

Stars170
Forks42
Last commit3 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub