
한 번에 하나의 트랙이나 디렉터리를 수행할 수 있는 Sound Converter와 같은 옵션이 있다는 것을 알고 있지만 디렉터리의 하위 디렉터리를 반복적으로 크롤링하고 모든 WMA를 MP3로 변환하는 도구가 있습니까?
나는 기본적으로 그것을 내 ~/Music에 놓아서 한 번에 하나의 하위 디렉터리를 수동으로 제공할 필요 없이 해당 작업을 수행하도록 하고 싶습니다.
답변1
설치하다사운드 변환기
Soundconverter
런처 또는 터미널에서 실행
기본 변환은 .ogg
이를 결과 유형 아래 mp3
로 변경하는 것입니다. 다음과 같이 MP3에:edit-> preferences
Format
폴더 추가를 클릭한 다음 음악 폴더를 선택하세요. 변환을 클릭하기 전에 위 기본 설정 구성에서 출력 폴더를 선택할 수 있습니다.
두 번의 클릭으로 이 작업이 완료되기를 바랍니다. :)
답변2
MPlayer가 이미 설치되어 있을 가능성이 높습니다. 또한 절름발이가 있는지 확인하십시오.
sudo apt-get install mplayer lame
그런 다음 이를 수행하는 두 가지 방법이 있습니다. 읽기 쉬운 버전과 짧고 지저분한 스크립트입니다.
모든 wma는 현재 디렉토리에 있어야 합니다. 다음을 포함하는 홈 디렉터리(~/)에 wmamp3이라는 파일을 만듭니다.
#!/bin/bash
current_directory=$( pwd )
#remove spaces
for i in *.wma; do mv "$i" `echo $i | tr ' ' '_'`; done
#remove uppercase
for i in *.[Ww][Mm][Aa]; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done
#Rip with Mplayer / encode with LAME
for i in *.wma ; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm -ao pcm:waveheader $i && lame -m s audiodump.wav -o $i; done
#convert file names
for i in *.wma; do mv "$i" "`basename "$i" .wma`.mp3"; done
#cleanup
rm audiodump.wav
chmod +x ~/wmamp3
실행 가능하게 만들기 위해
sudo cp ~/wmamp3 /usr/bin
경로의 유용한 곳에 표시하려면
변환을 실행하려면 "wmamp3"을 입력하세요.
짧고 더러운 버전(위와 정확히 동일함):
for i in *.wma ; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm -ao pcm:waveheader "$i" && lame -m j -h --vbr-new -b 160 audiodump.wav -o "`basename "$i" .wma`.mp3"; done; rm -f audiodump.wav
답변3
Mplayer와 Lame을 먼저 설치해야 합니다:
sudo apt-get install mplayer lame
그런 다음 스크립트(참조 페이지 ) 그리고 실행합니다:
#!/bin/bash
# By Marko Haapala
# converts wma to mp3 recursively. does not delete any static files, so
# cleanup and renaming is needed afterwards.
#
# requirements:
# lame - http://lame.sourceforge.net/download.php
# mplayer - apt-get install mplayer or http://www.mplayerhq.hu/design7/dload.html
current_directory=$(pwd)
wma_files=$(find "${current_directory}" -type f -iname "*.wma")
# Need to change IFS or files with filenames containing spaces will not
# be handled correctly by for loop
IFS=$'\n'
for wma_file in ${wma_files}; do
mplayer -vo null -vc dummy -af resample=44100 \
-ao pcm -ao pcm:waveheader "${wma_file}" && lame -m s \
audiodump.wav -o "${wma_file}".mp3
rm audiodump.wav
done
정확히 원하는대로 작동하는 것 같습니다. 원하는 품질 수준을 얻기 위해 lame 플래그를 조작할 수도 있다는 점을 명심하세요.
답변4
나는 이것이 약간 오래되었다는 것을 알고 있지만 David Futcher가 보여준 스크립트를 수정했습니다. 변경 사항은 다음과 같습니다.
/tmp
임시 wav 파일의 현재 폴더 대신 사용합니다 (이를 사용하여 USB 스틱의 파일을 변환할 때 속도가 크게 향상되었습니다).성공적으로 변환된 wma 파일을 제거하십시오.
여기있어:
#!/bin/bash
# By Marko Haapala
# converts wma to mp3 recursively. does not delete any static files, so
# cleanup and renaming is needed afterwards.
#
# Modified by V10lator
# to delete the wma files and to use /tmp for temporary files
#
# requirements:
# lame - http://lame.sourceforge.net/download.php
# mplayer - apt-get install mplayer or http://www.mplayerhq.hu/design7/dload.html
current_directory=$(pwd)
tmp_file=$(mktemp -t -u --suffix=.wav)
wma_files=$(find "${current_directory}" -type f -iname "*.wma")
# Need to change IFS or files with filenames containing spaces will not
# be handled correctly by for loop
IFS=$'\n'
for wma_file in ${wma_files}; do
mplayer -vo null -vc dummy -af resample=44100 \
-ao pcm -ao pcm:waveheader -ao pcm:file="${tmp_file}" \
"${wma_file}" && lame -m s "${tmp_file}" \
-o "${wma_file}".mp3 && rm "${wma_file}"
rm "${tmp_file}"
done