Sunday, August 15, 2010

How To Encode Video For The Internet

Encoding video became easy a couple of years ago. Microsoft launched Silverlight rendering the last competitor to Flash Video problematic. As a result using On2’s VP6 codec for Flash Video seemed pretty safe. Even as the clamour for HD rose and H.264 video became more popular, this seemed reasonably straightforward.

But the past six months has seen format wars break out again. Google buys On2 and launches MWeb on the back of it’s VP8 codec. Flash continues to use On2, with H.264 (and Sorensen) as options, but there is nervousness that H.264 is a proprietary format (albeit one owned by nearly thirty companies).

Meanwhile the iPhone and iPad have become popular, demanding a bizarre form of delivery that involves encoding a number of different data rates, chopping them into bits and psudostreaming them over http rather than using a conventional streaming protocol.

And then there’s B;ackberries, where you have to encode H.263 (or 3GPP) over rtsp, or something like that.

Something that once appeared straightforward has become horribly complex, and, not surprisingly, thrown a whole industry into confusion.

I’m not going to try and tackle each of these encoding approaches, but I am going to point to some alternative options for handling your encoding, which will hopefully be future proof.

First of all, I’d suggest encoding the master in HD and storing it locally using a system such as Object Matrix’s ultra-secure storage (or you can use lots of scratched DVDs, of you prefer..) and then keeping a copy in the cloud, or at least off site. Of course, all HD is already encoded, so you’ve already lost a huge amount of resolution at this point, but, ho hum, the bits have got to stop somewhere..

Then encode the content in as many formats as you are likely to need in the short term.

But how to encode ?

Well, there are three options – encoding locally, using a service provider, or encoding in the cloud.

Local Encoding

Here there are a number of further options – you can use pro hardware encoders from companies such as Telestream and Digital Rapids, or use software on common-or-garden PCs or Macs.

You’ll have the choice of paid for encoders, including:

Sothink

Microsoft Expressions Encoder 4 Pro

On2 (now part of Google)

Adobe Encoder

Quick Time Pro/QT Encoder

Autodesk Cleaner

Or freeware such as:

Handbrake

ffmpeg

VLC

Service Provider

There are some facilities companies who know what they’re doing when it comes to encoding, but the majority will struggle if what you ask for isn’t on the ‘Export’ menu on Avid or Final Cut Pro. However there are a few specialist shops, but since these are geographically based you’ll need to scout them out. Give me a shout if you’re stuck.

Cloud Based

Finally, there are a number of cloud based services available. Of course, this involves uploading massive source files to the internet, so if you don’t have at least a 2Mbps connection upstream, pr have all the time in the world, then these are really not worth considering. Here’s a summary with some typical costs:

FlixCloud $1.75/GB data in, $2.25/GB out.

HDCloud - $.99/GB - $1.99/GB

Pandastream $99 pcm

Panvidea don't publish pricing

Encoding.com - $1.80/GB - $2.50/GB

Zencoder - $0.05c per minute of output

So, what do we recommend at TV Everywhere ? Well, we really like Handbrake, but it’s not suitable for some formats, so there really isn’t a ‘one size fits all’ solution. Of course, many enterprise video management systems come with encoding built in, but that doesn’t guarantee that they will be using formats that will future proof your content, nor ensure that it can be distributed to the widest possible range of devices.