Hacker News new | past | comments | ask | show | jobs | submit login
AWS Media Services – Process, Store, and Monetize Cloud-Based Video (amazon.com)
180 points by colde on Nov 27, 2017 | hide | past | favorite | 71 comments



From the announcement, you have:

  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.


>"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."

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.


Anecdotally I discover about half of the youtube videos I watch through youtube's search (for things like tutorials), but the other big chunk is from other social media platforms like reddit, twitter and facebook (i.e. other people linking me videos). A really small portion of the videos I watch are from suggested videos on their site.

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).


> "A really small portion of the videos I watch are from suggested videos on their site."

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.


I'd love to take YouTube's dominance down a notch, but it provides way more features.

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.


I would say this is more like twitch/periscope in a box than youtube in a box, most of these products are based around live streaming which has traditionally been a trickier problem to solve.

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?


>more like twitch/periscope in a box than youtube in a box, most of these products are based around live streaming

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


>>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

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.."


I would say the services are currently aimed towards the professional Media and Entertainment sector, to which the services can provide very welcome functionality to certain workflows.


>are currently aimed towards the professional Media and Entertainment sector,

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-...


> 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.


great analogy, but guess these things would comes eventually within the platform as it evolves, metadata/analytics keep following with adoption/conversion ?


It’s a poor analogy because the original poster didn’t think about professional video such as live sports, music, news, broadcast productions as well as OTT. The metadata and analytics will be served by different solutions and products and this will adhere to certain standards and practices that is alien to solutions like Twitch/YouTube and the like.

Disclaimer: I sell products in the Media Entertainment business for managing video and metadata.


>didn’t think about professional video such as live sports, music, news, broadcast productions

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.)


This is pretty nice, the tool choices were pretty limited. (nginx-rtmp, red5, and another one that I can't remember.)

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 have the same problem. I found that building a platform is not an issue. It's always the price.

> 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've been working on that video platform as a hobby - a twitch clone, or more accurately a clone of Mixer (formerly beam.pro). I've abandoned it, even though it probably still works at a low scale.

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!


This is a really amazing insight and something that gets glossed over a lot in the "we need an open competitor to YouTube" comments. $85 for 60,000 minutes watched, thats about thats a cost of $0.001 per minute (or 8.5 cents per hour watched).

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.


I have been researching VOD infrastructure for a while now. So far, most services are either too expensive, too isolated or too rigid on how they are available to developers. Then there are the wistias, the vimeos, the vidyards which are too user centric and are more focussed on marketing and analytics.

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.


I can speak to 1.) a bit as I have done just that for a client of mine. By default, they're using Zencoder/Rackspace to encode/store their videos and usually get one-off videos from their customers. However, sometimes there are requests to encode 2.000+ videos at once which gets prohibitively expensive in their constellation.

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.


Would love to chat but I don't see your email in profile. Put it in your profile description as emails are not shown publicly or email me if don't mind (in my profile)


Check out https://mux.com/video. Disclosure - I work for Mux. But we are building something very similar to what you have described. Read more here: https://mux.com/blog/announcing-mux-video-a-simple-api-to-po...


