March 23, 2007

Adobe's Flash developers need to learn from Saudi Arabia

Author: Robin 'Roblimo' Miller

The biggest video problem open source developers need to solve isn't with video editing software, but with Internet video delivery, which is currently dominated by Adobe Flash. There are several good reasons why Flash is the most popular method of putting video on the Internet, but Macromedia (since purchased by Adobe) made a horrible decision when it released Flash 8. Its choice of a proprietary video compression codec makes a free replacement for Flash not only desirable, but necessary -- and I mean for business reasons, not just because of software ideology. If Adobe's management had done even a little cursory reading about the history of the oil business and OPEC, its Flash product line would not be heading for the ripe, green pickle that is inevitably going to hit it in the face within the next few years.Let's start by talking about why Flash is so popular:
  • Instant gratification -- a Flash video starts to play within a few seconds after a user starts to download it, which means a Flash file appears to be streaming even when it's not.
  • No special servers needed -- both .swf and .flv files are simple binary files that can be delivered by almost any popular Web server software.
  • Good ratio between clarity and file size -- there are higher-quality methods of delivering video over the Internet, and there are video compression methods (codecs) that yield smaller file sizes, but Flash currently offers the best compromise between these two important parameters.
  • Network effect -- more computer users can view a Flash video without downloading a new viewer program than can view videos delivered in any other Net-usable video format. In other words, a major reason Flash is popular is that it's ... popular.

Flash 8 and 9 are superior to earlier versions. Video encoded to Flash 8/9 specs is noticeably clearer, and takes less bandwidth to deliver, than video encoded to specs for earlier Flash versions. This is because, as of version 8, Flash stopped using the H.263 video compression codec and started using the VP6 codec developed by On2 Technologies.

In August 2005, Flash developer Tinic Uro wrote a heavily-read blog post about why VP6 was chosen over the competing H.264 codec, which many people consider to be at least as good as VP6.

H.264 has patent encumbrances, but licensing for it is -- let's say -- "fuzzy" enough that it has been incorporated in many open source software projects. There is also a GPL-licensed implementation of the H.264 specification called x264 that may or may not be legal in countries that enforce software patents, but is widely used without visible legal repercussions (so far).

There is currently no widespread, even halfway legal, method of encoding VP6 without purchasing proprietary software either directly from On2 or from one of its licensees.

Popular desktop Flash encoding products that use VP6 range in cost from On2's inept Flix Standard at $39 (for Windows and Mac only) through the moderately competent Flix Pro (for Windows and Mac only) at $249, up to Flash Pro 8 from Adobe at $699. There are even higher-priced Flash conversion products available for desktop use -- none for Linux -- but the additional money for them is generally justified (according to their vendors) by additional production features. Flix Pro does just as good a job of the actual Flash conversion as any of the others. There is really no reason to buy a pricier product if all you want to do is make clear, well-compressed Flash video from popular video file formats. (Sorry, Ogg Theora is not supported even though it uses a variant of On2's own VP3 codec.)

Now let's forget about encoding Flash on the desktop and talk about doing it on a server. Most people don't worry about how their video magically changes to Flash when they upload it to YouTube, Veoh, Blip.tv, or any of the other video hosting services. These companies do the encoding on their servers. When they started out, just about all of them used ffmpeg, which ran just fine on your basic Linux + Apache server combination, and turned out decent Flash video using the H.263 codec.

But ffmpeg for Flash 8 or 9? Forget it. There is no On2 VP6 codec license available for ffmpeg available for free or for pay, according to phone and email conversations I've had with On2 salespeople. Instead, as noted in a list of non-ffmpeg video file conversion software on the videotranscoding.com main page, "On2 Flix Engine and SDK for Flash encoding ... is pretty much the only solution to create Flash 8 files server side."

And now we come to the reason I'm comparing the current state of VP6-based Flash with the oil industry: On2's Flix Engine and SDK pricing is far too high for small video entrepreneurs.

Here's a key paragraph in an email I got from an On2 salesperson in response to a query I sent about pricing:

Flix Engine licensing is available for an annual fee of $3,750 per server. The license fee includes all software updates and maintenance releases as well as 1.5 hours of email and phone-based technical support. Additional support is available for $200 per hour.

That may be an OK price for YouTube and some of their more prosperous VC-backed competitors, but it's a huge barrier for a small, garage-based, out-of-pocket video startup.

