Application Overview
The Htier Live Streaming Hub is a Streamlit-based web application that provides a unified interface for connecting to multiple real-time data sources and live video streams. It supports four main protocols:
- MQTT- IoT messaging and real-time data streams
- HTTP/REST- Data polling from REST APIs (designed for Rust servers)
- Modbus TCP- Industrial device communication and PLC data
- Video- Live video streaming from webcams, MJPEG, and RTSP sources
Key Features
- Multi-protocol support with seamless switching
- Real-time data streaming and visualization
- Live video streaming with WebRTC, MJPEG, and RTSP
- Cross-thread communication for non-blocking UI
- Htier message format for all protocols
- File-based message storage and history
Dropdown Options Reference
1. Main Protocol Selection Dropdown
Location: Main interface header
Label: "Choose streaming protocol:"
| MQTT | IoT messaging protocol | Connect to MQTT brokers for real-time IoT data, sensor readings, and publish/subscribe messaging |
| HTTP | REST API polling | Connect to HTTP/REST servers (especially Rust servers) to poll data endpoints |
| Modbus | Industrial protocol | Connect to Modbus TCP devices, PLCs, and industrial equipment for register data |
| Video | Video streaming | Stream live video from webcams, IP cameras (MJPEG), or RTSP video feeds |
Help Text: "HTTP = Bridge script data via Rust server | Modbus = Direct TCP connection | MQTT = IoT messaging | Video = Live video streaming"
2. Video Stream Type Dropdown
Location: Video protocol configuration panel
Label: "Stream Type"
Appears when: Video protocol is selected
| mjpeg | HTTP MJPEG stream | Requires MJPEG URL (e.g., http://camera-ip/video.mjpg) |
| rtsp | RTSP video feed | Requires RTSP URL (e.g., rtsp://camera-server/stream) |
| webcam | Local webcam via WebRTC | No URL required - uses browser webcam access |
Help Text: "Choose the type of video stream"
Default: mjpeg (first option)
3. Advanced Video Settings
Location: Video configuration panel, under "Advanced Settings" expander
Processing Log Interval
- Type: Number input (acts as value selector)
- Default: 30 frames
- Range: Minimum 1 frame
- Description: Log processing information every N frames
- Help Text: "Log processing info every N frames"
Enable Frame Processing
- Type: Checkbox
- Default: Enabled (True)
- Description: Enable/disable frame processing information logging
- Help Text: "Log frame processing information"