A reader asked what I thought of using S3 Amazon Web Services (AWS) for serving videos , so I did some research and found this interesting enough to share with the readers because the servers of Amazon have a couple of interesting possibilities. S3 Amazone is basically a storage space that can be used to backup ANY files or share them with others. It is not a webspace for websites, although in combination with other Amazon services you can do lots of things with it, but that is outside the scope of this article. In this series, we concentrate on video and audio.
Is S3 Amazon Web services reliable?
Amazon has more then 15 years experience with high traffic servers. Keep in mind they have servers all over the globe and they made sure that the servers dedicated to S3 can handle any traffic demands in so far that is humanly possible. Whether you have 500 visitors or 500,000, the servers will do a good job of delivering your rich media.
The tests I did so far were really excellent with standard video (up to 800x600pixels) and the great thing is that you can store videos (and actually ANY file type) in 3 zones, namely:
- US Standard,
- EU (Ireland)
- US-West (Northern California)
For video and audio, this is a very important feature, because local delivery is always faster and you don’t want video or audio to stutter. So, you could have a folder(called a “bucket”) on a European server and one in the US if you deliver content globally. I noticed a considerable difference when downloading movies from the US and EU servers. As I live in Europe myself, the EU server is faster for me. But as I target the US primarily, I need to use the US server so that I’m sure US readers can download quickly. It works like a charm and there are no extra costs involved.
Working with video and audio
The S3 space doesn’t have much on board regarding software and that is intentional. After all, S3 is primarily a storage and delivery facility. That said, there are a couple of interesting plugins around which I will discuss next week. The service hasn’t got streaming software, so playing video and audio needs to be done using the format FLV or MP3, which on its turn uses a technique called “progressive download”, meaning: part of the video is downloaded before it starts to play. This works very well if you have a fast server, so this is no objection on the S3 network. In short, you need to convert your videos to FLV if you want them to play from the S3 service.
What about HD?
Alas, HD videos does not play that well with progressive download because downloading cannot follow as fast as playing (see illustration below).
When the blue and gray bar coincide, the video pauses until the progressive bar creeps a bit further ahead.
I did many tests with all sorts of compression methods of a 1200×720 movie, but the result was no good. Only when you let the video download completely, it will play properly. Most people do not have that patience.
Using streaming the streaming facility with CloudFront could improve matters, provided you use a Flash player like JW Player or Flowplayer which support streaming video. See also: S3: Streamingvideo withCloudFront.
Interesting detail: Vimeo also makes use of S3 AWS and when you play a HD video on Vimeo, you’ll notice that is stalls quite often here and there(there is a noticeable improvement lately). Hopefully there comes a time when HD plays properly on this network. However, S3 is excellent for regular video up to 800×600, which in most cases is more then enough.
We have a test running currently until the end of January 2011 with a streaming HD video of 1280×720 via CloudFront. Perhaps you want to participate: https://www.miracletutorials.com/streaming-hd-video-test-on-s3-cloudfront/
What does it cost?
There are no start-up fees. You pay as you go. I uploaded a couple of hundred mb so far and my bill is currently $0.30 for this month. That said, I haven’t made the videos publicly available yet. Bandwidth consumes faster then you think, but the billing is reasonable. There was an example in the Amazon forum of a guy who had a peak of 738GB and that costed him about $340. So, for this amount, you can show a video of 50mb 15,160 times, or 3 videos of 25MB 10,106 times each.
Given the fact that you can protect those videos from leeching, I’m sure you can find a way to monetize those videos and make a profit. For exact pricing,go to Amazon: https://aws.amazon.com/s3/#pricing
One thing is important to understand, you also pay for the amount of storage you actually use, not only for using bandwidth! That means, don’t have videos or audios just sitting there if you do not plan to use them. OK, you could use S3 AWS as a backup service, but that is beyond the scope of this article. If you want to play it mean and clean, only upload what is going to be active.
Is this something for me?
Since you can generate URL’s to a video or audio which remains only valid for a short period of time, leeching or stealing your video becomes VERY hard. This means that with AWS you are capable to sell or show videos/audios without worrying about theft. This technique is called Expiring URLs and you can buy software designed for S3 AWS to generate those automatically on the fly (more about that in following articles). Therefore, my two cents is that this service is very useful in the following situations:
- You have a paid or free membership and want to serve the members exclusive material, like video tutorials, recorded webinars, etc…
- You want to show videos to your clients and/or associates during a short period of time
- Show videos on your site which cannot be leeched or borrowed without your consent.
- Videos longer then 10 15 minutes
- You want to set up a Video On Demand (VOD) service
- You want to setup a video network like Vimeo
Personally, I would rather use YouTube, MySpace or any of the other blockbusters for showing videos that are meant for global consumption because those services are free, and they are capable of playing HD properly, PLUS they have their own large audience you will otherwise miss out on.
However, you are restricted to video of 10 15 minutes (point 4) on most videos services like YouTube, so if you have longer videos, S3 is again a great option. You can easily upload a video of an hour if you want to!
S3 Amazon is especially interesting if you want to setup private video, audio, e-books etc…
You can create a full fledged video service like Vimeo with this, in combination with the other services (primarily EC2), but that would be rather costly, not only in terms of bills but also the investment into coding and programming because not all tools are readily available, although the amount of new supportive software is growing.
Moving large amounts of data
If you have tons of videos, it is rather impractical to upload them all via the internet. Therefore, Amazon provides a service called AWS Import/Export, which consist of simply sending them a portable device, like a USB stick or hard drive and they will upload it directly into their data center, after which they send you the device back. If you have 30GB or more, this is definitely a way to speed up the process and you probably only need to do it once.
A full functionality list of the S3 Amazon Web Services is provided here: https://aws.amazon.com/s3/#functionality
Over the next coming weeks, I will create a new series on how to create your own video channel, this time with S3 Amazon Web Services and a couple of very interesting plugins and software to get you going in no time.