Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We are storing video files in Amazon S3-Buckets, and do the playout via CloudFront. Unfortunately, although CloudFront has an origin-pull mechanism, the files are only transferred from S3 to the edges on first request. This leads to the problem, that every first user in every region (and we're serving world-wide) has a big lateny on streaming.

I did not find and possibility to automatically push new video files directly to all edges, but we need a solution for this (and for the fact that CloudFront is too slow sometimes).

Is there any CDN which is capable of

  • taking S3 as storage source
  • secure streaming (e.g. RTMPe)
  • pulling new files from a S3 bucket automatically (or has a comparable mechanism)
  • logging streaming statistics frequently

or is there any way to solve my problem with CloudFront?

Thanks a lot.

share|improve this question
up vote 2 down vote accepted

I think you'll find most CDNs are architected similarly, even if they offer centralized storage. It doesn't make sense to push content out to the edge if nobody is going to request it, so they do it on-demand.

Is this really an issue in practice? It would seem to me that their might be an initial startup delay of at most a second or so to get the video file headers to the edge streaming servers, and then CloudFront's internal bandwidth would be sufficient to stream the video directly to the end-user with no perceptible performance issues.

I'm sure Akamai/LimeLight/Level3 or the other big contracted CDNs have a solution for you with SLAs that pushes content to the edges on upload, but it will cost quite a bit more. CloudFront is inexpensive, and you get what you pay for.

Finally, check your MP4 file format headers and make sure your MOOV atoms are set up properly at the beginning of the files to allow seeking and streaming without a full-file download. That way the edge server can start streaming before getting the whole movie file from S3. Not sure what encoders you are using, but there is often a "optimize for streaming or web" option available. here is some more information about an open source tool to modify existing videos for that.

share|improve this answer
Thanks for your answer; The moov atom is set correctly, and we spent many time finetuning the ffmbc we're using. In fact, many of our customers just step through the video file (it's a business service), and on first request, it's not finished loading into the edge. CloudFront's bandwidth seems not to be broad enough to deliver the video file so fast that skipping through the file works initially. My next plan was to contact other CDN providers, and after reading your answer, it confirms that CloudFront just doesn't fit our needs. Thanks. – schneck Jun 28 '12 at 6:48

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.