Sunday, June 29, 2008

Enabling Fraunhofer IIS MPEG Layer-3 Codec (Professional) in Windows Vista / Windows Server 2008

This article is a guide on how to enable Fraunhofer MP3 ACM codec in Windows Vista / Windows Server 2008.

MP3 Logo

Microsoft says in KB937141 that we are not allowed to produce MP3 using Fraunhofer IIS MPEG Layer-3 ACM codec, and that’s because of licensing restrictions and Microsoft’s problem with Fraunhofer. If we need to encode our favorite MPEG-2 files to AVI (DivX + MP3) using VirtualDub, we need to solve this problem. VirtualDub doesn’t have its own encoders, so it relies on Windows Audio Compression Manger (ACM) codecs for audio encoding purposes. The most idiotic solution to fix codec problems is to install a codec pack, like K-Lite. Some might say what about LAME ACM, it’s free. But the answer is LAME ACM produces asynchronous audio over video even in CBR mode, when used in VirtualDub.

MP3 ACM Restrictions in Windows Vista / Windows Server 2008

By default both advanced (l3codeca.acm) and professional (l3codecp.acm) ACM codec files are installed in system32 folder of Windows Vista / Server 2008, but the advanced is activated rather than professional, and that means we’re stuck to low-quality 56 kbps monaural audio channels, which I can’t tolerate personally. So we need to activate the professional edition (l3codecp.acm).

Automated Fix—Chortkeh Windows Vista Fix for Fraunhofer IIS MPEG Layer-3 Codec

I’ve made a command-line script patch to enable Fraunhofer IIS MPEG Layer-3 ACM Codec in Windows Vista / Windows Server 2008. Download and run the CMD patch file. Because it needs administrative privileges, it’s needed to be run as administrator when you’re not logged in as administrator.

Download Link
  • Download Chortkeh Windows Vista Fix for Fraunhofer IIS MPEG Layer-3 Codec by Komeil Bahmanpour
Fixing by Yourself
Registry Changes Required for the Activation of Fraunhofer IIS MPEG Layer-3 Codec (Professional)
  1. In HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc remove the whole name and data for “C:\Windows\System32\l3codeca.acm”, then create a REG_SZ named “l3codecp.acm” with a value of “Fraunhofer IIS MPEG Layer-3 Codec (professional)”.
  2. In HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32 change the value for “msacm.l3acm” from “C:\Windows\System32\l3codeca.acm” to “l3codecp.acm”.
Other Registry Keys to Check Just in Case

Although the following keys are set in Windows by default, you might like to investigate them personally:

  • HKLM\SOFTWARE\Microsoft\AudioCompressionManager\DriverCache\msacm.l3acm\aFormatTagCache: 0100000010000000550000001e000000
  • HKLM\SOFTWARE\Microsoft\AudioCompressionManager\DriverCache\msacm.l3acm\cFilterTags: 0
  • HKLM\SOFTWARE\Microsoft\AudioCompressionManager\DriverCache\msacm.l3acm\cFormatTags: 2
  • HKLM\SOFTWARE\Microsoft\AudioCompressionManager\DriverCache\msacm.l3acm\fdwSupport: 1
Registry Keys Dropped in Comparison to Windows XP / Windows Server 2003

The following keys were also defined in media resources section of Windows XP / Windows Server 2003, but they’re no longer required:

  • HKLM\SYSTEM\CurrentControlSet\Control\MediaResources\msacm\msacm.l3acm\Driver: l3codecp.acm
  • HKLM\SYSTEM\CurrentControlSet\Control\MediaResources\msacm\msacm.l3acm\Description: Fraunhofer IIS MPEG Audio Layer-3 Codec (professional)
  • HKLM\SYSTEM\CurrentControlSet\Control\MediaResources\msacm\msacm.l3acm\FriendlyName: Fraunhofer IIS MPEG Audio Layer-3 Codec (professional)
Windows 7 Support [Updated August 10, 2009]

The same patch as described above works fine with all editions of Windows 7 x86 (32-bit) and Windows 7 x64 (64-bit). Again please note changing Registry system configuration requires administrative privileges, so you need to be logged in as Administrator, or run my patch as administrator.

