FOURCC.org - Video Codecs and Pixel Formats

How do I manually transfer codecs between PCs?

This process makes a couple of assumptions and may not work in all cases. It does, however, work often enough to be worth mentioning here. This is, however, intended as a last resort measure to be used in cases where you can't find an original software package to download or buy that includes the required codec. Note that this procedule may infringe upon the license agreements for some codecs so make sure you are allowed to make copies before you do this!

Assumptions:

  1. You know how to use a text editor and can navigate Windows directories.
  2. You know the FOURCC of the codec that you need.
  3. This codec is installed on one of the PCs you have access to (the source machine) and you can play AVIs which use this codec on that machine.
  4. The codec you would like to move consists of only driver files that are referenced in SYSTEM.INI and does not reply upon additional files or registry entries.

Instructions:

I'll take the example of trying to transfer the codec for FOURCC IV32 between a couple of machines. This is one of the Indeo codecs shipped as standard with Windows so you should never have to move it (I've not actually verified that this process works for IV32!) but it's a good one to use for illustration since the same driver supports several formats. Examples below are taken from my copy of SYSTEM.INI on Windows 98. See the notes at the end if you are trying to do this on XP or NT.

1. On the source machine, edit the file C:\WINDOWS\SYSTEM.INI and search for the FOURCC of the codec you want to move. You should find this in either the [drivers] or [drivers32] section of the file in a line that starts VIDC.<codec fourcc>. If you find the same FOURCC mentioned in both places, note both cases.

[drivers]
wave=mmsystem.dll
midi=mmsystem.dll
VIDC.MSVC=msvidc.drv
VIDC.IV32=ir32.dll
VIDC.IV31=IR32.dll
VIDC.MRLE=MSRLE.drv
VIDC.RT21=ir21_r.dll
VIDC.YVU9=ir21_r.d ll
wavemapper=*.drv
MSACM.imaadpcm=*.acm
MSACM.msadpcm=*.acm

[drivers32]
VIDC.IV41=ir41_32.ax
vidc.CVID=iccvid.dll
VIDC.IV31=ir32_32.dll
VIDC.IV32=ir32_32.dll
vidc.MSVC=msvidc32.dll
VIDC.MRLE=msrle32.dll
msacm.lhacm=lhacm.acm
msacm.msg711=msg711.acm
MSACM.MSNAUDIO=msnaudio.acm
msacm.msg723=msg723.acm
vidc.M263=msh263.drv
vidc.M261=msh261.drv
msacm.l3acm=l3codeca.acm
VIDC.VDOM=vdowave.drv
VIDC.MPG4=msscmc32.dll
vidc.vivo=ivvideo.dll
msacm.vivog723=vivog723.acm
msacm.voxacm119=vdk32119.acm
VIDC.TR20=tr2032.dll
VIDC.UCOD=clrviddd.dll
VIDC.IV50=ir50_32.dll
msacm.iac2=C:\WINDOWS\SYSTEM\IAC25_32.AX
MSACM.voxacm118=vdk32118.acm
MSACM.NSPAC=nspac32.acm
MSACM.NSX83=nsx83p32.acm
VIDC.UYVY=btvvc32.drv
VIDC.Y41P=btvvc32.drv
VIDC.BT20=btvvc32.drv
MSACM.imaadpcm=imaadp32.acm
MSACM.msadpcm=msadp32.acm
MSACM.msgsm610=msgsm32.acm
MSACM.trspch=tssoft32.acm

 

2. Note the section(s) you found the entry/entries in ([drivers] or [drivers32]) and the name of the driver file(s) which appears after the "=" in the line you found. Also note down any other lines in the same section that mention the same driver file name. In this case IV32's driver (ir32.dll or ir32_32.dll) also supports the IV31 format too.

[drivers]
VIDC.IV32=ir32.dll
VIDC.IV31=IR32.dll

[drivers32]
VIDC.IV31=ir32_32.dll
VIDC.IV32=ir32_32.dll

Driver files are ir32.dll and ir32_32.dll for FOURCC IV32. These drivers also handle the IV31 format.

3. Transfer the driver files you found in step 2 to the machine on which the codec is to be installed. Generally you will find the files on the source machine in its c:\windows\system directory. Ensure that you put them in the same place on the target machine. In this example, I would copy c:\windows\system\ir32.dll and c:\windows\system\ir32_32.dll to the target machine's c:\windows\system directory.

4. Edit the target machine's system.ini file and add the same lines you noted from the source machine in step 2. Make sure you put the correct VIDC lines beneath the correct [drivers] or [drivers32] section.

5. Save the system.ini file then try playing the offending AVI on the target machine. If it still doesn't work, reporting that it can't find the codec, try rebooting and play the file again. If it reports that it can't find a required file (presumably a DLL of some sort), find this file on the source machine, copy it to the target and retry until these errors go away. If, after this, things still don't work then you should probably give up and try other means to get hold of the required codec (contact the owner and ask were you can get it). Another option is to transcode the AVI to a more common format. Microsoft's VIDEDIT tool allows this and you will find a link to it from the

Notes for Windows XP, 2000 and NT users

I am told that the very same procedures described above apply except that ,in Windows XP, 2000 and NT the entries for the codecs are not found in SYSTEM.INI but, instead, are in the registry under:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32

Play with the registry at your own risk! I have not verified the process on versions of Windows later than 98.