Добавить расширение "Щелкните правой кнопкой мыши на файле.WAV, конвертировать в MP3" в проводнике.
Я создал ключ в реестре Windows:
HKEY_CLASSES_ROOT\*\Shell\Convert to MP3\command
с:
"D:\tools\ffmpeg.exe" -i "%1" -acodec libmp3lame -vn -ar 44100 -ac 2 -ab 256k "%1.mp3"
Это работает, за исключением того, что имя файла не совсем то, что я хочу:
Входные данные: test.wav
, Выход: test.wav.mp3
тогда как я хотел бы, чтобы выходное имя файла было test.mp3
,
Я также попробовал с:
"D:\tools\ffmpeg.exe" ... "%~n1.mp3"
как в этом ответе, но это не работает: вывод %~n1.mp3
затем!
Как удалить оригинальное расширение, как это, и заменить на.mp3?
PS: я ищу решение без участия файла.bat, а только с реестром. Если это невозможно, можно использовать файл bat.
3 ответа
Предполагается, что ffmpeg.exe включен в переменную пути, используйте
cmd /q /c для %%I in ("%1") do ffmpeg -i %%I -acodec libmp3lame -vn -ar 44100 -ac 2 -ab 256k "%%~nI.mp3"как однострочник без файла летучей мыши.
Вот решение с файлом.BAT (не знаю, возможно ли это без файла BAT). Ключ должен использовать %~n1.mp3
, как объяснено здесь.
файл ____LameMP3me.bat
:
"D:\Documents\software\____PORTABLE\____useful-tools\ffmpeg.exe" -i %1 -acodec libmp3lame -vn -ar 44100 -ac 2 -ab 256k "%~n1.mp3"
В HKEY_CLASSES_ROOT\*\Shell\Lame MP3 me!\command
:
"D:\Documents\software\____PORTABLE\____useful-tools\____LameMP3me.bat" "%1"
Вместо взлома реестра вы можете просто поставить .bat
файл (или .lnk
файл, указывающий на это) в %APPDATA%\Microsoft\Windows\SendTo
,
Вот решение cygwin + bash для решения проблемы расширения файла, требующее ровно одну дополнительную строку кода благодаря https://www.tldp.org/LDP/abs/html/string-manipulation.html
Вы бы начали это с c:\cygwin\bin\bash.exe <scriptname> <filename>
#!/bin/bash
FILE_NAME="${1%.*}"
"/cygdrive/d/tools/ffmpeg.exe" -i "\"$1\"" -acodec libmp3lame -vn -ar 44100 -ac 2 -ab 256k "\"${FILE_NAME}.mp3\""
#keep the console window open, uncomment if not necessary
read