Add a "Right-click on a .WAV file, Convert to MP3" extension to Explorer

I created a key in the Windows registry:

HKEY_CLASSES_ROOT\*\Shell\Convert to MP3\command

with:

"D:\tools\ffmpeg.exe" -i "%1" -acodec libmp3lame -vn -ar 44100 -ac 2 -ab 256k "%1.mp3"

It works, except that the filename is not exactly what I want:

Input: test.wav, Output: test.wav.mp3

whereas I'd like the output filename to be test.mp3.

I also tried with:

"D:\tools\ffmpeg.exe" ... "%~n1.mp3"

like in this answer, but it doesn't work: the output is %~n1.mp3 then!

How to remove the original extension like this, and replace by .mp3?

PS: I'm looking for a solution without involving a .bat file, but only the registry. If not possible, it's ok to use a bat file.


Assumed that ffmpeg.exe is included by path variable, use

cmd /q /c for %%I in ("%1") do ffmpeg -i %%I -acodec libmp3lame -vn -ar 44100 -ac 2 -ab 256k "%%~nI.mp3"
as one-liner without bat file.

Here is a solution with a .BAT file (don't know if it's possible without a BAT file). The key is to use %~n1.mp3, as explained here.

File ____LameMP3me.bat:

"D:\Documents\software\____PORTABLE\____useful-tools\ffmpeg.exe" -i %1 -acodec libmp3lame -vn -ar 44100 -ac 2 -ab 256k "%~n1.mp3"

In HKEY_CLASSES_ROOT\*\Shell\Lame MP3 me!\command:

"D:\Documents\software\____PORTABLE\____useful-tools\____LameMP3me.bat" "%1"