AWS Media Services – Process, Store, and Monetize Cloud-Based Video
aws.amazon.com
aws.amazon.com
AWS Elemental MediaConvert
AWS Elemental MediaLive
AWS Elemental MediaPackage
AWS Elemental MediaStore
AWS Elemental MediaTailor
When put together, the combined scope of it seems to be a "backend services of Youtube" type of product. Youtube-as-a-Service: create a similar Youtube website without reinventing the wheel -- just use AWS Media Services.The market positioning of this is interesting. Instead of creating a "DroneFlying" channel on Youtube.com and attempt to monetize there, you create a url www.DroneFlying.com with AWS Media Services to serve the videos. I would expect some folks to come up with spreadsheets to compare the two strategies.
(Another commenter mentioned it's a clone of Microsoft Azure Media Services. I looked at Azure and it seems to missing the backend services for ad monetization. That seems to a big differentiator with AWS Media Services and it makes it more like a Youtube-as-a-Service rather than an Azure Media clone.)
The current offerings seem to favor some types of video sites but not others. For example, the AWS Media Services seems to be turnkey for a clone of Youtube or possibly Twitch.tv.
However, it doesn't seem to be a good fit for replicating elearning sites like Pluralsight.com, Lynda.com, Coursera, Craftsy, etc. Training videos need chapters, timeline bookmarks, student commenting, chats, student & teacher interaction, etc. The AWS Media Services doesn't have the metadata infrastructure for that. You'd have to custom build a lot of extra code on top of it for a video training website.
Maybe you want that. If you don't like the way it's done elsewhere, do it yourself. Or, build a Training Videos platform via this with the metadata format you like and sell it as a service to companies.
Disclaimer: I sell products in the Media Entertainment business for managing video and metadata.
I actually did think of those. I watched NBC's live broadcast of the Presidential election on www.youtube.com and not www.nbc.com.
(The NBC website either had an issue with Microsoft Silverlight browser plugin which I don't want to install or complained about ad blocking. On the other hand, the Youtube live stream of NBC works.)
Depending on the pricing it could become feasible for twitch and periscope users to have their own site with their own stream and ads inserted, while still streaming to facebook live/periscope/twitch etc. I wonder if these products support parallel streaming to facebook live out of the box?
In my mind, I included "live streaming" in the Youtube umbrella of capabilities[1]. E.g. for last year's election coverage, I watched live streams on Youtube to switch between CNN, NBC, and CBS.
[1] https://www.youtube.com/channel/UC4R8DWoMoI7CAwX8_LjQHig
That's possible. Based on previous AWS services "democratizing" infrastructure services, it seems to also target other entities that are not in the media/entertainment center but still want a robust streaming platform.
The options for those dipping their toes into video streaming were:
(1) use Youtube, including live stream functionality[1]
(2) outsource to video streaming platform
(3) do-it-yourself -- difficult to implement before but easier now with the building blocks of AWS Media Services
In support of scenario (3), Alex Dunlap the General Manager at AWS Elementa wrote[2]:
>"This not only helps traditional video providers innovate faster, but it also opens up new opportunities for startups, government agencies, schools, and multinational enterprises that, before today, had limited access to premium-quality video technology."
[1] https://support.google.com/youtube/answer/2474026?hl=en
[2] http://www.businesswire.com/news/home/20171127005339/en/AWS-...
Yeah, I'd want to put all of that in the client, which is not just a branding exercise but is also a branding exercise, so .. I dunno that I want to give Amazon all the business logic. There is still plenty of scope here, for abstracting away the value into the "very nice client app/front-end that makes people tell their friends.."
One major factor to consider is what the value of Youtube becomes here. In this case it is free HD video hosting and a built-in social network and platform for getting organic and paid exposure to your brand. Simply creating droneflying.com and posting some videos there won't get you any eyeballs.
A far cry from the early days of youtube where I would spend hours just flipping from suggested video to suggested video.
I'm not one who tunes in regularly to someone's content either, but I imagine that people who do follow several youtubers would probably still watch their favorite people on another service.
Twitch has also already proved that the Let's Play genre was ripe for the taking by another platform and they built their own discovery model around it.
Not disagreeing with your comment just sharing some of my own observations. If someone wanted to be the "youtube of droneflying" and there was an audience for it, they could probably plug this service into their own social media platform and make it happen (again, if there's the audience).
That was me as well until about a year ago. I got a Chromecast, and more importantly, the YouTube app on my mobile device (iPhone specifically). There's something about the presentation/interface and recommendation engine there which has helped turn me into a YouTube addict, unlike the website itself or the apps on other devices such as Apple TV.
Implementing each individual feature probably wouldn't be that difficult, but you'll end up replicating tons of functionality. If you're targeting an international audience, getting all the i18n/l10n stuff worked out is non-trivial.
It still doesn't fix the main problem for me: content delivery and its price.
For a 60 minute-long 720p@30fps (~2500 kbps) stream with 1000 viewers, you have to push a total of 1TB of data.
Using Amazon CloudFront, it would cost you $0.085*1000GB = 85$. For one stream. Of one hour. Of mid-tier quality. You would need three dedicated servers to push that data (You need ~3GBPS to replace that CDN) and it would cost 85$ per MONTH. Not per stream.
I know, building a CDN isn't simple, but when I tried to build my own platform, it wasn't about building something about video streaming. It was about creating my own CDN to lower the costs. I don't think I'm alone with that problem.
> I know, building a CDN isn't simple, but when I tried to build my own platform, it wasn't about building something about video streaming. It was about creating my own CDN to lower the costs. I don't think I'm alone with that problem.
Were you successful in starting something?
Did you end up creating your own CDN?
Lets say someone had a platform, servers and were ready to rock:
- How do they implement that CDN?
- Could it be a case of getting hosting providers who offer Nth percentile or unlimited bandwidth (to a point)? I've seen these packages on webhostingtalk.com
- What are the costs associated with that?
- What are the gotchas with maintenance and running costs?
Would love to know your thoughts.
I was still a student at the time (2 years ago), that definitely was a big issue for me so I tried to build my own CDN. There are many things that pushed me to abandon the idea: pricing, lack of time, lack of knowledge about DevOps and/or lack of tools. I've learned a lot since then.
I had a few problems with managing the total available bandwidth as well as the monthly data cap (1TB on the cheapest DigitalOcean droplet), this could be resolved if you already have the servers running, managed and updated, but it won't resolve the scaling problem unless you possess a datacenter.
It would be pretty simple to setup a CDN with that solved: - Have your ingest servers make the files available somehow (scalable/shared filesystem? NoSQL? or just a webservice?) - Make your viewers ping your cache servers (Varnish), and if the file isn't cached, then fetch it from the ingest server. - Put a layer 4 load-balancer (also known as Direct Server Return) in front of those cache servers, and adjust the weight of each cache server since the network throughput will probably not be the same for all of the servers. - Automatize all of this so the cache servers know about the new ingest servers, same thing for the load-balancer about the new cache servers. Done!
Once all of this is set up, this is just a matter of starting new servers and doing maintenance on the other ones while keeping everything available. After that, you can focus on the second point: using the ads the finance your service and keep it running.
"I wanted to build a video platform, not a CDN! And now, I have build an advertising platform?" - I must have told myself that a thousand times back then!
For comparison a fairly large YouTube channel makes $0.0005 per minute (or 3 cents per hour watched) just on YouTube generated revenue. Granted YouTube is taking a 50% cut (so they are really generating 6 cents per hour), but in your naive example, even if you had a completely mature programmatic ad platform, you would still be losing 2.5cents per hour streamed.
Video distribution is costly and is likely what is preventing other players from entering into the space.
AWS Media services seems exciting other than the cloudflare one that popped up back in September. Can't wait to try both.
Ideally, I would love something like the following:
1. Ability to upload video and transcode for cheap. Most services charge based on per minute of transcoding and get real expensive if you plan to process tons of videos. Not to mention, they charge additional for HD minutes. I have looked at amazon elastic transcoder, zencoder, encoding.com, coconut.co etc. Thinking of building my own using a decent VPS and slapping ffmpeg on top of it. Any suggestions ?
2. Video delivery and player for things such as HLS, Dash etc. So far, I have found shaka player from google to be a good one. There is even a videojs integration for it which seems to work well.
3. Video distribution/CDN. This one is still tricky for me. Some CDNs are not good with videos and some are too generic. Evaluated maxcdn/stackpath, keycdn, fastly and now looking at cdn77
So yea, this is a tough problem. I hope someone does it in a way that it is easy for developers to build their own using the infrastructure. Right now, it is all fragmented.
So we basically started out with a very naive solution: A Docker image with ffmpeg and access to a shared Redis DB used for job coordination running on a somewhat beefy server from Hetzner (beefy compared to regular VPS offerings, something in the 40€ range with 16 or 32gb of RAM I think). This turned out to work surprisingly well so we built a small API around that mirroring parts of Zencoder's API. This way, we can switch between both services on a per-job-basis and only need to change the encoding service's endpoint URL.
The main thing that will get you (if you do input validations) are the video formats. I've tried to get an authoritative list of valid MIME types beforehand, but still people managed to somehow send us videos with weird encodings that I'd never heard of before. Other than that, the usual caveats regarding self-hosted services (availability, failover, backups, etc.) apply but have so far not been much of a problem to us (especially since we can just go back to Zencoder when something breaks and needs to be done fast).
Feel free to drop me a message (mail is in my profile) if you have any questions.
They seem to overlap heavily or am I missing something?
AWS purchased Elemental in 2015. There is some overlap but Elemental Media* services are more flexible and provide JIT encoding and dynamic ad insertion, to serve a broader market than ET did.
Disclaimer: AWS employee.
Does that mean we'll need to manually transition to the new services ? Are you planning a bridge or something ?
What about the cost of transcoding everything a second time ?
Also, what hardware can do real time HEVC encoding?
Makes me consider setting up a consultancy helping companies stitch these services together. Up until now it has been a pain doing many of these things yourself.
Then we need to stream the .mp4 files from Amazon S3 to user's browsers when they start playing. I guess 'AWS Elemental MediaLive' solves that streaming problem for us.
Can someone confirm if this is right? Or AWS Elemental is too much for above kind of tasks. Thanks.
Is there any PaaS for that? or need to chain multis blocks/open source projects together to "make it work"?
For the higher scale video I think most solutions are proprietary - especially as most make use of CDNs and other globally deployed infrastructure. However I’ve seen startups do mass scale live streaming at pretty low latency (8 - 16) seconds by just transcoding and serving clips off of S3
You could think of them as Lego bricks, combine a couple of them together and you could easily have a "broadcast grade" workflow for your content.
But back to your original question, currently MediaLive does not say it supports RTMP outputs (make sure to request it as a feature!) so using it as a "one-to-many" would require another lego brick to convert UDP to RTMP.
However, once support has been added for RTMP outputs, you could live stream to any platform (Twitch, Youtube, Facebook, Instagram) that supports the RTMP protocol.
The neat thing about MediaLive is that it allows you to use audio, video, or caption tracks. So for example, if you had a single source that had platform-specific tracks, you could create outputs for each platform and use the corresponding track to create curated content.
But, that's just one example of hundreds that is possible with AWS Media Services.
This is what Mux Video will be (source: Mux founder). If you want low-level atoms for transcoding, origin serving, delivery, security, etc. - use AWS or Zencoder + Fastly or whatever. If you don't want these atoms, but want a single API to everything "video," with decisions made by a team of video experts, use Mux.
We just opened an Early Access program if you want to check it out - https://mux.com/video.
Now that WebRTC is available on all major browsers it should be easier to create some of these streaming applications. Although getting everything setup is still tedious.
WebTorrent [0] is built on WebRTC and can be used to stream videos, but it doesn't handle live streaming.
Not sure if it would support WebRTC as well though. I do see RTP support but not sure WebRTC can push to that out of the box.
I've used elemental for nearly a decade, and I love this stuff. However they were stagnating (likely their focus was their transition into AWS). I'm excited to see how that evolves. Sadly right now the UIs for the products they just launched have a lot of issues, so it's not quite for fiddling around yet. It also requires a good amount of video knowledge to not dig yourself a hole ;).
Or they just run out of space during keynote?
Conferences such as reinvent naturally have a lot of touch-points, but it doesn't do well if there's more being pumped out than can be consumed, or so much that your target audience doesn't notice their particular area of interest amongst the noise.