PapaJohn Productions

Newsletter #187
About Codecs - Part 1 of ??


When I write books, magazine articles... or inputs to Frank Delaney for his radio shows... anything about codecs crosses a line... it's a topic too geekie for the broad audience of readers or listeners. The editors want to keep things at a high level where digital video editing is fun and easy. At most I'll slip in a comment such as "... if you don't have the codec you need, download it and your editing will continue along fine...". Newsletter readers are not the average users of Movie Maker so I'm free to get into the subject here.
Developments such as still cameras with better video features, and camcorders that use flash type memory cards, are made possible by the higher compression of newer codecs...
With the holiday presents of cameras now being used, I see an increase in newsgroup and forum posts asking why a video file can't be imported into Movie Maker, or why it doesn't preview right, acts strangely in a project, or why Movie Maker crashes and movies don't save completely or well.
There's also the shift from XP to Vista going on... and the Vista systems have fewer codecs, and wouldn't start with all the codecs you collected over the years on your XP system. Files that played fine on your XP system may not work in Vista when the system is right out of the box.
Responses to posts are often something like ".... maybe you have a codec issue... go get this full super-duper pack of codecs and it'll solve your problems...". Those who do often find themselves with more issues than they resolve.
Where does that leave the user when it comes to codecs? From Microsoft and affiliated companies to MVPs, wiki's and other peer supporters, I've yet to see the subject of codecs presented in an easy to understand and broadly useful way. Seems like a qood quest and theme for a series of newsletters. I'll kind of ramble around as I usually do in the newsletters, and what I learn as I write them will hopefully roll up and into helpful info on my website.
I won't go into the technical details of codec programming or interactions behind the scenes, as I'm not a programmer and not into the low level details of how an operating system works... I'm a user who keeps learning and passing along what I know, in this case about codecs and how to handle them.
Let's start by a walk-through of what happens after I copy an AVI file from my Canon SureShot SD750 camera via USB (it doesn't have a firewire connection like my mini-DV camcorder)... and take it to three of my computers to edit in Movie Maker, one running XP and the other two Vista Home Basic and the Ultimate beta of SP1.

From 7 Megapixel Canon Camera to Movie Maker
MJPEGI'll use a clip of our walking path before the snow came in for the season, to show the codecs used to view it in Windows Media Player, and edit it in Movie Maker.
Files from the Canon SD750 are compressed as Motion JPEG AVI... looking at Peter Symes' book 'Digital Video Compression' to see what he says about the format.
"... not really covered by the JPEG standard, but it provided a powerful tool for compressing motion sequences prior to the arrival of MPEG.
The concept is simple - each frame of an image sequence is coded as a JPEG image....
Unfortunately, because motion JPEG is not properly standardized, virtually every implementation is proprietary and different....
.... some form of motion JPEG is used in  most nonlinear editors...."

