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:"

Option
Description
Use Case
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

Option
Description
Configuration Required
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"