WMA 트랙 라이브러리를 MP3로 변환 하시겠습니까?


28

한 번에 하나의 트랙이나 디렉토리를 수행하기위한 Sound Converter와 같은 옵션이 있지만 디렉토리의 하위 디렉토리를 재귀 적으로 크롤링하고 모든 WMA를 MP3로 변환하는 도구가 있습니까?

기본적으로 ~ / Music을 느슨하게하고 수동으로 한 번에 하나의 하위 디렉토리를 제공하지 않고도 그 일을하도록하고 싶습니다.


참고로, WMA 파일에 DRM이있는 Linux 파일은 해당 파일을 해독 할 수 없습니다.
Broam

답변:


17

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

고맙지 만 디렉토리가 ~ / Music의 많은 하위 디렉토리에 분산되어 있기 때문에 디렉토리를 재귀 적으로 통과시키는 디렉토리가 필요합니다.
Mike Crittenden

스크립트를 쉽게 확장하여 재귀 파일 찾기를 수행 할 수 있습니다-아마도 find를 사용하여 첫 번째 스크립트를 다시 실행하여 출력을 mplayer로 파이핑합니다.
Rory Alsop

이 답변은 2013 년에 효과가 없습니다. 그러나이 답변은 효과가 있습니다 : askubuntu.com/a/55469/36661
MountainX

1
당신이 교체하면 빠른 - 및 - 더러운 버전은 여전히 (14.04에) 2016 년 작품 -ao pcm -waveheader으로 -ao pcm:waveheader.
m00am

1
좋은 스크립트 솔루션. xubuntu 19.04의 2019 년 9 월 수정없이 작동합니다.
Balu

40

사운드 컨버터 설치 사운드 컨버터 설치

실행 Soundconverter실행 또는 터미널에서

여기에 이미지 설명을 입력하십시오

기본 변환은 .ogg이것을 결과 유형 아래로 변경하는 mp3edit-> preferences입니다. Format다음과 같이 MP3로 :

여기에 이미지 설명을 입력하십시오

폴더 추가를 클릭 한 다음 음악 폴더를 선택하십시오. 변환을 클릭하기 전에 위의 환경 설정 구성에서 출력 폴더를 선택할 수 있습니다.

이 작업이 두 번의 클릭으로 완료되기를 바랍니다. :)


2
이것은 확실히 간단한 포인트 앤 클릭입니다. +1 :-)
Rory Alsop

이 솔루션의 문제점은 SoundConverter가 한 번에 수백 곡 이상의 노래를 추가 할 때 매우 느리게 수행되거나 완전히 정지되고 라이브러리에 약 5k가 있다는 것입니다.
Mike Crittenden

5k? 어쨌든 그것은 컴퓨터 성능에 달려 있습니다. 해당 파일을 분리해야 할 수도 있습니다. 개인 나는 동결없이 몇 백 곡을 변환 :)
Achu

13

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

정확히 원하는 것 같습니다. 원하는 품질 수준을 얻기 위해 절름발이 플래그로 바이올린을 연주하고 싶을 수도 있습니다.


3
2013 년에도 여전히 잘 작동합니다
MountainX

@David Futhcher, 언급은 좋은 습관입니다 :-), 감사합니다!
AjayKumarBasuthkar

2

Perl Audio Converter (pacpl)를 설치하십시오 : sudo apt-get install pacpl

이 명령은 주어진 디렉토리의 모든 wma 파일을 mp3 파일로 변환합니다 (원본은 그대로 유지).

pacpl -r -to mp3 -only wma <directory name>

위험하다고 생각되면 --delete옵션을 추가 하여 원본도 제거 할 수 있습니다 .

pacpl -r --delete -to mp3 -only wma <directory name>나는


2

나는 이것이 조금 오래되었다는 것을 알고 있지만 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

마지막 두 줄을 병합 할 수 있습니다 :-) -o "${wma_file}".mp3 && rm "${wma_file}" "${tmp_file}" rm에 대한 다른 실행 파일이 없기 때문에 처리 속도를 대폭 향상시킵니다.
AjayKumarBasuthkar

1

특정 파일 유형을 선택할 수있는 GUI 버전을 찾는 사람들을 위해 : KDE 도구 soundKonverter https://github.com/HessiJames/soundkonverter 는 어떤 파일 유형을 대화 대기열에 추가 해야하는지 묻습니다.

mp3 / ogg / wma 파일이 포함 된 거대한 오디오 북 컬렉션을위한 최상의 솔루션입니다.


1

다음은 ffmpeg를 사용하는 Marko Haapala 스크립트 판입니다.

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
# Also, it must be run as root to correctly handle spaces on Ubuntu 16
IFS=$'\n'
for wma_file in ${wma_files}; do
 ffmpeg -i "${wma_file}" -q:a 0 "${wma_file}".mp3
 #uncomment rm below to delete original wma's
 #rm "${wma_file}"
done

샘플 속도를 변경하지 않고 중간 임시 파일이 필요하지 않기 때문에 ffmpeg를 선호합니다.


0

Soundcoverter는 Windows Media 모듈 및 Python 2.7에 대한 오류를 표시합니다.

avconv는 잘 작동했습니다 : avconv -i ./song.wma song.mp3


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.