แปลงไลบรารี่ของ 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, piping output ไปที่ mplayer
Rory Alsop

คำตอบนี้ไม่ได้ผลสำหรับฉันในปี 2013 อย่างไรก็ตามคำตอบนี้ใช้ได้: askubuntu.com/a/55469/36661
MountainX

1
รุ่นรวดเร็วและยังคงทำงานสกปรกในปี 2016 (เมื่อ 14.04) ถ้าคุณแทนที่ด้วย-ao pcm -waveheader -ao pcm:waveheader
m00am

1
วิธีการแก้สคริปต์ที่ดี ใช้งานได้โดยไม่มีการดัดแปลงในเดือนกันยายน 2019 บน xubuntu 19.04
Balu

40

ติดตั้งSoundconverter ติดตั้ง soundconverter

และเรียกใช้Soundconverterจากตัวเรียกใช้งานหรือเทอร์มินัล

ป้อนคำอธิบายรูปภาพที่นี่

การแปลงค่าเริ่มต้นคือ.oggการเปลี่ยนแปลงนี้mp3จะedit-> preferencesอยู่ภายใต้ประเภทของผลลัพธ์ Formatเป็น MP3 ดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

คลิกที่เพิ่มโฟลเดอร์แล้วเลือกโฟลเดอร์เพลงของคุณ คุณสามารถเลือกโฟลเดอร์เอาต์พุตในการกำหนดค่าตามความชอบด้านบนก่อนที่คุณจะคลิกแปลง

หวังว่าจะทำได้สองคลิก :)


2
นี่คือจุดที่ง่ายและคลิกอย่างแน่นอน +1 จากฉัน :-)
Rory Alsop

ปัญหาเกี่ยวกับวิธีแก้ปัญหานี้คือ SoundConverter ทำงานช้ามากหรือค้างอย่างสมบูรณ์เมื่อเพิ่มมากกว่าสองร้อยเพลงในครั้งเดียวและห้องสมุดของฉันมีประมาณ 5k
Mike Crittenden

5k? wooo นั้นมีมาก;) อย่างไรก็ตามมันขึ้นอยู่กับประสิทธิภาพของคอมพิวเตอร์ของคุณ อาจเป็นเพราะคุณต้องแยกไฟล์เหล่านั้น ฉันส่วนบุคคลแปลงสองสามร้อยเพลงได้โดยไม่ต้องหยุดการทำงานใด ๆ :)
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
ยังคงใช้งานได้ดีในปี 2556
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}" นี่จะเพิ่มความเร็วในการประมวลผลเล็กน้อยเนื่องจากไม่มี exec อื่นสำหรับ rm
AjayKumarBasuthkar

1

สำหรับผู้ที่กำลังมองหาเวอร์ชัน GUI ที่สามารถเลือกประเภทไฟล์บางอย่าง: เครื่องมือ KDE soundKonverter https://github.com/HessiJames/soundkonverterถามว่าควรเพิ่มประเภทไฟล์ใดในคิวการสนทนา

ทางออกที่ดีที่สุดสำหรับคอลเล็กชัน Audiobook ขนาดใหญ่ของฉันที่มีไฟล์ mp3 / ogg / wma


1

นี่คือสคริปต์ Marko Haapala รุ่นของฉันโดยใช้ ffmpeg:

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 เพราะมันไม่เปลี่ยนอัตราตัวอย่างและไม่ต้องการไฟล์ temp ระดับกลาง


0

Soundcoverter แสดงข้อผิดพลาดบางอย่างเกี่ยวกับโมดูล Windows Media และ Python 2.7

Avconv ทำงานได้ดี: avconv -i ./song.wma song.mp3


0

คุณยังสามารถใช้แอพของฉัน ... dmMediaConverterในโหมดเป็นกลุ่ม สำหรับความช่วยเหลือในการดูวิดีโอนี้ ... แทนที่จะเป็นไฟล์วิดีโอให้ลากและวางไฟล์ wma https://www.youtube.com/watch?v=rZR40mdFRoQ&index=1&list=PLwURYFQvHBAtG8wqzyVgOQ1WtEYSkiscO

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.