Releases: zEhmsy/StreamTray
StreamTray new Release
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.appon macOS using PyInstaller. - Persistent Storage: Data directory logic updated to correctly use
~/Library/Application Support/StreamTraywhen running as a packaged app, ensuring data persistence and compliance with macOS standards.
⚡ Performance & Backend
- Centralized MJPEG Encoding: Refactored the
CameraWorkerto 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
nameinput 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.pyv2.0.1 - Release Notes
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! 🎉