ในบทความที่อธิบายเรื่อง "โคเด็ค (Codec)" เราได้มีการกล่าวถึงความสับสนมักที่เกิดขึ้นระหว่าง "Codec" กับ "File Container" ไหน ๆ ก็ไหน ๆ แล้ว เราเลยรู้สึกว่าก็เป็นฤกษ์ดีที่จะมาอธิบายเกี่ยวกับ File Container อย่างละเอียดไปด้วยซะเลย
สำหรับ File Container มีหลายชื่อเรียก โดยสามารถเรียกมันว่า "Media Container" หรือจะเป็น "Container Format" ได้อีกด้วยเช่นกัน ในบทความนี้เราก็จะมาอธิบายว่ามันคืออะไร ?
ในบทความเรื่อง Codec เราได้อธิบายไปแล้วว่ามันมีหน้าที่ในการแปลงสัญญาณแอนะล็อกให้เป็นดิจิทัลเพื่อเก็บข้อมูลให้อยู่ในรูปแบบไบนารี่ (Binary) ซึ่งไฟล์แต่ละประเภทก็จะมีการใช้ Codec ที่แตกต่างกัน อย่างในไฟล์ภาพยนตร์หนึ่งไฟล์ อย่างน้อยก็ต้องประกอบไฟล์วิดีโอ, ไฟล์เสียง และซับไตเติล แต่เราจะสังเกตเห็นว่าเวลาเราเปิดรับชม มันก็มีแค่ไฟล์เดียวเท่านั้น ที่มันเป็นเช่นนั้นได้ก็เพราะเรามีสิ่งที่เรียกว่า "File Container"
ภาพจาก https://bitmovin.com/Container-formats-fun-1
ลองจินตนาการว่า เวลาเราต้องการจะรับชมภาพยนตร์สักเรื่อง ถ้าเราจะต้องเปิดถึง 3 ไฟล์ คือเปิดไฟล์วิดีโอ, ไฟล์เสียง และไฟล์ซับไตเติล นอกจากนี้ยังต้องกะเวลาให้มันเล่นตรงกันอีก ไม่อย่างนั้นภาพกับเสียงก็จะไม่ตรงกัน ไหนจะซับไตเติลอีก แล้วหากเราต้องกดข้ามไปส่วนใดส่วนหนึ่งของวิดีโอ เราก็ต้องมาปรับช่วงเวลาของการเล่นให้ตรงกันอีก มันฟังดูแล้วยุ่งยากใช่ไหมล่ะครับ
File Container อาจจะเรียกว่า Media Container หรือ Container formats ซึ่งคำว่า Container นั้นแปลความหมายตรงตัวก็จะหมายถึง ภาชนะ หรือหีบห่อ ดังนั้น File Container นั้นก็จะหมายถึงภาชนะสำหรับบรรจุไฟล์นั่นเอง มันมีไว้เพื่อรวมไฟล์ชนิดต่าง ๆ ที่จำเป็นต่อการทำงาน เช่น วิดีโอ (Video), เสียง (Audio), ซับไตเติล (Subtitle), เมทาดาตา (Metadata), ตำแหน่งตอน ฯลฯ เข้าไว้ด้วยกันเป็นไฟล์เดียว นอกจากนี้ File Container ยังมีคุณสมบัติในการเชื่อมการทำงานระหว่างไฟล์หลายไฟล์เข้าด้วยกัน เพื่อให้ง่ายต่อการรับชมส่วนต่าง ๆ ของเนื้อหา โดยอาศัยระบบดัชนีข้อมูลเพื่อค้นหาตำแหน่งที่ต้องการเล่นในการทำงาน
File Container มีหลายชนิด แต่ละชนิดก็จะรองรับ Codec ที่แตกต่างกัน มีคุณสมบัติในการทำงานที่แตกต่างกัน และมันยังเป็นตัวกำหนดมาตรฐานด้วยว่าข้อมูลจะถูกเข้ารหัส และถอดรหัสอย่างไร ? ตัวอย่างเช่น ไฟล์ .MP4 และไฟล์ .MKV เป็นไฟล์ File Container สำหรับวิดีโอที่ได้รับความนิยมเป็นอย่างมาก ทั้งคู่มีข้อดี-ข้อเสีย แตกต่างกัน ไม่มีอะไรดีกว่ากัน ขึ้นอยู่กับงานที่จะไปใช้
ภาพจาก https://dev.to/uploadcare/different-types-of-video-file-formats-and-why-webm-and-mp4-beat-them-all-3o0f
File contrainer ก็เหมือนกับไฟล์ Metadata ที่บันทึกข้อมูล, คุณสมบัติ และวิธีการที่มันจะทำงานร่วมกันได้เอาไว้ องค์ประกอบที่สำคัญของมันก็จะประกอบไปด้วย
เป็นการฝังข้อมูลมัลติมีเดียที่จะเล่นเอาไว้ภายในไฟล์ อาจจะมีไฟล์เดียว หรือมากกว่านั้นก็ได้ มีประโยชน์ในการรวมหลายไฟล์ให้เป็นไฟล์เดียว เพื่อให้ง่ายต่อการนำไปใช้ต่อ เช่น MPEG-4 (MP4) หรือ Audio Video Interleave (AVI) จะรองรับการรวมไฟล์วิดีโอ และไฟล์เสียงเข้าด้วยกัน
ส่วนนี้จะเป็นข้อมูลที่กำหนดว่าไฟล์มัลติมีเดียแต่ละไฟล์ จะทำงานร่วมกันได้อย่างไร ? อย่างเช่นข้อมูลช่วงเวลาของไฟล์เสียงที่จับคู่กับข้อมูลวิดีโอ เพื่อให้เสียง กับปากตัวละครเวลาพูดมีค่าเวลาที่ตรงกัน
เป็นข้อมูลช่วงเวลาที่ผู้ใช้สามารถเลือกเล่นได้ หากคุณเคยเจอแผ่นที่มีตัวเลือกว่าต้องการดูวิดีโอตอนไหนก่อน หรือเลือกแทรคเพลงที่ต้องการฟังได้ นั่นก็เป็นเพราะมีข้อมูล Seeking ใส่เอาไว้นั่นเอง
เมตาดาทา (Metadata) เป็นข้อมูลรูปแบบหนึ่งที่มีอยู่หลายประเภทมาก ๆ มีหน้าที่ในการบอกรายละเอียดของข้อมูลต่าง ๆ ที่ถูกเก็บไว้ในตัว File contrainer เช่น วันที่สร้าง, วันที่แก้ไขล่าสุด, ประเภทไฟล์, ขนาดไฟล์, ความละเอียดภาพ,อัตราส่วนภาพ, ชื่อเพลง, ชื่อวิดีโอ, ภาษาที่รองรับ ฯลฯ
ภาพจาก https://www.researchgate.net/figure/General-data-structure-of-a-multimedia-Container-The-header-and-the-general-metadata_fig1_315671842
File Contrainer สามารถแบ่งได้ 2 ประเภทคือ แบบที่เป็น "Single Coding Format" และแบบ "Multimedia Format" โดยมันมีความแตกต่างกันดังนี้
Single Coding Format | Multimedia Format | |
คำอธิบาย | File Container ที่ออกแบบมาเพื่อใช้กับไฟล์เพียงชนิดเดียว เช่น วิดีโอ, เสียง หรือรูปภาพ | File Container ที่ออกแบบมาเพื่อจัดการกับข้อมูลหลายประเภท เพื่อรวมข้อมูลวิดีโอ, เสียง, เมทาดาตา ฯลฯ เอาไว้เป็นไฟล์เดียว |
ตัวอย่างไฟล์ |
|
|
การใช้งาน |
|
|
ข้อจำกัด |
|
|
|
แอดมินสายเปื่อย ชอบลองอะไรใหม่ไปเรื่อยๆ รักแมว และเสียงเพลงเป็นพิเศษ |