รูปแบบไฟล์

MKV - Matroska Multimedia Container

MKV คือคอนเทนเนอร์ Matroska ซึ่งเป็นฟอร์แมตแบบเปิดที่สามารถบรรจุจำนวนแทร็กวิดีโอ เสียง และคำบรรยายได้ไม่จำกัด รวมทั้งบทและไฟล์แนบต่างๆ ไว้ในไฟล์เดียว

.mkv

MKV ย่อมาจาก Matroska ซึ่งเป็นฟอร์แมตคอนเทนเนอร์แบบเปิดที่เริ่มต้นในปี 2002 โดย Steve Lhomme และกลุ่มผู้มีส่วนร่วมที่ต้องการไฟล์วิดีโอที่ไม่มีใครเป็นเจ้าของและไม่มีข้อจำกัด ชื่อนี้มาจากตุ๊กตารัสเซียซ้อนกัน ซึ่งอธิบายแนวคิดได้ดี: ไฟล์ Matroska คือกล่องที่เก็บได้ทุกอย่างที่ใส่เข้าไป ในขณะที่ MP4 รองรับชุดของ codec และฟีเจอร์ที่กำหนดไว้ล่วงหน้า Matroska ถูกออกแบบให้รองรับอะไรก็ได้ จึงกลายเป็นฟอร์แมตยอดนิยมสำหรับคลังภาพยนตร์ อนิเมะที่มีซับหลายชุด และแผ่น Blu-ray ที่ถูกคัดลอกลงฮาร์ดไดรฟ์ โครงสร้างพื้นฐานของมันถูกเผยแพร่เป็นมาตรฐานอินเทอร์เน็ต และ Google ได้นำส่วนหนึ่งของมันไปใช้สร้าง WebM

โครงสร้างของไฟล์ MKV เป็นอย่างไร

Matroska สร้างขึ้นบน EBML ซึ่งเป็นโครงสร้างแบบไบนารีที่ทำงานคล้าย XML เวอร์ชันกะทัดรัด: ทุกอย่างคือ element, element ซ้อนกันได้ และแต่ละ element ระบุความยาวของตัวเอง ไฟล์หนึ่งไฟล์ประกอบด้วยส่วนหัว แล้วตามด้วย segment ที่เก็บ track ต่างๆ, ดัชนีสำหรับการเลื่อนหา และตัวมีเดียเองซึ่งแบ่งเป็น cluster ของบล็อกเล็กๆ พร้อม timestamp

MKV ไม่ได้บีบอัดอะไรด้วยตัวเอง ภาพด้านในมักจะเป็น H.264, HEVC, AV1 หรือ VP9 ส่วนเสียงอาจเป็น AAC, Opus, FLAC, DTS หรือ Dolby audio เป็นต้น เนื่องจากคอนเทนเนอร์ไม่สนใจว่าข้างในเป็นอะไร ไฟล์เดียวจึงสามารถมีแทร็กเสียงแบบ lossless อยู่ข้างแทร็กที่บีบอัดแล้ว มีเสียงพากย์หลายภาษา ชุดคำบรรยายทั้งแบบบังคับและเต็มรูปแบบในแบบข้อความหรือบิตแมป หมายเลขบทสำหรับเลือกฉาก และไฟล์แนบ เช่น ปก หรือฟอนต์ที่ใช้กับแทร็กคำบรรยายเพื่อให้แสดงผลได้ถูกต้อง

เมทาดาต้าที่ไฟล์ MKV มีอยู่

Matroska เก็บ metadata ไว้สองตำแหน่ง และทั้งสองจะแสดงในรายงาน

บล็อกข้อมูล segment information ใช้อธิบายตัวไฟล์เอง โดยเก็บชื่อเรื่องโดยรวม ระยะเวลา วันที่สร้างในรูปแบบ UTC ตัวระบุเฉพาะของ segment และอีกสองฟิลด์ที่บอกข้อมูลสำคัญคือ muxing application และ writing application ซึ่งระบุชื่อไลบรารีและโปรแกรมที่ใช้สร้างไฟล์ มักรวมถึงหมายเลขเวอร์ชันด้วย จากนั้นทุก track จะมีรายการของตัวเองที่ให้ชื่อ รหัสภาษา codec ขนาดการแสดงผล และ flag ที่ระบุว่า track นั้นเป็นค่าเริ่มต้นหรือเป็นแบบบังคับ

metadata แบบบรรยายใช้ระบบแท็กของ Matroska ซึ่งมีโครงสร้างชัดเจนกว่าส่วนใหญ่ แท็กถูกจัดกลุ่มตาม target จึงสามารถใช้กับทั้งไฟล์ กับ track เดียว กับ chapter หรือกับชุดไฟล์ลักษณะคล้ายอัลบัมที่ครอบอยู่ด้านบนได้ และแต่ละแท็กประกอบด้วยชื่อและค่า ชื่อที่ใช้กันทั่วไปจะเขียนเป็นตัวพิมพ์ใหญ่ และที่พบได้บ่อยคือ title, artist, date released, genre, comment, description, encoder, part number และ total parts นอกจากนี้ แท็กยังสามารถระบุได้ว่าข้อความเขียนด้วยภาษาใด ทำให้ฟิลด์เดียวกันปรากฏได้มากกว่าหนึ่งครั้งสำหรับกลุ่มผู้ใช้ต่างกัน

สิ่งที่ Matroska มักจะไม่มีคือ metadata ของกล้อง จะไม่มีบล็อก EXIF ไม่มีรุ่นกล้อง และไม่มีฟิลด์ GPS เพราะไฟล์ MKV มักถูกสร้างจากการแปลงหรือคัดลอกจากสิ่งอื่น ไม่ใช่จากตัวกล้องเอง ร่องรอยส่วนบุคคลจึงเป็นอีกรูปแบบหนึ่ง: writing application ระบุชื่อโปรแกรมและเวอร์ชันที่ใช้ วันที่สร้างบอกว่าเมื่อไร ชื่อเรื่องและชื่อ track มักจะเก็บชื่อเวอร์ชันต้นฉบับหรือชื่อแผ่นไว้ และไฟล์แนบอาจเป็นไฟล์ใดๆ ก็ได้ รวมถึงไฟล์ที่มีคนลืมทิ้งไว้ข้างใน

เมื่อใดควรเลือกใช้ MKV

ใช้ MKV เมื่อไฟล์นั้นเป็นไฟล์ที่ต้องการเก็บระยะยาว มันเป็นคอนเทนเนอร์ที่เหมาะที่สุดที่นี่สำหรับภาพยนตร์ที่มีเสียงหลายภาษา แทร็กคำบรรยายที่ต้องการสลับไปมาได้ และ chapter และยังรองรับ codec แปลกๆ ได้โดยไม่มีปัญหา

MP4 เป็นอีกทางเลือกหนึ่ง และมีข้อดีด้านการรองรับ: เบราว์เซอร์ โทรศัพท์ โทรทัศน์ และ set-top box สามารถเล่น MP4 ได้โดยไม่ต้องติดตั้งอะไรเพิ่ม ในขณะที่การรองรับ MKV ขึ้นอยู่กับอุปกรณ์และการมีโปรแกรมเล่นหลายตัว ติดตั้งอยู่ แนวทางที่เหมาะสมคือเก็บถาวรใน MKV และแจกเป็น MP4 การย้ายระหว่างสองฟอร์แมตนี้มักเป็นแค่การ remux คือคัดลอกสตรีมไปใส่คอนเทนเนอร์อีกแบบโดยไม่สูญเสียข้อมูล ตราบใดที่ codec ภายในเป็นชนิดที่ MP4 รองรับ