Jump to content

HOWTO: Using FFDshow for transcoding MP3s with SS

Rate this topic

Recommended Posts

This is primarily for users who download low-bitrate recordings such as radio recordings, some [mp3] podcasts, or audiobooks.

If you have MP3s with a sampling rate other than 44.1kHz, converting the MP3 directly to atrac3 or atrac3plus formats may either not work at all or may introduce audible artefacts - on my system, SS's resampling mechanism causes sever aliasing distortion. Also, users with Gen2 HiMD units will discover that their native MP3 support will not play non-compliant files.

Another possible reason to use FFDshow in this way is if you want to pre-EQ tracks before putting them on any player that lacks a built-in EQ. Users with older NetMD models that lack EQ may find this useful [or not].

I personally have used this method to convert downloaded CBC radio programmes that are sampled at 11kHz. Direct conversion with SonicStage is not possible, and direct playback isn't either.

One [probably the most commonly used, or at least discussed] way around this is to convert the MP3 to WAV, open it in an editor, and resample it to 44.1kHz [followed by saving or re-encoding it]. This involves dealing with large WAV files, losing tag information during conversion, and having to sit through stages of processing and re-encoding afterwards.

Using this method, you can transcode your non-compliant MP3 inside of SonicStage in a single step without WAV files or external editors. This can be done both by converting files manually in your SS library or simply downloading them to your player with SS set to download at a specified bitrate.

As an example, your 32kbps / 11kHz MP3 can be made into a 48kbps atrac3plus track in one step, inside SS.

This way is not the only method that exists which lets you avoid WAV files. It's also possible to use conversion software such as dBPowerAmp to do this directly [and even re-encode to MP3] in a single step as well.

On with the show..

As the sourceforge page reads [spelling/grammatical errors and all], ffdshow is DirectShow and VFW codec for decoding/encoding many video and audio formats, including DivX and XviD movies using libavcodec, xvid and other opensourced libraries with a rich set of postprocessing filters.

Sadly, the maintainers of said official sourceforge page do not keep it updated. Most notably, the stable binary version of FFDshow on sourceforge is from 2002 and is known to cause conflicts with other codecs and software, so don't even touch that version. FFDshow's main official site is mostly up to date [as an open source project the changelogs there are the most complete].

The best place to actually get FFDshow from is free-codecs.com which carries up to date builds and I consider a fairly reputable source.

