By Zak Forsman, June 21st, 2010


About a year ago, there was a lot of talk about the merging of broadband internet and the televisions in our living rooms. That has since been subplanted by a shift in focus toward the creative process and making better films. However, when Google TV was announced not long ago for a Fall release, I found myself revisiting the importance of discovery and distribution for a 24 hour period in which I built my own video on demand portal. If Google TV is able to populate amongst our TVs and other home theater devices as quickly as Netflix Watch Instantly did, we could be having some interesting conversations a year from now. In anticipation, I began digging into what it would cost in time and money to launch such a portal online for the films of Sabi Pictures and the films we’ve curated via the CINEFIST Screening Series. We’re calling it CINEFIST TV.

First I looked into services offered by Youreeka, Maxcast and others – disappointed at the cost, how little of the purchase price would go into our own pocket and the fact that the customers had to start accounts with these other companies. So then I began to look into doing what they do, but on our own site. I wanted to mimic the Netflix Watch Instantly experience — streaming video, a simple interface, a way to pay for the content with the option to make it free, and I wanted it cheap.

Now, I’m sure there are a few of you that are ahead of the curve on this one. This might not be for you as these are the discoveries of someone who has never done this before, but maybe you could offer some insight that would improve it a bit. That being said, this article assumes you know how to compress videos for the web and that you’ve got a handle on building web sites, registering domain names and setting up a hosting service. What follows is just the first incarnation of our VOD portal. It will evolve.


First I needed a platform that would work in any browser. I’ve long been using Wordpress for all our sites and have become a great admirer of the premium video-based themes designed by Jason Schuller at For purposes of this VOD portal, I chose the appropriately named “On Demand” theme. They have a number of themes that would work equally well.

After securing my new .tv domain name, I uploaded all the Wordpress 3.0 files to my server and the theme files were uploaded to its theme folder. I created a mysql database with my hosting service and entered the appropriate information into my Wordpress config file before uploading that. Then, by going to my url for my new site, I followed the installation procedure for Wordpress and within seconds the site, devoid of content, was up and running.

If you are familiar with php and css stylesheets, the Press75 themes are easy to customize, and this theme in particular has a number of customs settings one can set in your Wordpress admin control panel.


I needed a cost-conscious streaming server. Most charge so much that selling a 99¢ stream would be a losing proposition. I turned to Amazon Web Service’s CloudFront service and started an account. Their pricing is much more manageable at 15¢ per GB. Considering a feature-length stream is in the neighborhood of 1 to 2 GB, this was a no brainer.

So I first set up an AWS Simple Storage Service (S3) account where the media would live. Using my existing Amazon account and a credit card, I was receiving an email containing a link to my S3 account details within seconds. When you follow that link, the first thing you want to attend to are your two password keys — the Access Key and the Secret Key.

To manage this new account’s files and folder and various settings, I downloaded S3Fox Organizer plugin for Firefox as its really the best thing going for managing your files on an Amazon S3 account. With this I was able to upload all my media files (trailers, previews, shorts and features) and make them public and read-only. Here’s how:

Click on button that reads “Manage Accounts” in the upper left corner of the S3Fox interface. The window shown above will prompt you for an account name and your two access keys.

Now, you’ll need to create a “bucket” (aka a folder) in S3 where you’ll upload your videos. Click the blue folder button at the upper-right side of the screen and enter a name for it. I chose to use the domain name for the site it would serve videos to.

When you’re ready, this is where you’ll upload all your video files to. Each file will have to have its permissions set to be read-only for public viewing by right-clicking on the file, selecting “Edit ACL” from the menu, and changing “Read” + “Everyone” from a red X to a green checkmark. You can’t do this as a batch as far as I can figure so its a long process if you have a lot of videos.

Next you’ll have to set-up a “Distribution” in Cloudfront. Go to the AWS Management Console and add the EC2 and Cloudfront services to your account, if you haven’t already. Then go back to the main console and click the tab for Cloudfront. Click the button for “Create Distribution” and select the “bucket” you made earlier. Then set the delivery method to “Streaming”.

Now you’re looking at a list of your Cloudfront Distributions. Make note of the assigned domain name that looks something like You will take that domain name and build the url to your streaming media as follows:


The /cfx/st/ path is required. While “your_video_file.mp4″ is the video you uploaded (or will upload) to your bucket.


Dynamic Streaming is where the video player monitors the user’s broadband capabilities and selects one of several videos files to play that are identical in duration and content but differ in size and datarate. The player is capable of switching on-the-fly seamlessly.

