This v3 release marks a change in effort from a hobby project to a full time this-can-pay-the-bills-right? project, that definitely cannot yet pay the bills. And since my contracting job did in fact end as expected, it was not a difficult decision to push forward with Streamie work.
I hired a former co-worker (TM) back in Nov to help get some tasks done that I just don’t have time for. It was great seeing work get done while I was focused on other things.
I’ve spent the last handful of weeks chasing “the last few bugs,” and I just need to get this release out the door and then continue chipping away at bugs as I find them. There’s something about smaller, more incremental releases that are less mentally taxing somehow.
The migration away from ffmpeg was out of necessity, much like the move away from Live555. In this case, ffmpeg was not gracefully handling corrupted streams from cheap cameras. For instance, if we fired up a screen full of cheap, WiFi cameras, ffmpeg would in short order, crash the app. Since the migration to ffmpeg some years ago, I had used a number of methods to keep ffmpeg happy and streaming in the face of unexpected data, but the reality is that if Streamie users are going to use cheap wifi cameras, then I want Streamie to perform well with those cameras, and writing our own RTSP streamer (Krill) was the most expedient (and possibly painful) way to accomplish this.
People will complain that Streamie is no longer a fully standalone app. I get that. However, advancing features like remote event notifications requires some sort of backend coordination. But, most importantly, tvOS apps specifically require this. Unless I want to require the use of iCloud storage (which I absolutely do not) for sensitive camera information, then the app is limited to what it can fit in the UserDefaults file, which is simply not adequate.
- Migrates from ffmpeg to a home-rolled rtsp streamer named Krill (since everything with Streamie has a penguin theme)
- Completely overhauled the interface for iOS and tvOS
- All app settings are now stored remotely
- Devices can be paired together to share camera settings, receive alerts, etc
- Camera groups allow you to quickly stream a particular set of cameras
- Adds additional in app upgrades for handling cloud storage for motion event recordings
- Purchase receipt processing is handled on the backend so that we can provide purchase support and manually enable upgrades if necessary
- Remote streaming support via UPnP