Releases: v0l/zap-stream-core
Releases · v0l/zap-stream-core
v0.1.1
What’s New
- Administrators can now turn off stream forwarding and adjust user credit balances, even into negative values.
- Faster game information loading thanks to cached IGDB calls, and added game summaries.
- New configuration options for developers and a new API for games data.
- The system now runs pipelines on multiple threads for better performance and provides metrics for monitoring.
- Added testing utilities for the MoQ streaming protocol.
Improvements
- Better handling of invoice processing failures.
- More stable streaming pipeline with automatic scaler activation and lower‑bitrate fallback.
- Sensitive URLs are no longer logged in full.
- Streams now end cleanly and forward API paths are compatible with older versions.
- Various internal updates to keep dependencies current and documentation up‑to‑date.
Bug Fixes
- Fixed issues causing crashes in recorder and RTMP forwarding.
- Resolved problems with stream key handling, balance calculations, and metrics cleanup.
- Corrected encoding settings and ensured proper video scaling.
Maintenance
- Updated version numbers and dependency upgrades.
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Added
- Media over QUIC (MoQ) egress support with H264, H265, VP8, VP9 video and AAC/Opus audio codecs (#37)
- Multi-track streaming configuration API (
POST /api/v1/multi-track-config) for OBS auto-configuration - Hardware encoder support in multi-track config: NVENC, VAAPI, QSV with automatic fallback
- Frame reorder buffer for proper B-frame handling before encoding
- Admin endpoint to retrieve pipeline logs (
GET /api/v1/admin/pipeline-log/{stream_id}) (#46) - Redis-based viewer tracking with sorted sets for scalability
- Per-stream pipeline.log for detailed debug output
- Configurable minimum stream event update rate
get_user_live_streamsdatabase method for retrieving active streams
Changed
- Refactored
EndpointConfigEnginefor variant generation with deduplication across egress types - Account balance now returned as
i64to support negative balances (#40) - Thumbnail generation uses time-based interval (5 minutes) instead of frame count
- Encoder settings now configured by egress requirements via
EncoderParamenum VideoVariantandAudioVariantuseapply_params()for configurationStreamManagersupports Redis for distributed viewer tracking- Switched to NWC crate for Nostr Wallet Connect
- Upgraded ffmpeg-rs-raw dependency
- Docker image now uses Debian trixie slim runner
- User blocking immediately stops all active streams for blocked user (#47)
- Init segment writing now occurs at startup
- Withdrawal feature behind
withdrawalfeature flag
Fixed
- Frame PTS mangling instead of packet PTS for proper timing (#39)
- Monotonic PTS values with offset tracking per stream
- Encoder timebase set to 90k tbn for consistent timing
- HLS variant encoding issues
- Multi-track encoder settings configuration
- NV12 pixel format usage with GPU encoding
- Color space/range included in video variant parameters
- Default FPS to 30 when not detected from source
- Keyframe flag checking for thumbnails in copy-only pipelines (#44)
- Thumbnail generation for copy-only streams
- Audio always transcoded for copy streams for compatibility
- Negative cost/duration value prevention with validation
- Memory leak in pipeline processing
- AVIO crash with additional logging (#50)
- Crypto provider setup for TLS connections (#49)
- History endpoint 500 error from payment_type type mismatch (#45)
- Negative balance return value (#40)
- Stream image set on new stream; thumb used as image when no image set
- Empty strings removed from stream metadata
- Init segment flags for proper playback
Removed
- Idle mode from pipeline runner (streams now end cleanly on EOF)
- Circuit breaker logic for decode failures
Idlestate fromRunnerStateenum- Apt cache from Docker image
Full Changelog: https://github.com/v0l/zap-stream-core/commits/v0.1.0