As tedious as it may be, you’ll want to encode multiple versions of each video at different datarates. I chose to do three at 500kb/s, 900kb/s and 1800kb/s to support viewers with a variety of bandwidths. The player is given a list of corresponding videos in the form of an XML file and it plays what the user’s system can handle without stuttering and stopping. It’s not always flawless, but it’s pretty remarkable how well it works.

Here’s how I set mine up:

First download the free JW Player and upload the “mediaplayer” folder and all its content to your web site’s FTP. I placed mine in the directory labelled “wp-content” where other items like Wordpress themes and plugins are kept. Next, in your Wordpress admin control panel, go to the settings for the “Simple Video Embedder” (a plugin which comes with the Press75 themes) and enter the location of the JW Player files as:

Next open a text editor and create an XML file by saving an empty text document with a .xml extension. You can download an example xml file here. Be sure to fill in the names of your video files and your unique cloudfront domain name where indicated in the code. You’ll need to make on of these XML files for each video and once you’ve filled it out with your own info, upload it to your web site’s directory.

Next, use this code to embed the JW Player with instructions to call for the XML playlist. If you’re using the On Demand theme from Press75, create a new post and scroll all the way down to “Post Video Options”. This is where your embed code goes.


Finally, unless you’re happy giving all your films away for free, you’re wondering how do I make certain videos viewable only after a customer has paid to see it? This is the area I’m still experimenting with and I’d love to hear some ideas in the comments below. For now, I’m using a Wordpress plugin called S2 Member that allows you to lock specified posts and pages as “pay-only” content using Paypal to process the transactions. This plugin was desgined for bloggers who wanted to have premium content on their sites, and since each video we host is essentially its own blog post, this works well enough for now. The instructions it comes with make it easy to set-up so I’m not going to repeat them here, but quickly i will note that you have the option to be post/page specific or to offer a subscription that opens up all the content for one price.

Still, I’d like to have the pay system integrated into the player itself, so it can be embedded on other sites as well. The JW Player has an add-on that allows for Paypal donations to be made, but that’s not quite what we need. So these are the primary areas we’re working on before the official launch in the Fall to coincide with GoogleTV. In addition, we need to replace the video player with an HTML5 compatible one so the videos can be viewed on Apple devices too. The challenge being that no HTML5 players do true fullscreen which kind of kills the home viewing experience when you can see the browser. And its the home viewing experience we’re building this for.

So that, believe it or not, should do it. You can poke around on the site for the JW Player to learn how to use different skins and add-ons too. It was important for me to share how this is done, how easy it is, and how little it costs so you can avoid being taken advantage of. There’s little need to give away 50% or more of your potential online VOD revenue just to have it available in this manner. Anyone with $100 and a couple hours can do it.

  • Share/Bookmark

Posted in tools and services video on demand

Zak Forsman is an artist-entrepreneur whose emotionally-charged motion pictures are known for highly authentic performances and beautiful compositions. They have been praised by Ain’t It Cool News as “Brilliant” and “Absolutely Gorgeous” and by Filmmaker Magazine as “Very Accomplished, Amazing.”


  • Sudheer Gupta

    I am looking for making a VOD platform if possible.

  • Daniel Neto

    Very good options, but you should try, YouPHPTube. It is a complete open source solution. It's written in PHP and with YouPHPTube was maded to let users create their own video sharing site just look like YouTube. YouPHPTube is able to download and encode videos from other sites like Youtube, Vimeo, etc. and you can share directly on your website.
    YouPHPTube is one of the most complete systems for creating multimedia sites that exist and because Open Source can receive news and updates frequently. By following the hosting tips contained on their site you will be able to have your own Youtube in minutes with no hassle.
    Tutorials: https://tutorials.youphptub...

  • There are many service providers currently in market with the video streaming script. As we all know video streaming business has more demand than any other business ideas. But make sure that you know the difference between a video streaming website like Youtube and a video on demand website like Netflix. To know more about this you can go through this article -

  • kakus5


  • Probably not. Latest reply is 5 years old.
    Try VideoShareVOD . It's free and open source.

blog comments powered by Disqus
  • twitter
  • facebook
  • delicious
  • youtube
  • vimeo

Join the WorkBook Project mailing list - enter your email below...

NEW BREED twitter

There are no events to show at this time.

Powered by Lifestream.

Podcast Archive