Migrating Training Content from Expensive Video Hosting Providers to AWS


Fusion Applied is the leading provider for self-paced Oracle BPM training online. We have many courses that can accelerate learning Oracle BPM for any programmer. We have been providing this learning platform for a while now and it has been received quite well in the industry.
The self paced video content provides many hours of in depth material including programming tutorials using a moderately complex use case. We have been hosting our training videos on Wistia from day 1. Wistia provides a stable platform for small companies to host their media. It is an easy to use solution which integrates very easily with our learning platform. It used to be very cost-effective. For some reason, their plans have changed significantly starting 2018.

We started looking at alternatives late 2017. We have been doing some AWS serverless apps and decided to take advantage of the AWS platform for hosting our training content.
Advantages of using AWS
* Global reach with Edge Locations
* Easy to use Elastic Transcoder
* Easy to set up

Moving Training Media to AWS

The Simple Storage Service (S3), Cloudfront CDN and Elastic Transcoder are the basic tools you need to get started with the migration. The S3 service hosts all you media files in a private bucket. Even if you allow media downloads, hosting content in a private bucket makes sense. We will discuss some ways of allowing media downloads as we continue. CloudFront is a global content delivery network (CDN) service that can securely deliver your media, including videos, to your users with low latency and high transfer speeds. CloudFront supports multi-bitrate adaptive streaming in multiple formats and works easily with with our training platform. The Elastic Transcoder is a nice addition to the AWS Cloud Toolset that helps you transcode your video files to any number of supported formats for the current generation of consumer media devices. By transcoding our video content in multiple formats, stored securely on S3, our training platform scales easily to growing demands with the help of the global CloudFront network.

Finding the right Video Player

The online training technology space is evolving at a rapid pace. There are an ever growing number of video platforms on the cloud that integrate easily with most of the learning platforms available today. Finding the right solution for you is an exercise in knowing the minimum requirements that suit your needs today and allow you to scale when the time comes. Our requirements were pretty simple: Good integration with the AWS platform, Encrypted streaming capability and a mature product to boot 😉

Comparing available options

I evaluated a few popular tools like the JW Player, FV Player, S3 Bubble, S3 Media Maestro, the default WordPress video capability and more. Most of these popular tools work as expected. When it came down to cost and capability, it was hard to ignore the FV Player.

Picking the simplest and cost effective option

We ended up using the FV Player Pro for our needs. I had a good experience setting it up and performing a simple dry run for one of our courses. The built-in debugger is one of the coolest feature. It was all I needed to resolve most of the issues I encountered. One of the best feature of this software was its documentation. Yes, documentation. They have done a very good job of documenting their product. I had a very good experience with their support team as well. I encountered and reported a bug with HLS streaming where the initial few seconds of a video was always streamed in a lower quality. The software prefered quicker playback response than higher quality for optimized viewing. That has been fixed now.

An Easy Maintainable Solution Emerges

After testing for a month, we pulled the trigger and migrated our entire course catalog to the new platform. I will describe some of the high level activities involves in this migration.
Ensure that the bucket hosting your content is private. Under Manage Public Permissions, “Do not grant public read access to this bucket ( Recommended )” is selected.

2, Setup a CloudFront Distribution

  • Generate a security credential using your root AWS account user. Create a new Cloudfront key pair. This will be used to sign your media urls and protect content from unauthorized downloads.
  • From the CloudFront console, create a new distribution based on your private s3 bucket.
  • If you are interested in protecting your content from unauthorized downloads, associate the cloudfront distribution with a new IAM identity. As part of the identity creation from the cloudfront console, the associated S3 bucket permissions can be updated to allow only this new identity read privileges to the bucket content.
  • Associating your domain cname with this distribution is optional, but provided the final touch to your CDN setup.
  • Finally, update the cloudfront info in the video player configuration of your choice.
  • Update all media urls on your access platform to the cloudfront/custom cname

Your basic setup is complete and this configuration should work for most cases. If you are interested, like me, to setup encrypted video streaming from AWS a few extra steps must be completed. I’ll detail that in the next blog.


Google Analytics to the rescue! Okay, It’s the Falcon Heavy of analytics, And yes, nothing beats the Wistia stats console. With the right amount of time and perseverance, it is relatively easy to setup a custom dashboard to display your video stats. This is an interesting blog on its own.

You can also get some basic usage data from the AWS CloudFront Console. I always refer to the Popular Objects, Usage, and the Viewers console for insight in our daily reporting.




It Works!

The above setup has been working flawlessly in production for the last couple of months We have had a couple of minor software upgrades with the video player, but have not seen any issues. If you are interested in migrating your content to AWS, get in touch with us. We can help you identify a solution that works for you and make it easy and affordable to make this transition


The Awesome FV Player Pro
AWS Cloudfront