탐색기에 ".WAV 파일을 마우스 오른쪽 버튼으로 클릭하고 MP3로 변환" 확장명을 추가하세요.

탐색기에 ".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로 바꾸는 방법은 무엇입니까?

추신: .bat 파일은 포함하지 않고 레지스트리만 포함하는 솔루션을 찾고 있습니다. 가능하지 않다면 bat 파일을 사용해도 괜찮습니다.

답변1

ffmpeg.exe가 경로 변수에 포함되어 있다고 가정하고,

cmd /q /c("%1")의 %%I에 대해 do ffmpeg -i %%I -acodec libmp3lame -vn -ar 44100 -ac 2 -ab 256k "%%~nI.mp3"
박쥐 파일 없이 한 줄로 작성됩니다.

답변2

다음은 .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"

답변3

레지스트리 해킹 대신 .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

관련 정보