What is the difference between MediaConvert and Amazon Elastic Transcoder (https://aws.amazon.com/elastictranscoder/)?

They seem to overlap heavily or am I missing something?


Elastic Transcoder could not handle 4K video, and only worked with static files stored in S3 - it wasn't designed for streaming content.

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.


HLS, Smooth streaming, MPEG-Dash are all designed for streaming and that's what we use with Elastic Transcoder today. Used in conjunction with Amazon Cloudfront, I thought it was perfect for streaming content.

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 ?


Instead of fixing Elastic Transcoder, there's yet another and better way of doing the old thing. Much similar to what happened with SimpleDB, OpsWorks, etc.


The alternative is shutting down your 1.0 when you release your 2.0. Keeping the 1.0 service running in maintenance mode seems pretty helpful to me.


No, the alternative is a design pattern called Façade, i.e. having the new backend support the old API via a translation layer either in the SDKs or in the infrastructure layer.


Elastic Transcoder lacked a lot in support of a bunch of codecs and output formats, especially broadcast and movie formats where unsupported. With MediaConvert they are likely using the conversion engine they got when they acquired Elemental.


Sadly, it requires RTMP to push input, so the sources either need totally custom software such as OBS or Flash installed in the browser; in 2017 I was sort of hoping to see WebRTC as one of the ingestion protocols (with an API that let you just get an offer plus candidate set for a new stream and another couple APIs for setting the answer and adding candidates as they stream back).


I think this is designed for OTT video broadcasting and not so much video conferencing. RTMP remains the defacto standard for push ingest, although that it changing with the wider adoption of HEVC, which RTMP can't carry.


FWIW, maybe I am just on the leading edge of the "changing", but I am specifically excited about WebRTC for video broadcasting due to not only how devices now have hardware support for HEVC but also for the lower latency and lower barrier to entry afforded by WebRTC. WebRTC is a protocol with a widely deployed implementation that is already tied to people's cameras, not a use case, and has absolutely no ties to video conferencing.


Is there any technical reason you couldn't have HEVC over RTMP?

Also, what hardware can do real time HEVC encoding?


I encourage you to request support for WebRTC.


Is it possible to apply a dynamic filter graph a la FFMPEG? For instance, ingest two RTMP streams and apply a filter to overlay one on top of the there in a PIP configuration while preserving both audio tracks? That would be very useful


@simook do you have a direct email to request features? Thanks




More likely it is a competitor to Azure Media Services, as they had a lot of the same type of services already. This is really AWS catching up.


This is my take as well. The announcement, features, and marketing material are clearly geared towards larger media companies and broadcasters. Which is where Elemental was strong, and a big part of why AWS bought Elemental.


In some respect these offerings are a lot closer to the technical side of what companies like Clearleap and Ooyala offer companies. The language and offering types match a lot more to what traditional, non-Internet content providers want minus the traditional overhead of long sales cycles, architects, account managers, PSO, etc. But that’s half the value of most enterprise companies anyway to be able to conduct business with large, bureaucratic, non-technical culture organizations anyway.


Technically, yes - but I feel like they target very different users. AWS targets technical people. Cloudflare targets product people. The difference is clear in pricing - Cloudflare never has never charged for bandwidth.


This looks like a pretty comprehensive package for live and VOD workflows. In my experience the devil is in the details with these kind of services so I'm guessing we'll be doing a fairly deep dive into this at my workplace to see if any of the services are applicable to what we do.

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.


Yeah that’s a good idea, I am sure there is a very good business model in sorting out the details, but the pain point has been that you have had to run these things yourself or pay a decent amount to get someone to run it for you. (See BBC outsourcing their technology to Siemens just over 10 years ago for approx $3.6BN)


So in our app, we need to post process .webm and .opus files to create a single mp4 video file. I think this can be done with " AWS Elemental MediaConvert"

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.


Media live is for live video. You have video on demand it seems. Slightly different. S3 or MediaStore + CDN. MediaConvert sounds right tho.


What do people use nowadays to BUILD live video streaming whether it is one-to-many (twitch.tv, younow.com, Instagram live) or more like small group (8 person max) video stream (Hangout, Houseparty, Facetime, etc )

Is there any PaaS for that? or need to chain multis blocks/open source projects together to "make it work"?


In my opinion, that's one of the goals for AWS Media Services.

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.


There is no real PaaS today for this - today, you need to use 3+ services plus write a bunch of glue around workflow.

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.


I can’t think of any PaaS, but for small group streaming there’s a number of software out there that has had this capability for a long time,l. I remember playing with Flash Media Server 10+ years ago that did exactly that.

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


Custom built solutions usually, involving many vendors and technology partners. (Look at state broadcasters streaming solutions for examples of countrywide distribution for an idea)


I'm not aware of any service that does it all for you.

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.

[0] https://webtorrent.io



You have to chain a video encoder to a CDN that supports live video streams. There are small players that do this, but now Amazon is a gorilla that does it (along with Azure).


Cloudinary's new Video feature is actually really, really good: https://davidwalsh.name/cloudinary-video-player


Now I won't have to use Fastly and Wowza anymore. I'm more than happy.


Could you elaborate? I often considered that setup but never put anything live.


I manage a website which streams live videos and VOD. The VOD part is videos which are resized automatically and then Fastly provides on the fly packaging (OTFP) which allows any device to stream the files which reside on S3. Wowza is a software which allow you to setup a complete live streaming solution which scales easily for cheaper than LiveStream, Akamai, etc.... The downside is that Wowza requires a lot of sysadmin to keep it working. It seems like MediaLive is really really similar to what Wowza does, in a better package.


Netflix-in-a-box. Or really it's a competitor to BAMTech.


This is not what I would call "in-a-box". That'd be for something like Vimeo OTT.


These products seem to be aimed at syndication services like Cisco's Infinite Video, Comcast's Xfinity, and Ericsson MediaFirst. Missing are some frontend niceties, but that wouldn't be hard for someone to come in and offer something in front of that.


Interesting. It seems you should be able to use this to stream user generated content live from Flash at least.

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.


WebRTC is more for two way VC / web browsers. The new elemental stuff is for on demand and linear / event live.


How does Elemental compare to the existing options on the market? (e.g. something like this https://mux.com/video)


Elemental has a decade of video processing products on the market. Mux is a startup that currently offers video analytics (which Elemental does not). They have announced some a coon new service it seems that far more "easy" focused rather than "all the knobs ever" focused like Elemental stuff.

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 ;).


I wonder why they announce it the week of AWS conference reinvent? Shouldn't they wait two days and do it during keynote?

Or they just run out of space during keynote?


AWS makes announcements like these pretty much every 1-4 weeks as-is; they're always innovating - not just releasing for their big conference.


Companies typically do this to spread the media coverage.

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.


Their event actually "started" around midnight on Sunday with a midnight madness event or something. I think that's when the announcement was made. My wife works in AWS Elemental and stayed up to watch the announcement.


For AWS Elemental MediaLive there is no MPEG-DASH output. It's also limited to Ireland, Singapore, Virginia and Oregon.


Ah, actually the packager supports MPEG-DASH as output.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: