เสียง FLAC (.flac)
Xiph.Org มาตรฐานFLAC เป็นรูปแบบเสียงแบบไม่สูญเสียข้อมูลและโอเพนซอร์สที่ใช้กันแพร่หลาย ประสิทธิภาพขึ้นอยู่กับเสียงและการตั้งค่า
แปลง FLAC เป็น MP3
ตัวแปลงจาก FLAC เป็น MP3 ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ
ตรวจสอบไฟล์และข้อมูลเมตา
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ FLAC โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวระดับไบต์
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ FLAC โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 0):
66 4C 61 43การแสดงผลรูปแบบ ASCII: fLaC
มาตรฐาน: Xiph.Org Open Standard / IETF Draft
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | คอนเทนเนอร์บิตสตรีม FLAC โดยตรงที่มีโครงสร้าง METADATA_BLOCK |
| การบีบอัด | การพยากรณ์เชิงเส้น (LPC) และการเข้ารหัสเอนโทรปีแบบ Rice โดยแบ่งข้อมูลเป็นซับเฟรม |
| การจัดลำดับไบต์ | ส่วนหัวบิตสตรีมแบบ Big-Endian; เพย์โหลดตัวอย่างเป็น PCM จำนวนเต็มมีเครื่องหมาย |
| พื้นที่สี | ไม่เกี่ยวข้อง (สตรีมเสียงแบบไม่สูญเสียข้อมูล) |
| ช่องสัญญาณและโครงสร้าง | ช่องสัญญาณเสียงแยกกัน 1 ถึง 8 ช่อง |
| ขนาดสูงสุด | อัตราสุ่มสูงสุด 655,350 Hz ที่ 4 ถึง 32 บิตต่อตัวอย่าง |
| ความโปร่งใส | สร้างเสียงกลับคืนได้ตรงระดับบิตและไม่สูญเสียข้อมูลทางคณิตศาสตร์ 100% |
| การสตรีมและแบบโปรเกรสซีฟ | คำซิงโครไนซ์เฟรมและตารางค้นหาตำแหน่งในตัวรองรับการสตรีม HTTP ตามช่วงไบต์ |
ตารางเปรียบเทียบทางเทคนิค: FLAC กับคู่แข่ง
| คุณลักษณะทางเทคนิค | FLAC (ปัจจุบัน) | ALAC | WAV | APE |
|---|---|---|---|---|
| รูปแบบสัญญาอนุญาต | ฟรีและโอเพนซอร์ส (BSD/GPL) | Apache 2.0 โอเพนซอร์ส | สาธารณสมบัติ / RIFF ที่เป็นกรรมสิทธิ์ | สัญญาอนุญาตแบบกำหนดเองที่เป็นโอเพนซอร์ส |
| ภาระการประมวลผลการถอดรหัส | ต่ำมากและแทบไม่กระทบแบตเตอรี่ | ต่ำ | ไม่มีภาระการคลายการบีบอัดบน CPU | ปานกลางถึงสูง |
| การตรวจจับข้อผิดพลาด | ลายเซ็น MD5 แบบ 128 บิต ฝังอยู่ในข้อมูลเสียง PCM ดิบ | ความสมบูรณ์ระดับอะตอมเท่านั้น | ไม่มีในตัว | เช็คซัม CRC32 ต่อเฟรม |
| การนำไปใช้ในเครื่องเล่นฮาร์ดแวร์ | แพร่หลายในเครื่องเสียงรถยนต์ เครื่องรับสัญญาณในบ้าน และชุดเครื่องเสียง Hi-Fi | อุปกรณ์ของ Apple และเครื่องรับ AirPlay | ความเข้ากันได้ขึ้นอยู่กับเครื่องเล่นและอุปกรณ์ | จำกัดมาก |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
ตัวถอดรหัส FLAC บันทึกข้อความ 'MD5 signature mismatch' หรือเครื่องเล่นสะดุดระหว่างการเล่น
สาเหตุหลัก: บิตเสีย (Bit rot) หรือข้อผิดพลาดในการส่งข้อมูลทำให้บิตในข้อมูลเฟรมเสียงที่ถูกบีบอัดสลับค่ากัน
การกู้คืน: ทดสอบความสมบูรณ์โดยใช้คำสั่ง 'flac -t sample.flac' และเข้ารหัสใหม่ด้วย 'flac -F' เพื่อข้ามเฟรมที่เสียหายและกู้คืนเสียง
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
FLAC มีชุดโค้ดที่มีความเสถียร แต่บล็อกข้อมูลเมตาที่ผิดรูปแบบ (เช่น บล็อกรูปภาพหรือคิวชีทที่มีขนาดใหญ่เกินไป) อาจทริกเกอร์ปัญหาของตัวแยกวิเคราะห์ได้
เวกเตอร์การโจมตีที่ทราบ
- ความผิดพลาดของตัวเลขล้น (Integer overflow) ในการแยกวิเคราะห์ METADATA_BLOCK_PICTURE ส่งผลให้เกิดความเสียหายของฮีปในตัวจัดทำดัชนีสื่อที่ยังไม่ได้แพทช์
- บิตการกำหนดช่องสัญญาณที่ถูกสร้างขึ้นมาทำให้เกิดการหารด้วยศูนย์ในรูทีนการแยกความสัมพันธ์สเตอริโอ
- การอ่านหน่วยความจำฮีปเกินขอบเขต (Heap out-of-bounds read) ในตัวอ่านความคิดเห็น Vorbis ของ libFLAC
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน: ตรวจสอบความถูกต้องของความยาวบล็อกข้อมูลเมตาก่อนจัดสรรบัฟเฟอร์หน่วยความจำ และบังคับใช้ขนาดภาพปกที่เหมาะสม
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- ข้อมูลจำเพาะแบบเปิดและปลอดค่าลิขสิทธิ์อย่างสมบูรณ์ ปราศจากข้อจำกัดด้านสิทธิบัตร
- การออกแบบแบบไม่สมมาตรช่วยให้สามารถถอดรหัสได้ทันทีและใช้ทรัพยากรน้อยบนฮาร์ดแวร์ที่มีแบตเตอรี่จำกัด
- รวมลายเซ็นเสียง MD5 ไว้ในส่วนหัว STREAMINFO สำหรับการตรวจสอบความเสียหายระดับบิตโดยอัตโนมัติ
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- ไฟล์มีขนาดใหญ่กว่ามาก (โดยทั่วไปใหญ่กว่า 5 เท่า) เมื่อเทียบกับรูปแบบที่มีการสูญเสียข้อมูล เช่น MP3, AAC หรือ Opus
- ไม่รองรับเสียงแบบจุดลอยตัว 32 บิตที่มักใช้ในบัสมิกซ์ภายในของ DAW
- การต่อต้านในอดีตจากแอปพลิเคชันเดิมของ Apple ทำให้ต้องใช้รูปแบบทางเลือกอื่นเช่น ALAC
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- ลายเซ็นเมจิก 4 ไบต์ 'fLaC' มีการผสมตัวพิมพ์ใหญ่และเล็กซึ่งย่อมาจาก 'Free Lossless Audio Codec'
- องค์การอวกาศยุโรป (European Space Agency) ใช้ FLAC เพื่อบีบอัดการบันทึกเสียงทางวิทยาศาสตร์จากภารกิจอวกาศในชั้นบรรยากาศ
- เครื่องเล่นเพลง Pono ความละเอียดสูงของ Neil Young สร้างระบบนิเวศทั้งหมดรอบๆ FLAC ขนาด 24-bit/192 kHz
คำถามทางเทคนิคที่พบบ่อย
FLAC สามารถบีบอัดเสียงได้ดีเท่า MP3 หรือไม่?
ไม่ใช่ FLAC เป็นรูปแบบไม่สูญเสียข้อมูล ตัวอย่างเสียงที่ถอดรหัสจึงตรงกับต้นฉบับ ขนาดไฟล์ขึ้นอยู่กับเนื้อหาและการตั้งค่า ไม่มีอัตราการลดขนาดตายตัว ส่วน MP3 เป็นรูปแบบสูญเสียข้อมูลและมักสร้างไฟล์เล็กกว่าโดยตัดข้อมูลเสียงออก
ระดับการบีบอัดของ FLAC (0 - 8) ทำหน้าที่อะไร?
ระดับการบีบอัดใน FLAC มีผลต่อเวลาในการเข้ารหัสและการใช้ CPU แต่ไม่มีผลต่อคุณภาพเสียง ทุกระดับ (0 ถึง 8) จะคลายการบีบอัดออกมาเป็นเสียงเดียวกันทุกประการ ระดับ 8 ใช้เวลาเข้ารหัสนานกว่า แต่ได้ไฟล์ที่เล็กลงเล็กน้อย
FLAC สามารถเก็บภาพปกอัลบั้มได้หรือไม่?
ได้ FLAC มีบล็อก METADATA_BLOCK_PICTURE โดยเฉพาะ ซึ่งฝังภาพปกหน้า ปกหลัง และภาพประกอบอัลบั้มไว้ภายในไฟล์เสียงโดยตรง
คู่การแปลงไฟล์ FLAC ที่เกี่ยวข้อง
การแปลงไฟล์ FLAC แบบไม่สูญเสียข้อมูลให้เป็นไฟล์ MP3 ที่บีบอัดแล้วช่วยลดขนาดไฟล์ลงอย่างมาก ทำให้คลังเพลงของคุณรองรับกับเครื่องเล่นมีเดียรุ่นเก่าและอุปกรณ์มือถือที่มีพื้นที่จำกัด
เมื่อแปลง MP3 เป็น FLAC เสียง PCM ที่ถอดรหัสแล้วจะถูกบีบอัดแบบไม่สูญเสียข้อมูล แต่ไม่สามารถกู้คืนความถี่ที่การบีบอัด MP3 เดิมตัดทิ้งไปได้
การแปลงไฟล์ Apple Lossless Audio Codec เป็น FLAC Master จะช่วยย้ายคอลเลกชันเพลงสำหรับการจัดเก็บถาวรของคุณจากคอนเทนเนอร์ MP4 ที่จำกัดเฉพาะในระบบนิเวศของ Apple ไปสู่มาตรฐานแบบโอเพนซอร์สที่รองรับบนเครื่องเล่นสื่อและอุปกรณ์ฮาร์ดแวร์หลายพันรายการ
การแปลงระหว่างรูปแบบที่ไม่สูญเสียข้อมูลอย่างถูกต้องสามารถคงตัวอย่างเสียงไว้ได้ แต่ผลลัพธ์ขึ้นอยู่กับตัวแปลง
การแปลง WAV PCM แบบไม่บีบอัดเป็น FLAC Master ช่วยลดขนาดไฟล์เสียงของคุณลงครึ่งหนึ่งโดยไม่สูญเสียข้อมูลเสียงแม้แต่บิตเดียว
การแปลง FLAC Master เป็น WAV PCM จะคลายการบีบอัดเสียงให้เป็นข้อมูล pulse-code modulation ดิบ เพื่อให้ใช้งานร่วมกับฮาร์ดแวร์เสียงได้อย่างกว้างขวาง
แปลงแทร็ก Monkey's Audio (APE) เป็น FLAC เพื่อเก็บเสียงแบบไม่สูญเสียข้อมูลและเพิ่มการรองรับในเครื่องเล่นกับอุปกรณ์หลายรายการ
การแปลง AIFF เป็น FLAC อาจช่วยลดขนาดไฟล์ได้ แต่จะลดได้มากน้อยเพียงใดขึ้นอยู่กับเนื้อหาเสียง