You can't play video or audio files without codecs... with few exceptions they are compressed and the codec is the little piece of software on your computer that does the decompression as you watch and listen in Windows Media Player or the preview monitor of Movie Maker. Some codec files have .ax extensions and others are in .dll files.
There are dozens or hundreds of codecs on each system that are ready to do the decompressing when you need one... you'll never need to know about most of them, just those you need but don't have (when your file doesn't work right)... and the ones involved in crashes and hangs (when you need to take some action to resolve it).

PIC VideoCodecs go into action when needed, without the user doing anything beyond opening the file in the player. Let's see which codecs are used as I play the clip on the 3 computers.
On my Vista Home Basic laptop the video decompression is done by the ffdshow Video Decoder, a code I installed to get Xvid compressed files to play in Movie Maker 6. I didn't know it would also be used for Motion JPEG files. How do I know what's being used? Check the file properties in WMP and it'll tell you as part of the info on the first page
WMP-ffdshowIf I turn off ffdshow by renaming the codec file, and play it again, WMP changes to using the PIC Video M-JPEG 3 decompressor. I don't know what app installed that one... it's not on my XP laptop or my Vista Ultimate system. Either Toshiba installed it when they made the laptop or I put it there as I added some software, not knowing it would get involved with the playing of my Canon camera clips.
Decoders and decompressors pull the data from the files as they play.... but it's other codecs, the compressors, that compress the files as they are being made. For the Canon, the compressor is whatever Canon put in the camera. There are hardware compressors and software ones... I don't need to know what did it as long as it plays fine using the decompressors I have.
When I use a Motion JPEG file in a Movie Maker project, MM6 takes data from the file using ffdshow or PICVideo and puts it into the movie it's rendering using a Windows Media 9 or a DV compressor, the only two types of files Movie Maker creates.
Checking file properties in Movie Maker won't tell you which codecs are being used. You'll have to use clues and guesses... and sometimes be wrong. My guess is that Movie Maker uses the same decompression codec as Windows Media Player.
If you have the codec unchecked in Movie Maker's compatibility list, it can't be used by Movie Maker but it can still be used by WMP, so more guessing is needed. When I uncheck the ffdshow video codec in MM6 and the file still plays, I assume it's the PIC codec stepping in to do the decompression, as that's what WMP uses when I rename the file.
WMP-Ulitmate-blankstarePlaying the clip on my squeaky clean Vista Ultimate system that doesn't have either the ffdshow or PICVideo codec must use a different codec for decompression, as it plays fine. See the blank stare I got from the file properties in Windows Media Player. WMP either doesn't know or won't tell you. That makes me use GSpot, my all-purpose codec checking utility.
Checking the clip in GSpot on the Vista Ultimate system shows it being decompressed by the MJPEG Decompressor in the quartz.dll file, one of those basic files in the Windows\System32 folder, a file that comes from Microsoft with the operating system.

For the audio in the file, Windows Media Player doesn't have any info. Checking it with GSpot shows 'PCM Audio, no codec required'... PCM Audio is one of those exceptions, uncompressed. WAV files are also uncompressed audio. 
Codecs are a mystery to all but a select few. They are hard to understand and talk about. At the same time, they offer some fun for the curious non-programming hackers... I guess I fit that category.
Now that Vista has been with us for over a year, we have both XP and Vista to look at and learn from. Comparing two things against each other sometimes adds enough clues to put some info together. I hope so.
Before going further, here's...
a note...

After sending out last week's issue about the Photo Story 'spoiler' I checked all my profiles and found 4 more custom ones with the same issue... and they didn't all fit the same pattern of pixel width dimensions. What I've been using is the 'work-around' of moving the starting position so it's at least part way outside the ending position. 
It leaves the cause of the issue still unknown but with an easy to use work-around provided you notice and correct it before distributing your story.
... back to the main subject  

What codecs are on your system? Many, most of which you don't need to begin to think about. Our focus in this first newsletter of the series are the codecs you need to add if you don't have the ones needed to play your video clips, and those you need to turn off if Movie Maker is crashing and hanging when trying to use them.
If others are there and behaving themselves you don't need to know about or think of them.

The GSpot utility gives a long list of codecs and filters on a computer.
Here are the items on my Vista Ultimate system... for VFW and DMO types, selected to align with what WMP11 shows for ICM (Image Color Management) and DMO (DirectX Media Object) video codec types. I don't want to get too techie at this point... just gloss over anything you don't understand.

For now we're just making notes about such things, not stopping to explore them in depth.
For another look at the video codecs on the same system, let's use Windows Media Player 11.
The hard part is finding the Help button or option to select > About Windows Media Player.
Once at the 'About' window, use the hot link for 'Technical Support Information' and you'll get a list of codecs on the system.
The items listed under VFW (Video for Windows) in GSpot are shown as ICM type in Windows Media Player.
Note that lists in GSpot and the Windows Media Player don't fully align, so they are a bit difficult to correlate. For example the Toshiba IYUV codec is listed by WMP but not by GSpot. The DMO type list of GSpot includes 4 audio codecs listed in WMP's audio codec list. You would need to go over the two lists line by line.
We'll gloss over any differences for now, and get back to them when and if needed in the future newsletters in this series.
WMP - Video Codecs
For now I just want to say there are many more line items in both the GSpot and WMP lists than there are in the compatibility list of Movie Maker. Let's open Movie Maker and take a look at it.

Compatibilitythe Compatibility List...
Open it using Tools > Options... and go to the Compatibility tab, a feature added to Movie Maker in version MM2.1, and included in Vista's MM6. It's there to help you easily turn off a codec that is causing issues with a project. That makes it also a tool to turn one on if it's unchecked.
Checked line items are available to Movie Maker and unchecked ones are not.
Before the compatibility feature, users of versions 1 and 2.0 of Movie Maker needed to manually search a system to find the codecs that were problems and turn them off by unregistering them... or renaming the .ax file so Movie Maker didn't find it. 
This website page of Microsoft says Movie Maker 2.1 automatically turns off video and audio filters that are known to cause issues in Windows Movie Maker... and you also have the option of selecting which filters you want to turn on or off via the compatibility list.
The 'Restore all defaults' button at the bottom of the compatibility tab resets the list to the last known good settings. That's a list in the C:\Program Files\Movie Maker\Shared\Filters.xml file. It has a couple hundred 'trusted' filters and 6 'excluded' ones. If any of those 6 are on your system, they are unchecked by default.
  • Divx AntiFreeze
  • InterVideo Audio Decoder
  • ffdshow MPEG-4 Video Decoder
  • DSH YUY2 Bicubic Video Resizer
The 6 excluded items are the same in XP and Vista. The list of 6 hasn't changed in almost 4 years. During that time I've added many problem codecs to my website's list... something tells me the list of problem items in the filters.xml file isn't being maintained and you'll need to turn selected items off yourself.

The compatibility list on a new system, at least on a Vista one, has no entries before the OEM or user starts adding software that includes codecs. The composite picture below shows the current state of the compatibility lists on three of my computers. It shows how the list grows over time as software is added.
  • The 2+ year old XP Media Center Edition laptop has 65 items in the list. I'm running with them all unchecked... my projects open quicker and editing is smoother... but sometimes I can't open a source file because the right codec isn't available to Movie Maker, not until I check the line item. It's a matter of knowing which item to check.
  • The 7 month old Vista Home Basic laptop has 15 items in its list. I'm running with them all available to Movie Maker except the ffdshow Audio Decoder which was involved in my only crashes of MM6 to date. I installed it to use Xvid compressed files. I don't have ffdshow on my XP system... MM2.1 on it uses an Xvid codec.
  • The Vista Ultimate RC1 beta software that I run on a desktop system is my cleanest installation. At this time it has no codecs in the compatibility list.
Compatibility List - Collage
To easily switch all line items in the list on or off...
With all the items checked, you can easily uncheck a few... and if they are all unchecked you can just as easily check a few.

Separating the Codecs that Act Up
The compatibility list lets you separate Movie Maker from a codec that gets involved in a crashing or hanging app. It's easy to uncheck an item once you know which one it is. We need to explore that a bit.
Sometimes the geekie computer language of an error message doesn't correlate with the usual words in English... or whatever language your system uses.

Xvid Clip on a System that doesn't have a Video Codec
Codec NeededIf you need another codec, GSpot is the tool to help you decide which one.
As I was writing this newsletter, an email came in from Frank, the Spokane radio guy, who uses a Samsung PMP Digimax i6 6 Megapixel camera to shoot video files in avi format. He'd been using his clips in MM2.1 for a long time, but found they wouldn't work in MM6 on his new Vista computer.
He hasn't brought up the subject of codecs to his radio audience, but he's seeing the need to understand the subject a bit for his personal video work.
He sent a sample clip, a perfect example of a file that doesn't have an installed video decoder. It imports into MM6 and acts like an audio file. It acted the same way on my squeaky clean Vista Ultimate system as it did on Frank's new Vista system. 
Here's a snapshot of what GSpot shows on my Vista Ultimate system. The audio is MPEG and I have a codec to play it... that's why you hear it in MM6. But the video is compressed with an Xvid codec, which isn't installed.... the reason you can't see it.
The file works OK in MM2.1 on my XP and Vista Home Basic laptops. Xvid files are pretty common and seem to be growing in popularity. I'd been running for years in XP with a old version of an Xvid decompressor, and had written a newsletter last August about the ffdshow codec (see newsletter #164) which can decompress Xvid files.
I returned an email to Frank with the link to download the ffdshow codec and things worked well. It was the key to making his new Vista system use the files as he did in XP. And it was key to him taking more of an interest in the subject of codecs. He knows that many of his listeners will find themselves in the same situation.

Xvid Clip On an XP Laptop with a Divx Codec
XVIDI'll focus on this Xvid compressed avi file and the ffdshow codec to illustrate what happens when you don't have an appropriate codec installed, such as on my Vista Ultimate system... and when you do have one installed.
This picture of the file open in GSpot is on my XP laptop running MM2.1. Movie Maker does its thing with video clips, and crashes or hangs to let you know it doesn't like a codec, but when things go well it doesn't have a feature that tells you what its using.
GSpot has buttons at the lower left to give you some ideas of what's happening. The GSpot Vid/Aud buttons are to test the video and audio codec possibilities in non-Microsoft software. The MS A/V buttons are to test what happens in Microsoft apps.
The snapshot shows the rendering is OK in Microsoft apps using the DivX Decoder Filter
When software uses codecs, it picks the best of what's available... we hope. Sometimes the best doesn't work too well, and gets you into crashes or other issues when trying to edit a project or save a movie.

Xvid Clip on a Vista Home Basic Laptop with ffdshow Codecs
Xvid-VistaHomeBasicLet's see what GSpot shows on the Vista Home Basic system... checking the same Xvid file.
I don't have the DivX Decoder Filter installed on this system, but I have ffdshow, which it uses instead.
If you check my compatibility list on this system, you'll see that the ffdshow audio decoder is unchecked to stop it from working with Movie Maker.... due to it being involved in MM6 crashing.
Movie Maker is using ffdshow for the video part of the file... it won't show it if I take ffdshow out of the picture. But the audio of the file plays with or without ffdshow.
GSpot runs outside of Movie Maker, so it's checks and tests show what it says are 'proposed codec solutions and tests'... it's not like Movie Maker has to follow the suggestions of GSpot.

This is more than enough to break the ice on this series about codecs. Let's sum it up.

Conclusion and Closing... and What's Next?
We'll explore the subject some more in future issues in this series, with no particular schedule and with other newsletter topics between them.
Have a great week....