Video formats and media containers

wmv_icon_chooseflv_icon1qt_icon_choose…or Why don’t videos of the same type, i.e. AVI, MPEG, etc., work on everyone’s computers?

With broadband Internet connections becoming the norm, video on the web has become commonplace but beware, authoring video files for deployment on the web can be a minefield –  WMV, FLV, MOV, MP4, F4V – There’s a dizzying array of video formats these days. In this article, I’ll take you through some of the terminology and possible problems that you might face when including video in your on-line lessons.

Here is possibly the most common scenario for novice web designers and e-learning course content developers when using video: You’ve created a great video for your learners and deployed it on your chosen LMS (Learning Management System), tested it on a variety of computers with a variety of different web browsers and everything works fine. You feel like your done a good job – mission accomplished. However, you soon get feedback from learners that they can’t view the video on their computers. You check the different combinations of operating system and web browser and re-create their configurations but it still works for you and not for them. What’s going on?

Don’t worry, everyone who has worked with video on the Internet has been there at some time or other. More often than not this is a CODEC issue.

What’s a CODEC?

As some of you may already know, CODEC is an abbreviation of coder-decoder. Most simply put, it is the bit of your media player that converts the compressed video stream into uncompressed, watchable video. The most common CODECs in use on computers are: MPEG-2 (DVD), MPEG-4, FFmpeg, Theora and the new H.264 CODEC (Blu-Ray) which offers the best file size to quality ratio. Here is a list of current video CODECs.

What is a media container?

You’re probably already well aware that video comes in serveral flavours for the Internet. You probably heard of Flash Video, QuickTime, etc. The most commonly used media containers on the web are FLV, MOV, M4V, MP4 and AVI. For use with Flash and Internet in general, the most widely used and compatible is FLV (Flash video). As of Flash Player 10, Flash based video players can also support a variety of other media containers such as MP4, MOV and M4V.

How can I find out which media container a video file is using?

When you have a video file on your desktop or in a directory on your computer, it’s usually represented by a graphic icon something like one of these:

qt_movie_icon flv_icon realplayerfileicon windowsmediavideofileicon 479536

This does not represent the media container, it merely represents which default application (media player) your operating system will use to play the video when you double-click on it, for example Quicktime Player, Flash Player, RealPlayer, Windows Media Player (WMP) or Nero Showtime. You may have seen that the icons sometimes change when you install a new media player.

In order to find out which media container the video is in, you need to look at the file extensions. These usually look something like: video.mov, video.flv, video.wmv, video.mp4, etc. In Windows, by default, the file extensions are hidden so that inexperienced users don’t inadvertently change them, rendering them unplayable.

What’s the most compatible way of deploying video on the Internet?

Personally, I think it’s unwise to ask learners to download and install media players or CODECs on their computers if they can’t play your chosen media format. Consider these points:

  • Learners might not be using their own computer when they study, in fact, they might study on serveral computers at home, at work, at school, at university, at a library, etc. They’d have to download and install the media player or CODEC everywhere they went.
  • Learners need administrator privileges to install software such as CODECs. The vast majority of computers at schools, universities, libraries and businesses only allow their IT guys to install software because of the security risks that it can entail.

The good news is that the hard work has already been done for you by big Internet companies such as Google and Yahoo! All you have to do is follow their lead. The most universal video format on the web today is Flash video, also known as FLV. It’s difficult to find a computer, these days, that doesn’t have a version of Flash Player already installed on it. If  it has Flash Player installed, it can play FLV video and the new Flash Player 10 also supports a number of other media containers – MOV, MP4, F4V, etc. – and supports H.264.

FLV also supports a number of useful things:

  • FLV Cue Point data – This allows you to easily add dynamic captions to video. Dynamic means that the captions are stored separately as an easily editable XML file and can be changed or updated at any time without having to recode the entire video file. Here’s a starter tutorial for developers on how to deploy selectable multiple language subtitles with Flash Video. FLV Cue Points can also be used to trigger other events like playing a sound or animation, pausing the video and prompting the user to respond to something, and so on.
  • Alpha transparency – This means that you can use “keying” (Chroma key), also known as green screen to make areas of video transparent so that you can layer it over different backgrounds. Lee Brimelow has recorded a video tutorial on the basics of including alpha transparency in Flash video using Adobe After Effects and Adobe Flash Professional CS3/CS4.
  • It’s relatively easy to develop a custom media player in Flash that has specialised functions, for example a rolling transcript of the video dialogue, an on-screen menu system or any kind of interactivity, and an interface that matches the rest of your web site.

What’s the easiest way to deploy video in Moodle?

And finally, I’ve written a plugin module for Moodle, which leverages the very popular JW FLV Player by Jeroen Wijering. Once installed, it’s a matter of using the module wizard to select or upload the video you want to play and setting the player’s behaviour and appearance. It’s open source (free) of course.