
AWS Media Services – Process, Store, and Monetize Cloud-Based Video - colde
https://aws.amazon.com/blogs/aws/aws-media-services-process-store-and-monetize-cloud-based-video/
======
jasode
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.

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

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

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

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

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

~~~
canardlaquay
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!

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

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

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

~~~
codegeek
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)

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

They seem to overlap heavily or am I missing something?

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

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

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

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

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

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

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

------
sandGorgon
Competitor to Cloudflare - [https://blog.cloudflare.com/introducing-
cloudflare-stream/](https://blog.cloudflare.com/introducing-cloudflare-
stream/)

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

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

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

~~~
timc3
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)

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

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

------
knes
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"?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

