ogg 및 mp3 형식으로 변환해야하는 수백 개의 .wav 파일이 있습니다. Audacity 또는 다른 명령 줄 도구에서 일괄 처리 로이 작업을 수행 할 수있는 방법이 있습니까?
ogg 및 mp3 형식으로 변환해야하는 수백 개의 .wav 파일이 있습니다. Audacity 또는 다른 명령 줄 도구에서 일괄 처리 로이 작업을 수행 할 수있는 방법이 있습니까?
답변:
유닉스 계열 (Linux, OSX 등) 명령 줄에서 ffmpeg를 다음과 같이 사용할 수 있습니다.
for f in *.wav; do ffmpeg -i "$f" -c:a libmp3lame -q:a 2 "${f/%wav/mp3}" -c:a libvorbis -q:a 4 "${f/%wav/ogg}"; done
이것은 디렉토리의 모든 WAV를 하나의 MP3와 하나의 OGG로 변환합니다. 대소 문자를 구분합니다 (위의 명령은 .WAV가 아닌 .wav로 끝나는 모든 파일을 변환합니다). 대소 문자를 구분하지 않는 버전을 원하는 경우 :
for f in *.{wav,WAV}; do ffmpeg -i "$f" -c:a libmp3lame -q:a 2 "${f%.*}.mp3" -c:a libvorbis -q:a 4 "${f%.*}.ogg"; done
디렉토리의 모든 WAV를 재귀 적으로 변환하려면 (즉, 현재 디렉토리의 모든 WAV 및 현재 디렉토리의 모든 디렉토리) 다음을 사용할 수 있습니다 find
.
find . -type f -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -c:a libmp3lame -q:a 2 "${0/%wav/mp3}" -c:a libvorbis -q:a 4 "${f/%wav/ogg}' '{}' \;
( ffmpeg로 find의 작동 구현을 찾은 것에 대한 그의 응답 에 대한 Dennis의 최대 존경 )
find를 사용하여 대소 문자를 구분하지 않고 검색하려면 -iname
대신을 사용하십시오 -name
.
참고 사항 -q:a
: MP3의 경우 품질 범위는 0-9입니다. 여기서 0은 최고 품질이며 2는 대부분의 사람들이 CD 오디오를 변환하기에 충분합니다. OGG의 경우 1-10으로 10이 최고이며 5는 대부분의 사람들이 CD 품질에 해당합니다.
find . -type f -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -c:a libmp3lame -q:a 2 "${0/%wav/mp3}"' '{}' \;
'
.
$ for f in *.wav; do ffmpeg -i "$f" -c:a libmp3lame -b:a 320k "${f/%wav/mp3}"; done
320kbps mp3 전용
ogg 및 mp3 용 인코더와 함께 foobar2000 을 사용할 수 있습니다 . 난 당신이 rarewares 에서 인코더를 찾을 수 있다고 생각합니다 .
아래 링크에서 ffmpeg를 다운로드하여 설치하십시오 : http://ffmpeg.zeranoe.com/builds/
아래 명령으로 배치 파일을 작성하고 실행하십시오.
echo converting *.wav to *.ogg
mkdir ..\Ogg
for /r %%i in (*) do ffmpeg -i %%i -acodec libvorbis ..\Ogg\%%~ni.ogg
변환 된 모든 * .ogg 파일은 .. \ Ogg 디렉토리로 복사됩니다.
SO에서 찾은 bat 파일을 약간 변경했는데, 이제는 노래 이름과 마찬가지로 파일 이름의 공백을 처리합니다. 이 bat 파일은 VLC 명령 줄 도구를 사용하여 .wav를 .mp3로 변환합니다. 그러나 wma-> mp3 등의 형식으로 변경할 수 있습니다 ...
@echo off
chcp 65001
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "delims=" %%f IN ('dir /b /s "YOUR_DISK:\Path\To\Your Music\That May contain Spaces\*.wav"') do (
set file1=%%~nf.mp3
echo "file :" !file1!
set fic1=%%f
echo "file : " !fic1!
CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" "!fic1!" --sout="#transcode{vcodec=none,acodec=mp3,ab=320,channels=2,samplerate=48000}:std{access=file{no-overwrite},mux=mp3,dst="""!file1!"""}" vlc://quit
)
echo .
echo conversion finished
pause
chcp 인코딩을 변경 (강조 문자 처리) ab는 비트 레이트 320입니다.