Sunday, June 29, 2008

Enabling Fraunhofer IIS MPEG Layer-3 Codec in Windows Vista

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

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).

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”.

This patch does the same work. Because it needs administrative privileges, it’s needed to be run as administrator when you’re not logged in as administrator.

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)

2 comments:

Komeil Bahmanpour said...

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.

小天使 said...

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!

Post a Comment


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

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