Skip to content

Releases: zEhmsy/StreamTray

StreamTray new Release

07 Jan 08:24

Choose a tag to compare

Release Notes - StreamTray v3.0.0 🚀

StreamTray v3.0.0 brings a major overhaul to the user experience, backend performance, and deployment flexibility. This release marks the transition from a prototype to a polished, production-ready desktop tool.

🚀 New Features

Custom Stream Naming

  • Friendly Names: You can now assign custom names (e.g., "Front Door", "Garage") to your streams instead of relying solely on the RTSP URL.
  • Database Integrated: Names are persisted in the local SQLite database.
  • UI & API Support: Full support added to the Dashboard and REST API (GET, POST, PUT).

Enhanced Dashboard

  • Modern UI Polish: Added custom dark-themed scrollbars to match the application aesthetic.
  • Custom Modals: Replaced native browser alerts with sleek, non-blocking custom modals for "Delete" confirmations.
  • Improved List View: Table layout fixed to correctly align 4 columns (ID, Name, URL, Actions).
  • Embedded API Docs: The "API Docs" panel now accurately reflects the new scheme and is legally styled.

📦 macOS Packaging

  • Native .app Bundle: Full support for building a standalone StreamTray.app on macOS using PyInstaller.
  • Persistent Storage: Data directory logic updated to correctly use ~/Library/Application Support/StreamTray when running as a packaged app, ensuring data persistence and compliance with macOS standards.

⚡ Performance & Backend

  • Centralized MJPEG Encoding: Refactored the CameraWorker to encode JPEG frames centrally once per captured frame.
  • Optimized Bandwidth: Multiple clients viewing the same stream now share the same encoded bytes, significantly reducing CPU usage and latency.
  • Robustness: Improved error handling and database migration scripts to automatically upgrade the schema.

🐛 Bug Fixes

  • Fixed OSError: [Errno 48] port conflicts during restart.
  • Fixed layout misalignment in the stream list table.
  • Fixed missing name input field preventing stream editing in some scenarios.
  • Fixed outdated API documentation text in the frontend.

Installation

From Source:

git clone https://github.com/zEhmsy/StreamTray.git
pip install -r requirements.txt
python streamtray.py

v2.0.1 - Release Notes

09 Jul 13:30

Choose a tag to compare

StreamTray 2.0.1 – Release Notes

2025-07-09

✨ Highlights

  • One-thread-per-camera architecture
      • opens a single RTSP connection no matter how many viewers
      • closes it automatically when the last client disconnects

  • Graceful memory / socket cleanup – no more buffer build-up

  • Verbose logging (--debug) and tray notifications

  • Self-contained PyInstaller build (Windows one-file EXE)


What’s New

Category Item
Core CameraWorker with bounded deque buffer, shared among clients
  Auto-shutdown when views == 0
HTTP /api/streams JSON endpoint (IDs only)
GUI Tray ➜ “Start server”, “Manage RTSP”, “Open first stream”
  Tk manager: add / edit / delete URLs, UUID auto-generated
Logging logging.basicConfig(level=INFO) + --debug flag (DEBUG + stdout)
Packaging streamtray.spec updated for PyInstaller; resources extracted to sys._MEIPASS

Thanks

Huge shout-out to everyone who tested the beta and reported “socket leak” issues – you made 2.0.1 happen! 🙏


StreamTray is released under Apache-2.0.
Enjoy fluent MJPEG and, as always, PRs are welcome! 🎉