After last week’s blog post, there were a few discussions from other customers (and apparently a couple of otherwise-quiet readers) on some more elemental aspects of video. There are a lot of resources on the web for such explanations, covering a range of topics. But for sake of simplicity, let’s discuss it a bit here too.
There are three primary components to digital video:
- The video and audio tracks: fairly obvious!
- The codec: what type of compression is used to reduce the overall file size of the video and audio tracks.
- The container: the ‘structure’ of the file.
Codecs are critical to ensure the overall experience. ‘Raw’ video which hasn’t been compressed is HUGE which isn’t very workable (too intense for computers to handle smooth playback and to be delivered online). Pretty much all video you see today is compressed to some degree, even HD video delivered by common TV services.
The container is easiest understood by the file’s type; common types include .avi, .mpg, .wmv, and .mov. Video playback software is often tied to a few specific formats. For instance, Windows Media Player works well for .avi, .mpg, and .wmv. Apple’s Quicktime software (and its brethren, like iTunes) are geared to work best with .mov, .m4v, and .mp4. Adobe’s Media Player was primarily tuned for .flv and .f4v (Adobe dropped support for its Media Player in 2010). Those are just a few examples; there are many other variations of software and containers out there.
And to make all the more confusing, there is cross-over between codecs and containers – MPEG is a codec AND a container. An MPEG file (container) doesn’t necessarily have to use an MPEG codec and, likewise, an MPEG codec can be used in a variety of containers. Additionally, there are several different versions of the MPEG codec (i.e. mpeg 1, mpeg2, mpeg4). AND, don’t forget, there are variations of codecs and considerations to make in relation to the audio portion of a video file as well (.mp3, .aac, .pcm, etc)!
There are some good resources on the variations of formats/containers and codecs here and on Wikipedia (1 , 2 , 3 ).
There’s little debate these days that h.264 – a variation on the mpeg codec - is the most popular codec to use for most video. As noted, there are plenty of options out there but h.264 is currently a preferred option. There is debate regarding patent concerns but, that aside, a large amount of the video you see today is likely encoded with h.264…though perhaps in a variety of ‘containers’.
There are other options, of course. MPEG2 itself is still a solid codec; it’s still used for most DVD encoding for example. While showing some age itself, many digital cameras capture with a ‘DV’ codec variation, though that is usually converted into something a bit more manageable for web delivery. DivX and Xvid are also older, but popular, MPEG4 variants.
The former ‘VP6’ codec by On2 Technologies was an up-and-coming format…then On2 was acquired by Google in 2009…but fortunately, Google has since opened the spec, now called ‘WebM’ (aka VP8). VP6 is still a well-performing option in Adobe’s Media Encoder when creating FLV files. The ‘Ogg’ format (which is a ‘container’) is well-regarded in many circles with its ‘Theora’ video codec and ‘Vorbis’ audio codec. Ogg can spark its own discussion, but suffice to say that while the quality is there, it does not seem to be a common output option for most video tools yet.
Many of these codecs are in heavy competition among various camps to be either the default codec, or at least a globally-supported codec, in the upcoming HTML5 specification. It may be years before we find a solution; either an absolute ‘winner’ or enough flexibility in the spec (and willingness in the browser developers) to come to a solution which can play within a browser without a ‘helper’ application like WMP or Flash.
Until that time, however, the Flash video format remains our preferred delivery. The only device that’s a problem for are Apple’s Mobile Devices. Our bet is Adobe will refine the player enough to counter Apple’s more serious complaints. So it would seem the most prudent course of action is to support Flash while the HTML5 spec continues to mature. Additionally, with the range of mobile devices continuing to expand - and those will have Flash support - we’re not too worried about missing a significant audience by sticking with Flash, whether for general video or eLearning delivery.
Of course, if you have a known Apple-device-loving target audience, well then, we can architect a project to deliver the product to that customer base. There’s always a solution!