ข้อมูลเบื้องต้นเกี่ยวกับไฟล์สื่อ

เดเรก เฮอร์แมน
Derek Herman
โจ เมดเลย์
Joe Medley

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

การแสดงไฟล์วิดีโอ

คุณอาจคิดว่าสามารถนำไฟล์ RAW จากกล้องวิดีโอมาอัปโหลดขึ้นเว็บตามที่เป็นอยู่ได้เลย อันที่จริง เว็บไซต์สตรีมวิดีโออย่าง YouTube หรือ Vimeo ให้คุณทำได้ และยังเป็นการสตรีมมิ่งแบบสดได้ด้วยการเชื่อมต่อเข้ากับพอร์ต HDMI ของกล้อง แล้วประมวลผลผ่านการ์ดจับภาพ บริการเหล่านี้ช่วยลดความซับซ้อนในการประมวลผลและอัปโหลดวิดีโอได้อย่างมาก รวมถึงการสร้างไฟล์และไฟล์ Manifest จำนวนมากที่จำเป็นสำหรับการสตรีมแบบปรับเปลี่ยนได้และความละเอียดแบบต่างๆ และข้อกำหนดที่ซับซ้อนและแตกต่างกันมากมาย ทำให้การโฮสต์ตัวเองเป็นงานที่น่าเบื่อ การเตรียมและแสดงวิดีโอจากเว็บไซต์ของคุณ (หรือเซิร์ฟเวอร์สื่อที่แยกต่างหาก) อาจซับซ้อนกว่าการอัปโหลดไฟล์กล้องดิบ หากคุณให้ความสำคัญกับประสบการณ์การใช้งานเว็บไซต์ของผู้ใช้

ไฟล์วิดีโอมีหลายรูปแบบ รูปแบบที่มาจากกล้องมักเป็นไฟล์ .mov หรือ .mp4 หากคุณมีกล้องมิเรอร์เลสและทันสมัยที่ดี อย่างไรก็ตาม แม้ว่า .mov จะเหมาะสำหรับการบันทึกและสำหรับการแก้ไข รวมถึงกระบวนการอื่นๆ ในขั้นตอนหลังการผลิต แต่ขนาดไฟล์ดังกล่าวหมายความว่าไฟล์ไม่เหมาะสำหรับการสตรีมผ่านเว็บ และขนาดไฟล์ไฟล์ข้อมูล RAW .mp4 ในรูปแบบ 4K ก็จะทำให้การเล่นไฟล์บนอุปกรณ์เคลื่อนที่เป็นเรื่องต้องห้ามมาก เนื่องจากเบราว์เซอร์รองรับรูปแบบไฟล์ต่างๆ คุณจึงต้องสร้างไฟล์ที่เพิ่มประสิทธิภาพหลายไฟล์และอาจเป็นไฟล์ Manifest หากมีแผนรองรับสตรีมมิงแบบปรับอัตโนมัติ ก่อนแปลงไฟล์ คุณต้องเข้าใจ พื้นฐานบางอย่างเกี่ยวกับไฟล์ดังกล่าวและลักษณะของไฟล์

คอนเทนเนอร์และตัวแปลงรหัสกับสตรีมคืออะไร

ไฟล์ที่คุณเห็นใน Shell ของระบบปฏิบัติการคือคอนเทนเนอร์ ซึ่งระบุโดยนามสกุลไฟล์ (.mp4, .webm, .ogg ฯลฯ) คอนเทนเนอร์จะมีสตรีมอย่างน้อย 1 รายการ ไฟล์สื่อ 1 ไฟล์สามารถมีสตรีมได้ไม่จำกัดจำนวนและมากกว่า รูปแบบ ที่เราจะกล่าวถึงในที่นี้