13 comments:

  1. Today I needed to enable the l3codecp.acm (Fraunhofer IIS MPEG Layer-3 Codec Professional) in Windows 7 x64 to encode something in VirtualDub 64-bit. The patch described above worked like a charm in Windows 7 64-bit.
    ReplyDelete
  2. This article give me help very much! Thanks author! Recently, I have been doing a program about of MPEG Layer-3,On OS xp, I found that 56 kbps monaural audio channels is max value which I can't tolerate too. On OS vista ,the MPEG Layer-3 is cann't connected! With this article,these problem had been solved easily! Thanks!
    ReplyDelete
  3. I solve my problem. Thank you for help!
    ReplyDelete
  4. I am running Vista. How would I go about getting this to work on it? I looked for those values but came up with nothing. Any help greatly appreciated
    ReplyDelete
  5. G. Mason, Download and run as administrator the patch referenced in the article.
    ReplyDelete
  6. I used the fix in windows 7 x64 Englisch version

    and i receive next massage.

    +----------------------------------------------------------------------------+
    ¦ Windows Vista Fix for Fraunhofer IIS MPEG Layer-3 Codec ¦
    ¦ Revision 3 ¦
    ¦ July 6, 2009 ¦
    ¦ Copyright (C) 2007-2009 Chortkeh. All rights reserved. ¦
    +----------------------------------------------------------------------------+

    Removing the advanced edition of Fraunhofer IIS MPEG Layer-3 Codec...
    ERROR: The system was unable to find the specified registry key or value.

    Activating the professional edition of Fraunhofer IIS MPEG Layer-3 Codec...
    The operation completed successfully.
    The operation completed successfully.

    Press any key to continue . . .

    I used it a few times and checked the registry but i can't detect a typo here however it is not working in Virtualdub

    Can anybody help me with this problem?

    thanks

    Peter
    ReplyDelete
  7. Peter, the Fix should work with Windows 7 x64 English. You need to check your Registry using RegEdit.exe to see if those keys are there.

    Also check the following registry key out:

    HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum\{33D9A761-90C8-11D0-BD43-00A0C911CE86}\85MPEG Layer-3

    It's where the ACM wrapper for the MP3 codec is defined as ACM ID 0x00000055 (85) and its friendly name is specified via FriendlyName string value.

    The ERROR message is shown because you "used it a few times." In fact, you shouldn't see the error during the first run of the Fix on an unfixed installation of Windows. Once patched, the ERROR message will be shown during further runs of the Fix, but meaning no harm.

    What you're looking for in VirtualDub is "MPEG Layer-3" (MP3 codec's FriendlyName) inside "Select audio compression."
    ReplyDelete
  8. Thx man - I've got Windows 7 x86 (Czech) and everything works perfectly.
    ReplyDelete
  9. I am using the Fraunhofer IIS MPEG Layer-3 Codec with two different programs, VirtualDub 1.9.9 and Freez Screen Video Capture 1.2.

    After installing the codec and successfully running the patch, VirtualDub finds the codec, but Freez does not. The registry reveals:

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

    Name: Type: Value:
    ac3filter.acm REG_SZ AC3Filter ACM codec
    ac3filter64.acm REG_SZ AC3Filter64 ACM codec
    C:\Windows\System32\l3codecp.acm REG_SZ Fraunhofer IIS MPEG Layer-3 Codec
    ff_vfw.dll REG_SZ ffdshow Video Codec
    l3codecp.acm REG_SZ Fraunhofer IIS MPEG Audio Layer-3 Codec (professional)
    wdmaud.drv REG_SZ SB Live! 24-bit
    xvidvfw.dll REG_SZ Xvid MPEG-4 Video Codec

    HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32
    msacm.l3acm REG_SZ l3codecp.acm

    The registry key:
    HKLM\SOFTWARE\Microsoft\AudioCompressionManager

    ...does not exist.

    The key:
    HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum\{33D9A761-90C8-11D0-BD43-00A0C911CE86}\

    ...exists, but is empty.

    Running Vista w/SP1, and SystemInfo shows the MPEG Layer-3 Codec (version 3.4.0.0) is installed properly.

    I have used the codec with Freez before, but I am having this problem since I had to reinstall everything, so my hard disk is relatively clean.

    Can you help?

    Thanks in advance, and thanks for a VERY helpful and informative site.
    ReplyDelete
  10. Michael,
    Maybe the problem is where your HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc contains two l3codecp.acm keys: One with the full path specified, and one without. This will probably cripple Freez. I'm confused, if you have run my patch (chortkeh-fix-mp3-codec.cmd), the patch would have successfully deleted the one with the full path (C:\Windows\System32\l3codecp.acm). I'm guessing you were neither logged in as Administrator, nor ran my patch as administrator.
    ReplyDelete
  11. Worked great!
    Many thanks
    ReplyDelete
  12. thanks alot!!!!! it solved. now i can see mpeg layer 3 at Sony Vegas pro 10e 64 bit
    thanks again

    regards RAMA
    ReplyDelete
  13. im sorry but now MPEG layer3 wont work in my sony vegas but i can see him in programm. also i cant see codec at hypercam.any way to reinstall MPEG layer3 or some fix?
    ReplyDelete







Copyright © 1999-2012 Komeil Bahmanpour. All rights reserved.


Reproduction is permitted provided that the source is acknowledged and a link is included to the relevant article.