สามารถแปลงไฟล์เสียง Apple Lossless (ALAC) เป็นไฟล์เสียง FLAC โดยไม่สูญเสียความเที่ยงตรงหรือไม่
สามารถแปลงไฟล์เสียง Apple Lossless (ALAC) เป็นไฟล์เสียง FLAC โดยไม่สูญเสียความเที่ยงตรงหรือไม่
คำตอบ:
ใช่เนื่องจากทั้งสองไม่มีความสูญเสียทางคณิตศาสตร์การแปลงก็ไม่สูญเสียเช่นกัน
สาเหตุของการทำเช่นนี้คือสัญญาณสามารถสร้างขึ้นมาใหม่ในรูปแบบเดิมได้เสมอเมื่อไฟล์ 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 ได้
for f in *.m4a; do ffmpeg -i "$f" -acodec flac "${f%.m4a}.flac"; done
งานได้บน Linux แต่ยังอยู่ใน Git bash บน Windows
*** 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
สำหรับ Windows CMD คุณสามารถทำได้
@for /R %%x in (*.m4a) do ffmpeg -i "%%x" -acodec flac "%%~dpnx.flac"
(สคริปต์ชุด)
(สิ่งนี้จะทำการเรียกซ้ำ (ทุก ๆ โฟลเดอร์และภายใต้ตำแหน่งที่เรียกใช้))
หากคุณมี Mac (เนื่องจากคุณมีไฟล์ ALAC) คุณสามารถใช้ซอฟต์แวร์โอเพ่นซอร์ส Max เป็นส่วนหน้าที่ดีในการแปลงจากและเป็น ALAC / FLAC หรือรูปแบบอื่น ๆ อีกมากมาย ..
สำหรับ 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" }