I finally got around to adding videos to the site that I’ve been accumulating over the last couple of years. I’ve blogged about investigating Flash video a number of times before. After putting a number of videos on YouTube and being disappointed with the quality of the end product after their compression and resizing process was completed, I decided to go it on my own.
The decision to make this move provided the necessary impetus to do the final research and prototyping necessary to make this a reality. From my experience, I’ve come up with the three things that you’ll need to host Flash Videos, aside from the source video itself, of course.
A server with plenty of bandwidth and the capability to stream media. Even though the Flash compression process yields fabulous results as compared to a raw video stream, these files are by no means small. I am seeing sizes of 6 – 12 MB per minute of Flash video depending upon the quality of the underlying source and some tweaking of the video encoder settings (like bitrate). Depending upon how much traffic your videos get, this could suck up quite a bit of bandwidth. With respect to streaming media, I suggest that you select a host that explicitly allows this or who gives you control over your server so that you can take care of this yourself. Beware that if you’re hosting on the Windows platform with Windows Server 2003, this server will not stream Flash videos out of the box. You’ll need to explicitly set the MIME type for the Flash videos.
A solid Flash video encoder. With the explosion of Flash media at sites such as YouTube, Google Video, and MySpace, the number of tools available to do consumer Flash video conversion are on the rise. These tools range from rank amateur stuff to automated server-side tools like those used by the big boys. In the consumer space, you’re paying for three things: ease of use; the video encoder (codec); and the flash player. The most important of these things to me (but I’m sure not to everyone) is the actual codec. The codec is like the engine in your car. That is, you can buy those flashy spinner wheels and fat (phat, maybe?) muffler but without a good engine, you’re going nowhere fast. That said, there is quite a war going on in the codec camp based upon proprietary versus non-proprietary formats (VP6 versus H.264).
From a consumer’s point of view, you either buy On2’s technology or somebody else’s since most everyone else supports H.264. Many of the counterarguments to On2’s codec revolve around the portability, openness and near universal adoption of H.264. From my tests, the VP6 (On2) encoded videos looked better and compressed to smaller file sizes. The encoding process, however, is a bear and will peg the most capable of CPUs at near 100% utilization during encoding. The real proof for me was in the marketplace. With many major media and technology companies (including Adobe, themselves) using On2’s codec, I’ve assumed (rightly or wrongly so) that people much more knowledgeable than I in this area have done their homework and are convinced that On2 offers something that H.264 products do not. What seals the deal is that On2’s standard bare-bones encoder package costs only $39. Granted, it’s not as slick or user-friendly as some of the others that I tested but it has the most horsepower under the hood.
A configurable (ideally scriptable) Flash video player. The player is the part that actually drives the Flash video and allows the user to interact with the output, moving the video forwards and backwards, setting volume, etc. Many of the video encoder packages include a selection of players out of the box; so you may not be required to pick up one separately. If your codec doesn’t come with a player or you’re not satisfied with your player’s capabilities, I strongly recommend that you take a look at Jeroen Wijering’s Flash player.
As you can probably see from the screenshot of the Flash control, Wijering’s Flash player is, well… not that flashy. What it lacks in glitz, it more than makes up for in power and flexibility. The player is very easy to use in its default configuration, playing either single Flash videos or running though multiple videos specified in an XML playlist. Furthermore, you can perform runtime manipulation of the Flash video by passing a set of parameters known as flashvars. This very handy feature alone makes this player standout head and shoulders above the rest. Finally, there seems to be a decent community support around this open source player with plugins built for popular tools like WordPress, Drupal, and Coppermine. This extra article by Jeroen provides some good guidance on embedding Flash. For specifics, it’s best to download the tool and play with the samples.
Hosting Flash video is really not hard once you have these three things figured out. Although I didn’t mention source video, it really is key in the equation. Videos that I shot on older still cameras needed to be scaled up in size and are a bit pixilated. Videos that I shot on my newer Canon A630 look much better, but they are not in stereo and show signs of pixilation even if I use optical zoom. From this whole conversion effort, my most important takeaway is that I’m going back to my Sony Hanycam Digital for shooting video. It yields the best video and sound quality. The only downside is the digital tape to digital file conversion process.