ไฟล์ตัวอย่างที่ใช้ภายหลังในส่วนนี้มีสตรีมไม่เกิน 2 รายการ ได้แก่ สตรีมเสียงและสตรีมวิดีโอ ตัวอย่างประเภทอื่นๆ ที่คุณอาจพบคือ คำบรรยายวิดีโอและข้อมูล ซึ่งทั้ง 2 อย่างนี้อยู่นอกเหนือขอบเขตของบทความนี้ มีบางกรณีที่ต้องจัดการสตรีมเสียงและวิดีโอแยกกัน ไฟล์ส่วนใหญ่ที่คุณจะพบจะมีสตรีมเสียงและสตรีมวิดีโออย่างละ 1 รายการเท่านั้น

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

ภาพด้านล่างแสดงโครงสร้างนี้ ทางด้านซ้ายคือโครงสร้างคอนเทนเนอร์พื้นฐาน ที่มีสตรีม 2 สตรีม ทางด้านขวาคือข้อมูลเฉพาะของโครงสร้างนั้น สำหรับไฟล์ WebM ไฟล์เดียว

การเปรียบเทียบโครงสร้างไฟล์สื่อกับไฟล์สื่อสมมติ
ส่วนต่างๆ ของไฟล์สื่อ

ไฟล์ในคอนเทนเนอร์ WebM อาจมีขนาดที่เล็กกว่ารูปแบบอื่นๆ ทำให้เป็นตัวเลือกที่ดีสำหรับการสตรีมสำหรับเว็บไซต์ในอุปกรณ์เคลื่อนที่ น่าเสียดายที่เบราว์เซอร์บางประเภท ไม่รองรับคอนเทนเนอร์และตัวแปลงรหัสเวอร์ชันปัจจุบัน ตัวอย่างเช่น WebM สร้างขึ้นสำหรับเว็บโดยเฉพาะเป็นตัวเลือกคุณภาพสูงแบบโอเพนซอร์ส แต่การรองรับของ WebM นั้นยังไม่เป็นสากล โดยเฉพาะอย่างยิ่ง Safari จะไม่รองรับ WebM สำหรับวิดีโอแบบฝัง ตามข้อมูลในฉันสามารถใช้ อย่างไรก็ตาม WebM รองรับตัวแปลงรหัส VP8 และ VP9 ที่ใช้ใน WebRTC บางส่วน ดังนั้นตัวเลือกที่ดีที่สุดคือ การให้วิดีโอสำรอง

รูปแบบตัวแปลงรหัส

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

ประเภทไฟล์ ตัวแปลงสัญญาณภาพ ตัวแปลงสัญญาณเสียง
MP4 AV1, AVC (H.264)*, VP9 AAC
WebM AV1, VP9* Vorbis, Opus

* ระบุตัวแปลงรหัสวิดีโอที่ต้องการ

อัตราบิตและความละเอียด

อัตราบิตคือจำนวนบิตสูงสุดที่ใช้เข้ารหัส 1 วินาทีของสตรีม ยิ่งมีการใช้บิตในการเข้ารหัสสตรีมใน 1 วินาทีมากเท่าใด รายละเอียดที่เป็นไปได้และความแม่นยำก็ยิ่งสูงขึ้นเท่านั้น เราให้ข้อมูลเพิ่มเติมเกี่ยวกับแนวคิดนี้ในอัตราบิต

ความละเอียดคือปริมาณข้อมูลในเฟรมเดียวของวิดีโอ โดยระบุเป็นจำนวนพิกเซลเชิงตรรกะในแต่ละมิติข้อมูล เราให้ข้อมูลเพิ่มเติมเกี่ยวกับแนวคิดนี้ในการแก้ปัญหา

ในข้อมูลเบื้องต้นเกี่ยวกับแอปพลิเคชันสื่อ เราจะแสดงวิธีตรวจสอบลักษณะเฉพาะเหล่านี้โดยใช้เครื่องมือบรรทัดคำสั่ง 2 รายการ ได้แก่ Shaka Packager และ FFmpeg