답변:
FFMPEG 와 String Manipulation 의 조합을 사용하십시오 .
mp3가있는 폴더로 변경하십시오.
cd mp3folder
한 가지 예는 간단한 "for"루프를 사용하는 것입니다.
for file in *.mp3
do ffmpeg -i "${file}" "${file/%mp3/ogg}"
done
큰 따옴표는 파일 이름의 공백이 '줄 바꾸기'로 취급되지 않도록합니다.
ffmpeg에는 코덱, 비트 전송률, 샘플 크기, 스테레오 / 모노 등의 변환에 포함 할 여러 옵션이 있습니다. 위의 기본 설정을 사용하는 가장 일반적인 변환입니다.
ffmpeg -i sound.mp3 -c:a libvorbis -q:a 10 sound.ogg
최고 품질 설정, 여전히 원본보다 눈에 띄게 악화. 기본 설정은 전혀 효과가 없었습니다 (Cygwin에서 저를 고소하십시오 :)),이 질문에는 좋은 정보가 있습니다 : superuser.com/questions/273797/convert-mp3-to-ogg-vorbis
경고 : MP3 및 OGG는 WAV 또는 FLAC와 달리 손실 이 많은 형식입니다. 이것은 사람의 귀에 들리지 않는 오디오 정보를 버려서 압축을 크게한다는 것을 의미합니다 ( 심리 음향학 [wikipedia] )
한 손실 형식에서 다른 손실 형식으로 인코딩 (트랜스 코드) 할 때 심리학 적으로 중복되는 비트의 대부분이 이미 사라 졌으므로 트랜스 코딩 품질이 저하되어 결과적으로 "청각 적"일 수 있습니다. 따라서 절대적으로 필요한 경우가 아니면 그러한 변환을 수행하지 않는 것이 좋습니다.
이 MP3에서 OGG 로의 변환을 수행하는 경우 소스 비트 전송률보다 높은 대상 비트 전송률 을 사용하여 아티팩트 (품질 저하) 가능성을 최소화 할 수 있습니다 . 예를 들어 MP3가 128kbps 인 경우 Ogg를 사용하십시오 (가변 비트 전송률 레벨) 7), 보통 ~ 200kbps 정도입니다.-q7
원하는 -q
것을 수행 해야하는 dir2ogg (@geirha가 언급 한 repos에서 사용 가능)에 옵션을 전달할 수 있습니다 .
avconv 에 gpl 프로그램을 사용할 수 있습니다. 예를 들어 쉘을 사용했습니다 (.mp3 파일이있는 폴더에서 실행).
#!/bin/bash
if hash avconv > /dev/null; then
for file in *.mp3
do avconv -i "${file}" "`echo ${file%.mp3}.ogg`";
done
else
echo "avconv not found"
fi
또는 avconv 설치를 검증하지 않고보다 간단한 버전 :
#!/bin/bash
for file in *.mp3
do avconv -i "${file}" "`echo ${file%.mp3}.ogg`";
done
ffmpeg
공식적으로 사용되지 않으며 avconv
대신 사용해야한다고 명시 적으로 언급합니다 .
문제가 해결 될 것 같습니다. http://www.perturb.org/display/entry/687/