After much research and testing we have settled on two approaches for delivering video content from Amazon Web Services (AWS). Each approach uses a different delivery protocol.
By progressive download (HTTP) using CloudFront or S3
HTTP delivery sends the entire video file upon request meaning the video arrives with the same quality at which it was encoded. However, the user will receive it only as fast as their network connection will allow.
You can get around this to a certain extent with PHP-streaming or pseudo-streaming but this still relies on a traditional web server rather than a streaming server.
By steaming (RTMP) using Wowza Media Server for EC2
When a file is streamed via a media server such as Wowza Media Server a measured stream of data is delivered to users as the video plays. Priority is given to timely delivery over aesthetic quality ensuring that the data stream continues uninterrupted, even if it means reducing quality.
Excellent or poor performance can be achieved with either delivery protocol. And in most cases, the user cannot tell whether the video they’re watching is downloading or streaming.
Why set up both on AWS?
HTTP:
- is what S3 and CloudFront are all about
- is suitable for videos of a short duration
- is suitable for delivering high-bit rate encodings
- is suitable if end-users need/are allowed to keep a copy of the video on their own computers
RTMP:
- we had the in-house technical resources to configure and set this up
- we needed a suitable delivery protocol for longer form content
- we wanted to enable interactive functionaliy between the playback client and media server
- we wanted greater statistical granularity
- we wanted greater control over access rights to videos
We would never stick out our neck out and say that one delivery protocol was better than the other.
But we will say that they each have their own pro’s and con’s and having the option to choose between the two was critical for us.
There is no doubt that HTTP is a doddle to set-up.
Wowza for EC2 is amazingly well supported via the Wowza forums but it is still a bit of a challenge.
So our advice would be if your looking for the best of both worlds definitely look into the approaches outlined above but if you’re looking for a quick and easy way to offload your video delivery (or any other heavy assets) stick to S3/CloudFront you won’t be disappointed.