And that price may not apply to all users. Another section of that same email detailed another, even more onerous licensing scheme:

Initial licensing fee of $12,500

-- includes 5000 encodes/uploads
-- includes 3 hours of support
-- includes software updates/maintenance releases for one year

You can renew the support/updates contract at the beginning of year 2 for $2,000 per year.

After you've used up the initial 5000 encodes, you would buy a license to additional encodes based on the following:
Qty of Encodes / License Fee
5,000: $1,800
25,000: $7,600
50,000: $11,200
250,000: $37,500
1,000,000: $125,000
10,000,000: $937,500

An encode is 2 minutes or less. For an encode greater than 2 minutes you divide the total minutes by 2 and round up to figure how many encodes apply to that one video. For instance, a 7 minute encoded file would count as 4 encode units.

The way the licensing would work is you would keep track of the number of encode units of videos uploaded to your site via the Publisher and would report that to us every 90 days. If you report more encode units than you had a license to you would need to purchase an additional block immediately.

Did we read that right? $12,500 for up to 5,000 video encodes, each less than two minutes long? That is one heck of a steep fee -- way worse than $3,750 per server -- for someone thinking about running a small video hosting service for low-budget indie movie producers or for folks who make video features about their communities, i.e. that citizen journalism crowd we keep hearing so much about.

Saudi Arabia's oil ministers and other smart people who influence oil pricing on the production end of the business have historically warned that setting oil prices too high would encourage the US and other oil-consuming countries to institute drastic conservation measures and turn to other energy sources. Keep the prices low enough that they are at least halfway affordable, this reasoning goes, and no one will have the political or entrepreneurial will to compete with oil. But let oil prices get out of hand, and consumers will think of ways to use less oil, which will hurt the oil-producing companies and nations in the long run.

There is obvious truth to this line of thought. When gas hits $3 per gallon in the US, hybrid cars and other fuel-economizers sell like mad while gas-hog SUVs sit on dealers' lots. At $2.50 per gallon, at least some fuel-guzzlers sell, especially if they are discounted heavily. Drop gas prices back to $2 or less, and V-8s are "in" again.

Right now, courtesy of On2, the cost of high-quality, server-based Flash video encoding is at the software price equivalent of $3 per gallon. This means that it's harder for small entrepreneurs to go into the video hosting business, and also means that a lot of video hosting services and people who want to be in that business are casting about frantically for an alternative to Flash.

Luckily for Adobe and On2, one of the more promising Flash alternatives, Java-delivered video, may also have patent problems. The company working hardest to promote a Java-based "playerless" video delivery system, VX30, seems to think it should get $1,995 per server, although one of the company's higher-ups told me via email that they would go as low as $595 for a small startup.

I had trouble loading and playing VX30 Java-delivered video in both Linux and Windows, though, and my one experiment with its standalone desktop encoding software (for Windows) was disheartening; it crashed too frequently for me to complete even a single trial transcode. This is the sort of thing you accept, perhaps, when playing with an immature open source project, and maybe (assuming you have the skill) you can help that project fix some of its bugs. But VX30 is 100% proprietary, and patent-encumbered at that, so working to improve VX30 software is not an option. If anything, this company is a barrier to the development of Java-based online video delivery because of developers' need to walk carefully around its patents.

Meanwhile, I know of at least one well-funded open source effort aimed at replacing Flash that was started (and financed) in large part because of the overpriced On2 codec, just as many of the current US government (and private industry) efforts to find replacements for imported oil are due to high oil prices.

The funny thing is, it probably wouldn't be a big deal for Adobe to include both H.264 and V62 codecs (and possibly Ogg Theora and even Xvid) in their official Flash player. They could still recommend the costly V62 codec and provide expensive tools to work with it. And they would no doubt find plenty of buyers for those tools, just as they sold plenty of copies of Flash Pro while ffmpeg was out there for free and perfectly capable of encoding pre-8 Flash.

But will Adobe take this step? Or will it continue forcing VP6 and its high costs down the throats of everyone who wants to deliver Internet video with Flash? I suspect it will take the latter course. And because of this, before long we will soon see more than a few viable alternatives to Flash, developed by open source people, that will usher in a whole new era of open video on the World Wide Web.

Click Here!