View Full Version : Playing MP3s using ffdshow in WMP 8/9/10/11
ENAJonas
15th January 2007, 09:32
I hope this hasn't been asked before (I did search a bit), but I notice that the only main difference between WMP Classic (and all other dshow players) & all the newer WMPs when I use ffdshow for nearly all decoding is that the newer WMPs will not use ffdshow for standalone MP3s no matter how I configure it. I investigated a bit and it seems that this is because the newer WMPs automatically use the ACM interface (as opposed to looking for filters) for standalone MP3s, and this means it's using the builtin Fraunhofer IIS codec (l3codeca.acm.) I see that on some ffdshow installations a file called ff_acm.acm gets installed, and I figured that if I could link that up somehow I might be able to get the newer WMPs to use ffdshow while still going through the ACM. Needless to say I tried some regedit changes in the Drivers32 key, such as "msacm.l3acm = ff_acm.acm", but changing anything renders the newer WMPs unusable for MP3s ("Audio Codec not installed".) Anyone have any ideas on this?
zambelli
15th January 2007, 11:52
The difference is that WMP uses WM Format SDK for all MP3 and ASF playback, while MPC uses DirectShow. There's no way to insert Ffdshow into the WMP playback graph for the simple reason that WMP doesn't use DShow for MP3 playback.
ENAJonas
15th January 2007, 20:27
Appreciate the help! I assume there's no workaround for this then? What is the purpose of ff_acm.acm then? Is it just for encoding?
Let me ask a different question. I was trying to figure this out because WMP chokes on a few MP3 AVIs for me. Whereas they open fine in MPC, in WMP it will only recognize the MP3 part of the AVI and attempt to decode the entire file as MP3 - ie for a 20 minute video it will show something like 3 hours of audio. And of course the audio then won't play correctly. So I figured this was probably due to the builtin Fraunhofer codec (what else could be different?). Is there any way to have WMP use a different ACM codec for MP3 than l3codeca.acm? And if so where can I find one?
Yong
15th January 2007, 22:56
The ff_acm.acm is only for decode some *adpcm file and some old audio codecs(a-law, mu-law and gsm).
You might wan to use MPC instead, because the fhg mp3 acm decoder(l3codeca.acm) is known to have problem wtih VBR mp3 file, as the problem you've encountered(wrong duration).
the mp3 probably was encoded by lame.
And no, l3codeca.acm is the only mp3 acm decoder(afaik).
zambelli
16th January 2007, 01:05
Whereas they open fine in MPC, in WMP it will only recognize the MP3 part of the AVI and attempt to decode the entire file as MP3 - ie for a 20 minute video it will show something like 3 hours of audio.
Is it displaying the video at all? If it's not, then your video codec is missing and the AVI parser is relying on something else (audio packets?) to determine the length of the video - incorrectly. AFAIK, MPC uses its own AVI parser and not the default DirectShow one, so that probably explains the difference.
You might wan to use MPC instead, because the fhg mp3 acm decoder(l3codeca.acm) is known to have problem wtih VBR mp3 file, as the problem you've encountered(wrong duration).
the mp3 probably was encoded by lame.
No, that's not entirely true. WMP/WMFSDK will use a Xing VBR header if it's present. Such a header is enabled by default in LAME, so 99% of LAME encoded MP3s should show the correct duration in WMP. However, if you explicitly disable that header, then certain amount of guesswork is required to figure out the MP3 length. I'm pretty sure this is a function of the MPEG parser, and not the MPEG audio decoder.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.