Microsoft PowerpointA few months ago a friend came to me with a problem. She is a college lecturer teaching the use of IT programs, including Powerpoint. When compiling a lesson one day she found that she could not persuade Powerpoint to embed a video clip taken on her digital camera. It would play fine when opened in a media player, but not in Powerpoint.

The object pane would be rendered but would simply show a very old-fashioned error message in MS Sans Serif, which read: "Video not available, cannot find vids:mjpeg decompressor".

Clearly a codec problem, right? Wrong. Well, not really anyway.

It turns out that when applications such as Powerpoint embed sounds and movies, they use the MCI built into the Windows API to play them back. This makes sense, as you don't really want to rely on (potentially) third-party playback software installed on the computer where you plan to run your presentation.

Fancy intelligence, and the archaic tools that don't have it

Windows MediaBut it causes a slight complication.

See, the line between MPEG and Microsoft's 'avi' format have blurred significantly as the media age progresses and we develop ever more sophisticated technologies. Since both formats are just containers for video data, the actual information inside .mpg files and .avi files could be encoded using any number of codecs which have to be installed on the target system. Although modern developments such as DivX and AC3 audio require downloading, there are some common ones which Windows comes with because they've been in common use for over a decade.

There's a convention that certain types of movie data are named .mpg, and others .avi, but in practice the difference is almost negligible. That is, modern media players are capable of handling an .mpg file which contains video data encoded with a codec that would usually be used for files of the .avi type, and vice versa.

Seemingly, this would make things a lot more streamlined and it wouldn't really matter if your video clip were named .avi or .mpg because the end result would be the same, as long as sufficient decompressor information was available within the file to tell the player how to deal with it.

But Microsoft's "Media Control Interface" built into Windows is not a modern media player. It's a set of API functions that has been built into their OS since the Windows 3.x days, and although it's a modular system, no-one really cares about updating the various playback modules to give them fancy modern functionality because in general it's not required. After all, the MCI is used for playback of system sounds and mIRC's /splay command and .. well, that's about it.

Oh, and OLE media objects.

So, Powerpoint is calling the MCI to play back your camera video. The problem being, the MCI is old… very old. It doesn't have the fancy intelligence used by modern players to blur the line between .mpg and .avi. But digital camera manufacturers don't bear this in mind when they produce equipment which outputs video encoded with MJPEG but gives the filenames an .avi extension. The MCI can't handle it, because MJPEG is a part of the MPEG family of decoders, and so it expects this to be found in an .mpg file, not an .avi file.

Hence the error.

El solution

MPEG iconThe good news is that this problem is fairly easily solved.

Due to the aforementioned 'blurring of the line', renaming a typical video file from .avi to .mpeg, as long as it's encoded with a suitably independant codec (for example MJPEG), won't affect playback in typical modern players.

We can use this to our advantage because the MCI wants the file to be .mpg, but no-one else really cares. So we should just give the MCI what it wants and rename the file to give it an .mpg extension, right?

Right!

In this day and age, we can simply rename the video from .avi to .mpg. How cool is that? Apparently even renaming the file to .qt, .mov or .m1v will help. This technique should give a greater success rate with AVI files from digital cameras that create movies.
This method can be attempted if you receive the error "Cannot display this type of sound or movie" or "MMSYSTEM006 There is no driver installed on your system", or if you "insert movie from file" and powerpoint simply ignores you.

Linkage

Thanks to awesomebackgrounds.com for reminding me how to fix this when I decided I felt like writing an article about it.

There's also a well-known multimedia tutorial for if you are still having trouble with this issue which might be caused by a slightly different problem.