Before you actually do that, though - FFDshow is a tweaker's delight, and as such can be a plug&play user's nightmare. If you disable its support for codecs for which you already have functioning codecs you want to keep using, then nothing bad should come of having it installed. It's large number of options and filters [for both audio and video] can be enticing however, and those who don't know what they're getting into can quickly end up breaking video or audio playback on their PC by changing things they don't understand [and which nearly all other codecs don't provide any access to].

For the example here, I've recommended installing FFDshow as ONLY your MP3 audio decoder, leaving literally everything else on your system working as is. One of the graces of FFDshow, as an OSS package from people who actually care about users having control over their own system, is that the installer actually gives you options rather than simply railroading its way in [like RealPlayer].

I am updating from 2005-12-21 to 2006-02-03 [the versions are dated rather than numbered which I think it a sensible move] so I will screencap some things during the install to try and make this as clear as possible.

Note thet the screencaps are based on this specific version [2006-02-03] and subsequent versions of the installer may not look the same.

If you spot any errors in this, or if any of my language is horribly unclear, please point it out and this will be edited.

As a final note to this intro, maintaining your system is your responsibility, not mine. If this doesn't work for you, it's not my problem. If you install FFDshow and things don't work out for you, it's uninstaller does work and should return your system to the settings it had before you installed.

In other words, proceed at your own risk.

Step 1 - Installing

<blockquote>The free-codecs.com file is a .zip archive with a .exe installer in it. Unzip the archive and double-click the .exe installer.

Personal notes on installers: Yes, there may be a lot of info on those screens, but it's there for a reason. I tend to skip reading the length of the GPL 2 agreement, but the rest I do pay attention to. Simply clicking "Next" or "Yes" is the way, with any software installation, to cause problems on your system.

Use some common sense, people. Read the notices in all installers. You will save yourself a great deal of hassle by doing so.

If you want to play with it and its myriad options, go ahead, but don't come griping at me if you cause yourself problems playing with things you don't understand. Don't take that as an assumption that everyone reading this is stupid, either. I'm just being bluntly honest. If you don't know what it does, don't mess with it.

The first thing it asks is for installation language. Simple enough. Next comes an intro screen for the installer, followed by a GPL v2 licence agreement, also simple enough.

The next screen is "Choose Components":<blockquote><img src="http://dexotaku.ath.cx/linked/md.org/2006-02-09/004235.png">

For our purposes, "Directshow Filter" [which is always selected and can't be changed, I know] and "VFW interface" should be checked.

Documentation might be useful for ubergeeks, but it's up to you whether you want it or not.

Incidentally, the VFW bit will enable the opening of any video format both supported by FFDshow and enabled in its config in any Video For Windows-capable application, including editors such as Sony Vegas which don't come with built-in support for XviD [as an example].

The rest of the options, "AVISynth scripts serving" and "Application Plugins" should only be installed if you use the related programs. If you don't know what the are, disable them for the install. They shouldn't do any harm, but may cause strange message in the installer if you try to apply, say, the AVISynth plugin when you don't have AVISynth on your system.</blockquote>

Hit "Next"

The next screen is "Video Decoder" and presents codec options for video:<blockquote><img src="http://dexotaku.ath.cx/linked/md.org/2006-02-09/005051.png">

For the purposes of this exercise [using FFDshow for audio DSP], you can leave everything here unchecked.

If you wish to play with its video support, my advice is: [and read this carefully, even if there are a lot of words]

* any format that you're unfamiliar with, leave UNCHECKED. You can always enable it later or install another codec for it if you need to.

* any format that you ARE familiar with, and know you can already play on your system, and are satisfied with the current playback of, leave UNCHECKED. [si fractum non sit, noli id reficere / If it ain't broke, don't fix it]

* otherwise if you want to try out its codecs, go ahead; I've honestly never had problems with them, except of course for with other codecs [PowerDVD ones for instance] that hijack video decoding by not respecting codec priorities.

Note: the checkbox at bottom for "Set for all users" might or might not be a good idea depending on how your system is set up. If you're going to install with everything disabled, check this box to eliminate any possibility of codec conflicts when logged into other local user accounts.</blockquote>

When you've made your choices, hit "Next"

The next screen is "Audio Decoder":<blockquote><img src="http://dexotaku.ath.cx/linked/md.org/2006-02-09/010134.png">

I tend to select everything here, but for the purpose of this exercise, uncheck all boxes but "MP3".

If you wish to play with its audio support, follow the same suggestions as I made above. Use common sense.

Same note applies for the "Set for all users" checkbox.</blockquote>

Hit "Next"

The next screen is "Video Filters":<blockquote><img src="http://dexotaku.ath.cx/linked/md.org/2006-02-09/010710.png">

For our purposes here, leave all boxes unchecked. If you had a previous version of FFDshow installed, it might show different options here than what is listed in the screencap.</blockquote>

Hit "Next"

The next screen is "Audio Filters":<blockquote><img src="http://dexotaku.ath.cx/linked/md.org/2006-02-09/010845.png">

For our purposes here, leave all boxes unchecked. If you had a previous version of FFDshow installed, it might show different options here than what is listed in the screencap. </blockquote>

Hit "Next"

If you haven't selected to install plugins,

it should proceed directly to "Choose Install Location":<blockquote><img src="http://dexotaku.ath.cx/linked/md.org/2006-02-09/011004.png">

As usual, use common sense. There's nothing wrong with the default, but if you like to keep things organised your own way, feel free to change it. If you "lose" where you've installed it to at some point, please feel free to slap yourself on the forehead for not paying attention.</blockquote>

Hit "Next"

Next is "Choose Start Menu Folder":<blockquote><img src="http://dexotaku.ath.cx/linked/md.org/2006-02-09/011146.png">

Yet again, use common sense. Put it somewhere you know you can find it later.

As changing options for the audio codec is part of our goal, pay attention to where you're making the icons, as the config utilities will be in that folder, and you will need them.</blockquote>

Click "Install" and when it's finished complete the installation normally [i.e. hit "Next" then "Finish"].</blockquote>

You have now installed FFDshow, and if you took the advice regarding "our purposes" from above, it should be enabled to do MP3 decoding only.

Step 2 - Check that it's actually working<blockquote>Open SS and try to play any MP3 in your library.

When you do so, a tray icon [down by the clock on the Windows taskbar]

should appear that looks like this:<blockquote><img src="http://dexotaku.ath.cx/linked/md.org/2006-02-09/FFDshow-audio-tray-icon.png"></blockquote>

Note that when the codec isn't in use, the tray icon goes away. This is not Realplayer, Quicktime, or anything that installs background programs permanently [i.e. tray icons].

If you enabled any of its video codecs, another [grey] icon should also appear.

While either is active, you can double-click it to get to the configuration utility for either audio or video. This lets you change settings on the fly.

If you put your mouse pointer over it while something's playing or paused, it should show you its decoding settings:<blockquote><img src="http://dexotaku.ath.cx/linked/md.org/2006-02-09/FFDshow-audio-mouseover.png"></blockquote>

If you don't see the tray icon, and still hear audio while playing an MP3 in SS, then we're finished here and it's simply not working. I am not going to even attempt to guess what other codec you have installed that is overriding it, or whether it respects codec priorities or not. If someone wants to write an FAQ or HOWTO about how to make sure a specific stream type goes to a specific codec, even with misbehaving codecs installed, then I wish them well. I'm not doing that here, though, as there are too many possible reasons for this to happen for me to address in a HOWTO about something else completely.</blockquote>

Assuming that it's running though, let's move on.

Step 3 - Using FFDshow's audio filters<blockquote>Find the start-menu folder that the installer created, and copy the link for "Audio decoder configuration" to your desktop [or somewhere else easy for you to access].

"Run" the link to open the config utility:<blockquote><img src="http://dexotaku.ath.cx/linked/md.org/2006-02-09/012213.png">

I honestly don't know what page will open first [it opens to the last one I had displayed], so I'm assuming the first page will open [Codecs].

I also know that because I've been using FFDshow for so long, my shown filters [pictured in the list on the left of the windowcap] is shorter than the default.

At this point NONE of the filters should be checked in that list.</blockquote>

Click on "Output" in the list on the left:<blockquote><img src="http://dexotaku.ath.cx/linked/md.org/2006-02-09/012541.png">

For compatibility with SonicStage, make sure only "16 bit integer" is checked, as pictured here.

Side-note: you can check the other boxes as well and it should still work, but I'm being paranoid and assuming that forcing its behaviour is the easiest way to avoid potential problems. Having "16 bit integer" unchecked is the only permutation that should cause a problem, so don't do that.</blockquote>

Click on "Processing" in the list on the left:<blockquote><img src="http://dexotaku.ath.cx/linked/md.org/2006-02-09/013021.png">

Under "Allowed sample formats..." I'd suggest leaving the two 32-bit options checked, and "16 bit integer" unchecked, as I have here. [Why would anyone do DSP at a precision of only 16 bits?]

Under "Floating point to integer conversion" you can choose to enable dither and noise shaping. I tend to leave it on because even just using EQ means at least 1 bit-depth conversion plus the DSP itself. If you don't understand dither, look it up for an idea of why it's used.

Having dither enabled and using higher bit-depths for processing will mean that more CPU gets used in the process. This shouldn't be anything to worry about unless your computer is older than a 1GHz intel or AMD model [i.e. slow enough to notice the increased processing].</blockquote>

TO USE THE EQUALIZER, effectively pre-emphasising anything going through FFDshow,


This can be useful for EQing music before transcoding to atrac3 for older NetMD units that have no built-in EQ, as an example.

Click on the word EQUALIZER itself to see its settings:<blockquote><img src="http://dexotaku.ath.cx/linked/md.org/2006-02-09/013659.png">

Here we see my speaker/room-correction curve.

You can set the EQ however you wish to here in order to tailor the sound to your tastes or make up for "coloured" headphones.

I'm not going to suggest any particular settings, but I would suggest listening to your MP3s with SS and your portable 'phones, having this config open, and setting the EQ for the 'phones.

Note that you will likely have to experiment a bit with the EQ as different ambient environments outside of wherever your computer is are likely to make you want different EQ.

It's not a perfect way of doing things, but it's better than having no control over it at all.

Side-note: I haven't read the documentation to find out what "SuperEQ" means, but I'd guess that it uses higher bit-depth processing by default, or possibly a lower Q [width] for each filter. I leave it on because with my room EQ compensation is seems to do a slightly better job than without.</blockquote>



This can be useful if you're try to transcode MP3s that have a sampling rate other than 44.1kHz to any other format with SS. In particular, radio recordings, some podcasts [in MP3 format], and audiobooks may use sampling rates such as 11 or 22kHz. Chunks of audio picked out of DVD soundtracks may also be sampled at 48kHz.

None of these rates will play natively on any netMD or HiMD, so resampling is required to get that audio onto your player and have it work.

Click on the word RESAMPLE itself to see its settings:<blockquote><img src="http://dexotaku.ath.cx/linked/md.org/2006-02-09/020147.png">

Set it to resample any audio decoded by FFDshow to MD, NetMD, and HiMD's standard rate of 44.1kHz as seen here.

You can experiment with the MODE setting if you like, but the default works and sounds fine for voice recordings.</blockquote>

Note that you can add other filters and play with them as well, such as reverb</blockquote>

Step 4 - Transcode your audio with SS<blockquote>This is obvious enough: go to your SS library, right-click on any MP3 that you want to transcode to atrac3/plus, and select "Convert Format" from the context menu. Select the a3/+ bitrate you want, and proceed. Transferring as-is to any a3/+ player after this should download a usable file in whatever format you've chosen.

Alternately, you can just try transferring the track to your player. Depending on how you've set up SS, it will either ask what rate to use, convert automatically to the default rate or the one you've chosen, or [in the case of 2nd-gen players] it might just try to download the track as-is, which can lead to the "this MP3 might not play on your unit" message if the sampling rate isn't 44.1kHz.

If everything is working correctly, you should see that tray icon appear while SS does its transcoding, and the resulting a3/+ tracks should play without any difficulty.

Please note that the processing done by FFDshow does take time, and if your system is slow you might notice a speed difference when transcoding MP3s with processing enabled. I don't notice any speed difference on my Athlon XP 2500+.</blockquote>

Step 5 - Enjoy the spoils<blockquote>You should now be able, depending on how you've set it up and what you need it for, to use FFDshow to transcode non-compliant MP3s in a single step without resorting to WAV files or external editors.</blockquote>

Closing Step - Turn off all processing when it's not needed<blockquote>This may not seem obvious to many, but EQ and resampling, along with bit-depth conversions and dither, all use CPU time [not to mention having an effect on sound quality].

When you're not using the EQ or resampling to transcode with SS, turn them off by going back to the Audio Decoder Configuration used above and unchecking the boxes beside the relevant filters.

Leaving them on will mean either wasting CPU on unnecessary resampling, or applying EQ that's supposed to be for your headphones to your speakers, et al.

Depending on how your system is set up, FFDshow will be the codec used for MP3 playback from DirectShow programs including Windows Media Player. Some codecs will override it in some programs [Media Player Classic has its own as does VLC Player], and other will just ignore it [PowerDVD and WinDVD usually do].

Where it will and won't be the codec used I have no way to predict. Also, installing codec packs [which you simply shouldn't] and other software with MP3 system-codec support after FFDshow may override the settings you just established by installing FFDshow.</blockquote>

Mods: if someone would please copy the images and change them to attachments [i can't] it would be appreciated. Please also erase this line of text if you do so.

"If you disable its support for codecs for which you already have functioning codecs you want to keep using," .. oh my doG, where did I come up with that? Call the grammar police!

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
  • 11 months later...

I didn't try it yet....But since FFdshow can decode dozens of formats, another trick that might work is using Ffdshow for transcoding files to Atrac from formats that Sonicstage is not supposed to read. I don't have time now, but when i'm back home later, I'll try to import files that are not genuinely mp3 (ogg and flac, instead), properly renamed them as mp3, to see if Sonicstage notices the difference. If it doesn't, it wouldn't be any other problem to transcode them to Atrac3plus, would it?

If anybody else does want to give it a try, I'll be glad to read any news :)

[edit] I tried it....didn't work though :(

Edited by timonoj
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...