No External Services should be used.
A fairly simple spec:
- allow a producer to live stream via RTMP to somewhere
- let your subscribers see the live feed
- record individual transmissions, and make these available as VOD
- let your subscribers browse and watch the respective recordings
Moreover, the whole architecture was to be built on top of AWS and Elemental. No Wowza, Nimble, Nginx, virtual servers, just pure SaaS at work.
AWS Elemental streaming suite has been around for quite a while already, and for quite a while under wraps before going public. Yet there’s little word of non-enterprise solutions being deployed on top of it, little to no developer feedback, and no tips&tricks anywhere. Just the dull documentation. And even that’s lacking to the point where you need to improvise, reach out for expensive support, or run trial and errors to get it right.
Also, the client did not reveal what this is to be used for, so it had to plug into anything. And it came out like this
Fitting it with an API was the logical choice. Any integration will be puppeteering a streaming black box, no specific knowledge required.
As with other solutions, I’m thanking the anonymous client for agreeing to share this. It is here to use or build upon.
Does it scale?
Yes, viewer-wise. Unless maybe you’re broadcasting at the same time as the World Cup Final, the CDN can take millions. There’s no weak link in the chain but if you find one I’ll be glad to take AWS on it for you.
Broadcaster-wise, it’s designed for one live stream alone. You can clone the setup to make that into a handful, but if you need a dynamic number of inputs there’s a bit of extra work involved.
Is it expensive?
Mmm, kinda… Yet it might even out when you factor in the zero development/consultant cost, quick turnaround (have you deployed it already?) and zero maintenance needs.
You’ll be paying the following:
- some $2 for each hour of live content you’re broadcasting, that covers ingesting your content, transcoding, optimization and packaging for both live and VOD delivery
- CDN traffic at regular rates
- S3 storage at regular rates, both the raw (archive) and processed video are kept
- Pennies for other services
Is it stable?
Yes! It’s all a chain of services and if assembled right it’s as solid as AWS and Elemental themselves.
Is it worth it?
What do you know, it depends 🙂
If you can find your way around a virtual or dedicated server and either Wowza or Nginx-RTMP/ffmpeg then you might want to use (and maintain) that for the purpose, combined with a CDN if the case.
Still, do consider this one for short-lived implements (like one-off or yearly broadcasts) and situations where you need to guarantee for the stability of your setup.