ฉันจะแปลงคอลเล็กชันเพลง FLAC เป็น Apple Lossless ได้อย่างไร


13

ฉันมีคอลเล็คชั่นเพลงที่มีขนาดพอเหมาะที่ฉันเก็บในรูปแบบ FLAC บนแล็ปท็อป Ubuntu ของฉัน ฉันต้องการเริ่มเล่นเพลงนี้บน Mac ของฉันและซิงค์จากที่นั่นกับ iPod ของฉัน มีคนแนะนำว่าวิธีที่ดีที่สุดในการทำเช่นนี้คือการแปลงคอลเล็กชันของฉันเป็น ALAC และฉันตัดสินใจว่านั่นคือสิ่งที่ฉันต้องการจะทำ

ก่อนที่ฉันจะดำน้ำและเขียนเชลล์สคริปต์แบบกำหนดเองที่เรียกใช้คำสั่งffmpegที่ซับซ้อนfindฉันคิดว่าฉันจะขอคำแนะนำ

ฉันจะแปลงคอลเลกชัน FLAC ที่มีอยู่เป็น ALAC ได้ดีที่สุดโดยไม่สูญเสียคุณภาพเสียงและรักษาข้อมูลเมตาทั้งหมดได้อย่างไร


ฮะ. ฉันประหลาดใจ. ฉันคิดว่าจะมีตัวเลือกที่ชัดเจนสำหรับเครื่องมือแปลงรหัส แต่สิ่งที่ฉันสามารถหาได้คือมุ่งเน้นไปที่วิดีโอ
RAOF

สิ่งที่ฉันทำคือการเขียนสคริปต์ Python แบบกำหนดเองที่เรียกว่า metaflac, ffmpeg และ AtomicParsley
jml

คำตอบ:


21

avconv (หรือ ffmpeg ซึ่ง avconv เป็นทางแยกของ) สามารถทำได้จากบรรทัดคำสั่ง:

avconv -i input.flac -c:a alac output.m4a

ควรเก็บข้อมูลเมตาด้วยตัวเอง

วิธีทำ flac ทุกอันในไดเรกทอรี:

for f in ./*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done

ในการทำทุก flac แบบเรียกซ้ำ (ในไดเรกทอรีปัจจุบันและไดเรกทอรีย่อยทั้งหมด):

shopt -s globstar
for f in ./**/*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done

หากคุณมี flacs ใน OGG ไฟล์หรือบางสิ่งบางอย่างที่เห็นได้ชัดว่ามีการเปลี่ยนแปลงไป./*.flac./*.ogg

ฉันคิดว่าสิ่งนี้ควรทำงานกับ avconv / ffmpeg จากแหล่งเก็บข้อมูล (เนื่องจาก ALAC ได้รับการเผยแพร่ภายใต้ใบอนุญาต Apache และสามารถแจกจ่ายได้อย่างถูกกฎหมาย) แม้ว่าฉันจะมีเวอร์ชันจาก medibuntu ติดตั้งอยู่ก็ตาม

หากคุณต้องการกำจัดไฟล์ต้นฉบับคุณสามารถใส่rmเข้าไปในลูปได้ รุ่นนี้ใช้การ-nตั้งค่าสถานะสำหรับ avconv ดังนั้นจะไม่เขียนทับไฟล์ ALAC ใด ๆ ที่มีอยู่แล้วและใช้&&แทน;หมายความว่าถ้า avconv หยุดด้วยข้อผิดพลาดไฟล์ FLAC ดั้งเดิมจะไม่ถูกลบ:

for f in ./*.flac; do avconv -n -i "$f" -c:a alac "${f%.*}.m4a" && rm "$f"; done

โปรดทราบว่าการลบไฟล์ด้วย rm นั้นไม่สามารถย้อนกลับได้ (นอกการกู้คืนข้อมูลทางนิติวิทยาศาสตร์) ดังนั้นโปรดใช้ด้วยความระมัดระวัง


คุณรู้วิธีการแทนที่ไฟล์ flac ด้วยไฟล์ alac แทนที่จะทำสำเนา alac ของไฟล์ flac หรือไม่?
user138784

@ user13 ไม่, avconv / ffmpeg ไม่สามารถทำได้, ไม่สามารถเขียนทับไฟล์ที่ใช้เป็นอินพุตได้ คุณสามารถใช้rmเพื่อลบไฟล์ต้นฉบับได้หากต้องการ
evilsoup

ฉันไม่ใช่กูรูของบรรทัดคำสั่ง (ฉันค่อนข้างใหม่กับ GNU / Linux) ดังนั้นตอนนี้ฉันก็เลยลบมันด้วยตนเอง (nautilus จัดเรียงไฟล์ตามประเภทและจากนั้นฉันสามารถเลือกไฟล์ al .flac ในไดเรกทอรีนั้นและลบออก) ฉันจะดูว่า "rm" นี้ทำงานอย่างไร :)
user138784

@ user138 ฉันได้แก้ไขคำตอบเพื่อแสดงการติดตั้งด้วยวิธีหนึ่งrm- แม้ว่าจะต้องคำนึงถึงคำเตือน แต่rmก็ไม่สามารถย้อนกลับได้มันค่อนข้างจะลบไฟล์ทั้งหมดทันทีแทนที่จะลบมันไปที่ถังขยะ อีกทางเลือกหนึ่งคือใช้ globbing หลังจากลูปเสร็จสิ้น (ดังนั้นคุณสามารถตรวจสอบได้ว่าไม่มีปัญหา ... หากคำสั่งล้มเหลวไม่ว่าด้วยเหตุผลใดก็ตามคุณไม่ต้องการกำจัดต้นฉบับของคุณ): rm -- *.flacจะลบทุก ๆ FLAC ในไดเรกทอรีการทำงาน
evilsoup

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