Streaming Video Across the Globe with Amazon Web Services

Posted by Doug Toppin

Dec 9, 2014 9:30:00 AM Cloud Enablement

Amazon Elastic VideoTranscoder

Amazon presents a comprehensive platform for compute, storage and digital data delivery. In a previous post we looked into the Amazon Elastic Transcoder service as a way to improve the end user video viewing experience.

 

Yet, transcoding the video is only part of the solution for improving the user experience. Another part is to have the file being streamed to the user's device be as geographically close to them as possible so as to reduce latency issues.

To accomplish this, there are several Amazon Web Services that can be easily integrated to deliver video to geographically distributed end users.

Components

The primary components for a media transcoding and delivery service are the Amazon Elastic Transcoder service, AWS CloudFront Services, Amazon S3 Service, and a media player such as JWPlayer.

Amazon S3 Service

Amazon Simple Storage Service (S3) was one of the first Amazon web services. It provides simple web and API interfaces for storing and retrieving various types of unstructured data from anywhere that is web accessible.

By leveraging Amazon's inherent scaling and availability characteristics, the media files can be stored and retrieved from anywhere within the service and delivered to the consumer.

Amazon Elastic Transcoding Service

Our previous post discussed how to use the Amazon Elastic Transcoder service to transcode media files into formats that are appropriate for a variety of devices.

By using the transcoding service to create an orchestration pipeline for video conversion, multiple formats and resolutions can be made available. More than 20 output format choices enable you to select your choices without requiring you to be familiar with the aspects of video configuration. The transcoding job configuration supports multiple output formats so it may be possible to support all of your desired targets with a single job.

Amazon CloudFront

If your content is to be accessible from any location worldwide then latencies due to distance may be unacceptable to your audience. An alternative to your having to deal with media delivery is to use the AWS CloudFront service.

CloudFront consists of servers in numerous locations around the world that will enable your content to be delivered to requestors from the server location nearest to them resulting in a more responsive user experience. AWS provides a simple ability to configure and upload your media for automatic distribution to the various servers.

JWPlayer

JWPlayer is an HTML5/Flash video player that can be used to play media files within a web page. You can find it at http://www.longtailvideo.com/.

Using JWPlayer simply involves uploading the js file to a location accessible from your website and including the reference to it and a little javascript in your html.  The free version is acceptable for testing purposes and does not require registration to use.

Workflow

The following is a simple workflow for transcoding a movie and making it available via the CloudFront (CF) service. The basic steps are as follows:

  1. collect media files
  2. create S3 buckets to hold your original media and distribution media files
  3. upload media files to the original media bucket
  4. determine desired resulting media formats (standard 9x16 for example)
  5. create a pipeline specifying input/output buckets and notifications (if desired)
  6. create a transcoding job specifying the media formats to produce
  7. start the transcoding job
  8. get JWPlayer files (community edition works fine)
  9. generate some simple html that includes the JWPlayer
  10. create CF web distribution
  11. create CF media distribution
  12. include web and media distribution url to html
  13. upload JWPlayer to web distribution bucket
  14. upload html to distribution bucket

Summary

By integrating these Amazon Web Services with the JWPlayer it becomes easier to deliver device-optimized video to geographically distributed end users.  

These services can be combined into an architecture for media service solution that allows users to upload their original video files for distribution. The uploaded files would then be automatically transcoded into various formats that are optimized for different devices and networks. The input processing can be configured to be an entirely automatic process that is triggered by the appearance of the file in the expected input buckets.

By allowing websites and mobile device applications to use responsive design techniques to retrieve their preferred media formats, you can deliver an improved video viewing user experience.

Posted by Doug Toppin

Doug Toppin has been involved in software systems design and development in both the commercial and defense realms for more than 30 years. His experience includes small and large scale systems with high processing and availability requirements in a variety of applications.

Find me on:

    
Request a Complimentary Docker Consultation

An Open View

Vizuri Blog

Subscribing to our blog is a great way to stay up to date with the latest information from Vizuri, as well as our strategic partners. We focus on providing a range of content that is practically useful and relevant from both a technical and business perspective.

We promise to respect your privacy.

×