Streamie: IP Camera Streaming
iOS Universel / Utilitaires
IP Camera Streaming: Streamie is the low-latency, high-quality, highly scalable, and remotely manageable solution for all of your video security needs.
- Do you need 60+ IP camera streaming on an Apple TV? Streamie can do that.
- Are you developing an AI-powered video analysis product? Streamie can be the backbone of the video pipeline.
- Are you a camera installer looking to extend your brand to the App Store and increase your recurring revenue? Streamie can be white-labeled and customized perfectly to your brand.
- Are you just wanting to watch your baby sleep via IP camera while you’re stuck in the office? Yeah, Streamie can do that too.
Streamie powers complex video systems, enables innovative products and protects homes, businesses and schools, every minute of every day. Streamie is not your ordinary CCTV IP camera streaming platform.
- Video walls (60+ IP cameras streaming on an Apple TV).
- Built-in remote management and multi-site support.
- Compatible with industry standard IP cameras
- Zero-configuration remote streaming.
- Scalable CCTV 24/7 NAS, cloud recording
- User-customizable event notifications.
- 3rd party service integration with a Web API.
- Permission Groups for locking down devices.
- Access Controls for multi-factor authentication.
- User-customizable on-screen content.
- Web API for automating Streamie.
- And so much more.
Try Streamie today!
Seamlessly integrate with:
- ONVIF / RTSP IP cameras
- Network Video Recorders (NVRs)
- Rhombus IP Cameras (Secure Raw Streams)
- Google Nest
- Ubiquiti UniFi Protect
- Apple HomeKit
- Device built-in cameras
- Attached USB cameras
Streamie supports Modules for extended content such as Weather, Clock, Messages, Slideshow and more. Streamie works with H.264 (AVC) and H.265 (HEVC) video codecs and AAC, PCM (ulaw, alaw), and AC3 audio. Streamie supports Hubitat event notification via the Streamie SmartApp which allows your Apple TV to audibly alert you when Hubitat events occur, like doors opening, lights turning on, motion detection, etc. Streamie has been tested with cameras from Logitech (Logi Circle 2), Dahua, Amcrest, Hikvision, Foscam, Wyze, Ubiquiti and others.
• Title of publication or service: Unlimited Cameras (Monthly)
• Length of subscription: 1 month
• Payment will be charged to iTunes Account at confirmation of purchase
• Subscription automatically renews unless auto-renew is turned off at least 24-hours before the end of the current period
• Account will be charged for renewal within 24-hours prior to the end of the current period, and identify the cost of the renewal
• Subscriptions may be managed by the user and auto-renewal may be turned off by going to the user's Account Settings after purchase
• Any unused portion of a free trial period, if offered, will be forfeited when the user purchases a subscription to that publication, where applicable
Please refer to our Terms of Use (symphonicsys.com/tos) and Privacy Policy (symphonicsys.com/privacy).
Quoi de neuf dans la dernière version ?
UniFi Protect
- Added support for UniFi Protect third-party ONVIF camera RTSP data.
- Improved camera discovery labels using richer Protect metadata like display name, market name, type, host, MAC, and port.
- Revised third-party camera streaming to use local-only Protect-exposed streams via the local Integration API and X-API-KEY, avoiding direct third-party camera RTSP fallback.
- Updated UniFi configuration/search UI to make unconfigured or unavailable third-party stream states clearer.
- Redacted sensitive local API key data from debug output.
Streaming/UI Behavior
- Disabled UIKit’s fragile hidesBarsOnSwipe path while streaming after a nav-bar gesture crash.
- Refactored toolbar hover/touch visibility handling so explicit swipes are not immediately undone by hover timers.
- Fixed stream profile view lifecycle cleanup so retry/cancel paths detach old profile views and do not grow Auto Layout state.
- Fixed stream error overlay attachment so repeated failures update the existing overlay instead of embedding duplicate constrained views.
Crash/Concurrency Hardening
- Fixed Chinstrap reachable-cache races by serializing reachable mapping/timer state and using captured identifiers.
- Fixed VideoToolbox decoder completion/backpressure races by replacing a shared semaphore with per-waiter tracking and making completion/session-leave paths idempotent.
- Held the VideoToolbox session lock through decoded-frame callbacks to avoid shutdown racing frame delivery.
- Fixed SMB client cache races by serializing SMB2Manager ownership and invalidating only the manager instance that failed.
- Fixed startup Penguin client crashes by avoiding late getPenguin() singleton force unwraps during delayed startup work.
- Fixed stream start lifecycle races by sequencing starts, snapshotting source/profile state, and ignoring stale callbacks.
- Fixed Krill status logging races by serializing status access and adding explicit CustomStringConvertible.
- Hardened H.264 RTP parsing against empty payloads, zero-length STAP-A fragments, and short FU-A packets.
- Guarded account-scoped UserDefaults access when no account/public key is active.
- Reworked local HTTP server launch/stop lifecycle to avoid Perfect thread buildup and stale lifecycle callbacks.
- Fixed Nest WebRTC teardown by adding explicit hangup/cleanup and guarding stale callbacks.
- Replaced the intentional remote-admin crash with Darwin.exit(EXIT_SUCCESS) so remote quit still works without reporting as a crash.
- Removed Penguin cache callback singleton traps by using the active client instead of getPenguin() after teardown.
- Hardened media-layer teardown in CMCBufferView, especially around AVSampleBufferDisplayLayer, PiP, and queued decoded frames.
- Hardened Chinstrap request resolution and member cache lifetime against duplicate/late completions.
- Hardened Krill packet buffer indexing against stale time/index calculations and clock/state jumps.
- Disabled AVKit automatic Now Playing updates for local iOS players to avoid MediaRemote nil-object aborts.
- Stabilized Home reload during Chinstrap teardown by capturing the active service/client for the full reload chain.
- Made cache path generation tolerate missing account state by using an unscoped cache directory instead of force-unwrapping public key state.
- Fixed router timer-wheel expiration sweeps so delayed scans do not clear future timers or scan unbounded ranges.
- Fixed AudioToolbox converter teardown and AAC packet validation so converter disposal cannot race queued conversion work.
- Fixed Chinstrap client socket startup races by avoiding force unwraps and rejecting stale connect attempts cleanly.
- Fixed module layout parsing for text(""), allowing empty quoted content and throwing parse errors for malformed content instead of trapping.