Apple Lossless audio สามารถแปลงเป็น FLAC โดยไม่สูญเสียความเที่ยงตรงหรือไม่?


19

สามารถแปลงไฟล์เสียง Apple Lossless (ALAC) เป็นไฟล์เสียง FLAC โดยไม่สูญเสียความเที่ยงตรงหรือไม่


2
คำตอบสั้น ๆ 'ใช่' (ตามที่ slhck พูด) คำถามคือคุณกำลังมองหาเครื่องมือในการทำเช่นนี้หรือถามว่าคุณสามารถแปลงรูปแบบ lossless, lossless เป็นรูปแบบ lossless อื่นหรือไม่?
Geek

คำตอบ:


37

ใช่เนื่องจากทั้งสองไม่มีความสูญเสียทางคณิตศาสตร์การแปลงก็ไม่สูญเสียเช่นกัน

สาเหตุของการทำเช่นนี้คือสัญญาณสามารถสร้างขึ้นมาใหม่ในรูปแบบเดิมได้เสมอเมื่อไฟล์ FLAC / ALAC ถูกถอดรหัส ดังนั้นพวกเขาจะเทียบเท่าและคุณไม่ควรสูญเสียเมื่อแปลงรหัส - แม้เมื่อแปลงหลายครั้ง

ข้อผิดพลาดเพียงอย่างเดียวที่ฉันสามารถจินตนาการได้คือความผิดพลาดทางคณิตศาสตร์เช่นผ่านความแม่นยำจุดลอยตัวที่ จำกัด ในการคำนวณ ฉันไม่คิดว่าสิ่งนี้ใช้ได้กับทั้ง FLAC หรือ ALAC

ในกรณีที่คุณใช้ตัวแปลงสัญญาณแบบไม่สูญเสีย "psychoacoustically" เท่านั้นไม่สามารถทำได้ การสูญเสียในแง่ของจิตวิเคราะห์หมายความว่าคุณไม่สามารถแยกแยะความแตกต่างระหว่างต้นฉบับกับเวอร์ชั่นที่ถูกบีบอัดได้ แต่มันแตกต่างกันมาก MP3 หรือ MPEG-4 AAC ใช้เทคนิค psychoacoustic ที่หลากหลายเพื่อให้ได้สิ่งนี้ ดังนั้นเมื่อแปลงรหัสเวอร์ชันเดิมจะไม่สามารถสร้างใหม่ได้และคุณจะประสบกับการสูญเสียคุณภาพ


ในกรณีที่คุณต้องการแปลง ALAC เป็น FLAC ffmpegจะเป็นตัวเลือกที่ดีเนื่องจากฟรีและใช้ได้กับแพลตฟอร์มเกือบทุกแพลตฟอร์ม

ffmpeg -i audio.m4a -c:a flac audio.flac

FFmpeg จะอ่าน ALAC โดยไม่มีปัญหา สำหรับระบบ * nix นั้นยังมีสคริปต์ชื่อConvert to FLACซึ่งทำให้กระบวนการทั้งหมดง่ายขึ้น ด้วย Bash คุณสามารถแปลงไฟล์ทั้งหมดในไดเรกทอรีเดียวด้วย:

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

หมายเหตุ:หากคุณได้รับข้อความเกี่ยวกับffmpegการเลิกใช้งานจริง ๆ แล้วมันไม่ได้เป็นอย่างนั้น แต่ก็ยังเป็นโปรแกรมที่พัฒนาขึ้นอย่างแข็งขัน อย่างไรก็ตามอูบุนตูของแพคเกจดูแลก็ตัดสินใจที่จะเปลี่ยนไปใช้ส้อม Libav ของ FFmpeg จึงจัดหาคุณกับแทนavconv ffmpegเวอร์ชั่นของffmpeg Ubuntu ที่มีอยู่จึงล้าสมัยแล้ว คุณสามารถรับล่าสุดโดยการดาวน์โหลดบิลด์แบบคงที่แทนหรือรวบรวมด้วยตัวคุณเอง อ่านต่อเพื่อรับข้อมูลเพิ่มเติม: ใครสามารถบอกความแตกต่างและความสัมพันธ์ระหว่าง ffmpeg, libav และ avconv ได้


2
จากsuperuser.com/a/277358/45914คุณสามารถทำสิ่งต่อไปนี้เพื่อแปลงไดเรกทอรีทั้งหมด: ใช้ for f in *.m4a; do ffmpeg -i "$f" -acodec flac "${f%.m4a}.flac"; done งานได้บน Linux แต่ยังอยู่ใน Git bash บน Windows
Ruud

1
การแปลงโดยใช้ ffmpeg ตามที่ @RuudvA บอกว่าใช้งานได้ แต่ให้ข้อความที่บอกฉันว่า: *** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use avconv instead. เพื่อที่จะทำสิ่งนี้โดยใช้ aconv ให้ทำสิ่งนี้แทน: for f in *.m4a; do avconv -i "$f" "${f%.m4a}.flac"; done
Duncan Lock

XLD เป็นอีกหนึ่งดีสำหรับ OSX
Arran Cudbard-Bell

3

สำหรับ Windows CMD คุณสามารถทำได้

@for /R %%x in (*.m4a) do ffmpeg -i "%%x" -acodec flac "%%~dpnx.flac"

(สคริปต์ชุด)

(สิ่งนี้จะทำการเรียกซ้ำ (ทุก ๆ โฟลเดอร์และภายใต้ตำแหน่งที่เรียกใช้))


1

หากคุณมี Mac (เนื่องจากคุณมีไฟล์ ALAC) คุณสามารถใช้ซอฟต์แวร์โอเพ่นซอร์ส Max เป็นส่วนหน้าที่ดีในการแปลงจากและเป็น ALAC / FLAC หรือรูปแบบอื่น ๆ อีกมากมาย ..


2
อีกอันที่ดีคือ XLD
นาธาเนียล

1

สำหรับ Windows ใน Powershell (โดยใช้ ffmpeg) คุณสามารถทำเช่นนี้เพื่อแปลง alac เป็น flac:

Get-ChildItem . -filter *.m4a| ForEach-Object { ffmpeg -i "$_" -acodec flac "$($_.basename).flac" }

และในทางกลับกันให้แปลงเป็น alac

Get-ChildItem . -filter *.flac | ForEach-Object { ffmpeg -i "$_" -acodec alac $($_.basename).m4a" }

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