Release Notes for v3.15.0 (2023.06.15)




AWS S3 — Streamie adds a new Integration, S3, which allows you to create File Server instances that point to S3 storage instead of just an SMB server. These File Server instances are used for 24/7 camera recording.


YouTube — YouTube live streaming now has configurable behavior so that you can disable auto-stop and you can then resume a previous live stream.


S3 Recording


There’s something about working with AWS APIs / services (like S3), that cause me a shocking amount of stress. I’m not even sure what it is. Maybe it’s the insane documentation? The terse error messages? Anyway, I think that has all come to a close though, as the Streamie S3 integration seems to be complete.


I’ve been doing all of the development and testing with Cloudflare R2. I’ve got a list of fourteen S3 storage service providers, maybe eight or ten of which I’ll eventually try to validate support for (in no particular order: AWS S3, Cloudflare R2, Linode Object Storage, Digital Ocean Spaces, Backblaze B2, DreamHost DreamObjects, Wasabi Hot Cloud Storage, Vultr Object Storage, Microsoft Azure Blob Storage, Google Cloud Storage, Rackspace Object Storage, Synology C2 Object Storage, IBM Cloud Object Storage).


One interesting opportunity is the Synology + Minio option, where you can self-host an S3 storage service, much like you might with a NAS running SMB. I can almost guarantee I won’t go through the hassle of validating that this works.


Not everyone wants to manage his own S3 service, so at some point in the future we will sell storage space directly. Not in this version though.


You can read the Help doc for this new feature here.


YouTube Live Stream Resuming


A surprising number of people have contacted us regarding this new YouTube Live Streaming integration. Thankfully, it’s way easier to add your YouTube account to Streamie than it is your Google Nest account. In the past week a couple people have asked that resuming a live stream of a particular camera should use the existing YouTube Live Stream and not start a new live stream (so that the YouTube shareable URL doesn’t change). Makes sense to me.


At first I wasn’t entirely sure how to accomplish this (other than disabling the auto-stop feature), but I accidentally stumbled into the solution while improving error handling. Basically, the AVFoundation-based fragmented MPEG writer can sometimes fail for seemingly no reason at all. When that happens, I need to restart both writers (audio & video) and then resume sending data to YouTube. I adjusted a few things to make that work cleanly, and in doing so I unintentionally started supporting resuming live streams. So, yeah, this works now.


Check out the updated YouTube Integration screen in the Settings tab for additional options. Be sure to disable the Auto-Stop feature if you want to be able to resume a live stream.




- When attempting to apply a promo code, lower case it before comparing it with valid promo codes.

- After applying a promo code, also make sure that we update the features for that account. Whoops.

- Removes colors that are also animals (salmon) and animal names that are also colors (blue whale) from the random naming class.

- Fixes an issue when adding / editing an RTSP URL camera where the Options buttons were non-responsive. [TM]

- Fixes a crash that can occur during drag-and-drop on tvOS.

- Fixes a remote streaming issue where clock drift eventually caused the display layer to get backed up, causing the video decoder to get backed up, causing frames to be dropped. Streamie now tolerates up to one second of drift before resetting our "zero". This fix also impacts cameras configured with a delay. Additional, the display layer now has its own queuing mechanism so that it can’t cause problems for other sinks.

- Adds the new S3Service, S3FileServer, S3InputStream and S3FileHandle implementations, which'll shortly allow us to tie into the camera recording class, after I get the UI in place for configuring an S3 file server. Based on the S3 protocol itself, it looks like the only quota I'll be able to support is max-days, as there's no mechanism for reading a bucket size and no concept of "space remaining".

- Ports the old SMB file server configuration view controllers over to the new Screens framework. I had neglected to do this earlier, and now faced with writing the new S3 UI, it made sense to take care of this so as not to duplicate more old code.

- Fixes a race condition that frequently prevented recording playback from jumping to the right starting point in the recording.

- Fixes the Help button in the YouTube Integration screen to refer to the correct article, although it is just a "stub" article at the moment.

- Adds the "Options" section to the YouTube Integration configuration screen, including Closed Captions, DVR, Monitor Stream, Allow Embed, Record from Start, Auto Start, Auto Stop

- Adds support for resuming an existing YouTube Live Stream. If you disable the "Auto Stop" feature in the YouTube Integration, then the LiveBroadcast and LiveStream objects on YouTube will persist after you stop streaming, and then you can resume that live stream without the URL changing.

- Changes the behavior of the display layer (CMCBufferView) so that repeated failures while waiting for the layer to be ready for the next frame will result in the display layer being reset completely.

- Changes the way Streamie / Penguin connection conditions are evaluated. If the overall connection is backed up, then every stream associated with that connection is told to back off.

- Fixes a camera recording bug where it was possible for the recording process to begin before the camera had connected, resulting in the recording process never actually recording the stream.

- Fixes a camera recording bug where if a stream was interrupted, it was possible for the camera recorder to stop receiving the stream resulting in empty recordings that just contained periodic snapshots.

- Completed the new demo video for configuring an S3 Integration and S3 File Server.

- Completed the new Help article for configuring an S3 Integration and S3 File Server.

- Fixes a crash that occurs when trying to stream a camera for which the URL you provided has no host name. Seriously, what were you thinking? And then you tried it five times in a row?

- Fixes an iOS issue where if you're streaming several cameras, then you put one of them (other than the first one) into full screen mode, and then you rotate the device, the camera would stop streaming. [AS]



Related Topics


Release Notes YouTube S3 Record to NAS Record to Cloud


About Streamie


Streamie provides a best-in-class user experience on your iPhone, iPad, Apple TV and Apple Silicon Mac, with an intuitive user interface that makes it simple to discover, stream, record, monitor and share your HomeKit, Google Nest, Ubiquiti UniFi Protect and ONVIF-compatible IP and RTSP cameras. Streamie keeps you informed with motion event notifications and it works with most cameras using its advanced audio and video codec support. You can watch your cameras from anywhere, record 24/7 to your private NAS, remotely manage multiple locations, device permissions and seamlessly synchronize settings across your devices; configure Hubitat smart home automations, live stream to YouTube and rely on the in-app technical support system when you need help (but you can also reach us by phone). Download Streamie today. Lastly, Streamie is solar powered!