การแปลง wma เป็น mp3 จำนวนมากโดยไม่ต้องเปลี่ยนไดเรกทอรี


8

ฉันมีแทร็กเพลงหลายพันรายการในรูปแบบ WMA ตั้งแต่เมื่อก่อนเคยใช้ Windows Media Player เพื่อริพซีดี ตอนนี้ฉันมีปัญหาในการเล่นบนเดสก์ท็อป Linux ในที่ทำงาน

มีวิธีแก้ปัญหาที่ดี (สำหรับ Windows หรือ Linux) สำหรับการแปลง WMA ทั้งหมดเป็น MP3 ในขณะที่ทิ้งไว้ในไดเรกทอรีเดียวกันเหมือนเมื่อก่อนหรือไม่? ฉันลองใช้ iTunes เพื่อทำมัน แต่มันเริ่มสร้างไดเรกทอรีใหม่เพื่อจัดเก็บแทร็คที่แปลงทั้งหมดซึ่งฉันไม่ต้องการ


1
ในลีนุกซ์ (ดิสทริบิวเตอร์อะไร?) เป็นการรวมกันของบางอย่างfind -execdirและffmpegควรทำ แต่ฉันจะทำการทดสอบก่อนที่จะโพสต์คำตอบ
วิลเลียมแจ็คสัน

2
โปรดระวังว่าเมื่อใดก็ตามที่คุณแปลงรูปแบบการสูญเสียคุณจะสูญเสียคุณภาพ ไม่ว่าการสูญเสียคุณภาพนั้นจะได้ยินได้หรือไม่นั้นขึ้นอยู่กับคุณภาพดั้งเดิมตัวเข้ารหัสที่คุณใช้สำหรับ transcode อุปกรณ์การเล่นและหูของคุณ ถ้าเป็นฉันฉันจะดูที่การริพซีดีใหม่ (ถ้าเป็นไปได้) มากกว่าการแปลงรหัส แม้ว่าฉันจะรู้ว่ามันใช้เวลามากกว่านี้ นอกจากนี้คุณยังอาจพิจารณาเก็บแผ่นซีดีฉีกคุณในรูปแบบที่ไม่สูญเสีย (FLAC เป็นที่ชื่นชอบ แต่มีคนอื่น ๆ ) และการแปลงรหัสที่เป็น MP3 สำหรับเครื่องเล่น MP3 แบบพกพาของคุณ ฯลฯ และแน่นอนว่าเราต้องใช้พื้นที่ดิสก์มากขึ้น
Flimzy

@ วิลเลียม: ที่ทำงานฉันใช้ openSUSE ที่บ้านฉันใช้ลินุกซ์มินต์ (Ubuntu) และ windows 7 ฉันจะต้องตรวจสอบ ffmpeg เมื่อฉันมีเวลาและดูว่าฉันสามารถเขียนสคริปต์ทุบตีหรืออะไรบางอย่าง หากคุณโพสต์คำตอบที่ใช้งานได้แล้วฉันจะทำเครื่องหมายนั้น
Eddy

@Flimzy: ฉันจะลองแปลงเพลงสักสองสามเพลงแล้วตรวจดูด้วยหูว่าจะสังเกตเห็นว่าคุณภาพมันหายไปหรือเปล่า ฉันไม่ได้เป็นออดิโอไฟล์ดังนั้นฉันคิดว่ามันอาจจะโอเคสำหรับฉัน แต่ดีกว่าปลอดภัยกว่าขออภัยฉันคิดว่า
Eddy

ฉันใช้ DB PowerAmp Music Converter สำหรับสิ่งนี้ซอฟต์แวร์ที่ยอดเยี่ยม แต่ไม่ฟรี (ต้องมีใบอนุญาต mp3) ... dbpoweramp.com/dmc.htm
Moab

คำตอบ:


6

หากคุณมีไฟล์หลายพันไฟล์สิ่งนี้จะใช้เวลาตลอดไป

find . -iname "*.wma" -execdir ffmpeg -i {} -ab 192k -map_metadata 0:s:0 {}.mp3 \;

(รุ่นเก่า ffmpeg อาจต้อง-map_meta_dataแทน-map_metadata, 0:0แทน0:s:0.)

ฉันทดสอบสิ่งนี้บน Ubuntu 16.04 หากคุณยังไม่ได้คุณต้องติดตั้งแพคเกจและffmpeglibavcodec-extra-52

เริ่มคำสั่งนี้จากไดเรกทอรีหลักที่มีไฟล์ WMA ทั้งหมดของคุณ มันจะค้นหาไดเรกทอรีย่อยทั้งหมดสำหรับไฟล์ใด ๆ ที่มี.wmaนามสกุลและพยายามแปลงเป็น MP3 หากมีการตั้งชื่อAwesome Song.wmaไฟล์ต้นฉบับไฟล์ใหม่จะเป็นAwesome Song.wma.mp3และจะอยู่ในไดเรกทอรีเดียวกับไฟล์ต้นฉบับ

หากคุณปกติผู้ใช้บิตเรตที่สูงกว่าหรือต่ำกว่า 192k เปลี่ยน-ab 192kธงเป็นสิ่งที่คุณต้องการ


1

การตั้งค่าสถานะนี้จะบอก ffmpeg เพื่อพยายามและรักษาแท็ก ID3:

find . -iname "*.wma" -execdir ffmpeg -i {} -ab 192k **-map_metadata 0:0** {}.mp3 \;

1

ไฟล์นี้ค้นหาไฟล์ WMA แปลงเป็น MP3 ด้วยชื่อนามสกุลใหม่.mp3แทน.wma.mp3และลบไฟล์เก่า นี้ได้รับการทดสอบการทำงานบน Fedora 19 ขณะที่การค้นหาไฟล์ WMA ผ่าน 150 GB artist/album/<disk number>/fileมูลค่าของแฟ้มที่จัดโดย

find . -iname "*.wma" -execdir bash -c 'NAME="{}" && ffmpeg -y -i "$NAME" -ab 192k "${NAME/.wma/.mp3}" && rm "$NAME"' \;

ทำงานใน Mac ดูเหมือนว่าจะรักษา metadata บางอย่างเช่นกัน แม้ว่าฉันจะได้Queue input is backward in time [mp3 @ 0x7fbffb02ba00] Application provided invalid, non monotonically increasing dts to muxer in streamรับคำเตือนมากมาย
adib


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