บทความนี้จะอธิบายข้อมูลเบื้องต้นเกี่ยวกับไฟล์สื่อ เช่น แนวคิดของคอนเทนเนอร์ และรูปแบบโค้ดที่พร้อมใช้งานจำนวนหนึ่งซึ่งคุณใช้ในสตรีมได้ รวมถึงจะพูดถึงหัวข้อต่างๆ อย่างสตรีมมิงแบบปรับเปลี่ยนได้ อัตราบิต และความละเอียดคร่าวๆ แต่เราจะเจาะลึกหัวข้อเหล่านี้ทั้งหมดในส่วนถัดไป
การแสดงไฟล์วิดีโอ
คุณอาจคิดว่าสามารถถ่ายไฟล์ RAW จากกล้องวิดีโอแล้วอัปโหลดไฟล์ดังกล่าวไปยังเว็บได้โดยตรง เว็บไซต์สตรีมมิงวิดีโออย่าง YouTube หรือ Vimeo ให้คุณทำเช่นนั้นได้ และยังสตรีมแบบสดได้ด้วย โดยปกติแล้วการเชื่อมต่อกับพอร์ต HDMI ของกล้องแล้วประมวลผลผ่านการ์ดแคปเจอร์ บริการเหล่านี้ช่วยให้การประมวลผลและอัปโหลดวิดีโอง่ายขึ้นอย่างมาก ซึ่งรวมถึงการสร้างไฟล์และไฟล์ Manifest จำนวนมากที่จําเป็นสําหรับสตรีมมิงแบบปรับเปลี่ยนได้และความละเอียดต่างๆ รวมถึงข้อกำหนดอื่นๆ อีกมากมายที่ซับซ้อนและละเอียดอ่อน ซึ่งทำให้การโฮสต์ด้วยตนเองเป็นเรื่องยุ่งยาก การเตรียมและแสดงวิดีโอจากเว็บไซต์ของคุณเอง และอาจใช้เซิร์ฟเวอร์สื่อแยกต่างหากนั้นซับซ้อนกว่าการอัปโหลดไฟล์ RAW ของกล้องเพียงเล็กน้อย หากคุณสนใจประสบการณ์การใช้งานเว็บไซต์ของผู้ใช้
ไฟล์วิดีโอมีหลายรูปแบบ รูปแบบที่มาจากกล้องมักจะเป็นไฟล์ .mov
หรือ .mp4
หากคุณมีกล้องมิเรอร์เลสที่ทันสมัยและดี
อย่างไรก็ตาม แม้ว่า .mov
จะเหมาะสำหรับการบันทึก การตัดต่อ และกระบวนการหลังการถ่ายทำขั้นต้นอื่นๆ แต่ขนาดไฟล์ก็ทำให้ไม่เหมาะสำหรับการสตรีมผ่านเว็บ นอกจากนี้ ขนาดไฟล์ของ .mp4
ไฟล์ดิบใน 4K จะทําให้การเล่นไฟล์นั้นบนอุปกรณ์เคลื่อนที่เป็นไปอย่างยากลำบาก เนื่องจากเบราว์เซอร์รองรับรูปแบบไฟล์ที่แตกต่างกัน คุณจึงต้องสร้างไฟล์ที่เพิ่มประสิทธิภาพหลายไฟล์และอาจต้องสร้างไฟล์ Manifest ด้วยหากวางแผนที่จะรองรับสตรีมมิงแบบปรับอัตโนมัติ ก่อนแปลงไฟล์ คุณต้องเข้าใจข้อมูลเบื้องต้นเกี่ยวกับไฟล์และลักษณะของไฟล์
คอนเทนเนอร์ ตัวแปลงรหัส และสตรีม
ไฟล์ที่คุณเห็นในเชลล์ของระบบปฏิบัติการคือคอนเทนเนอร์ ซึ่งระบุด้วยนามสกุลไฟล์ (.mp4
, .webm
, .ogg
ฯลฯ) คอนเทนเนอร์จะเก็บสตรีมอย่างน้อย 1 รายการ ไฟล์สื่ออาจมีสตรีมได้หลายรายการในรูปแบบต่างๆ อีกมากมายที่เราจะไม่กล่าวถึงในที่นี้
ไฟล์ตัวอย่างที่ใช้ในส่วนนี้ในภายหลังจะมีสตรีมไม่เกิน 2 รายการ ได้แก่ สตรีมเสียงและสตรีมวิดีโอ ประเภทอื่นๆ ที่คุณอาจพบ ได้แก่ คำบรรยายแทนเสียงและข้อมูล ซึ่งทั้ง 2 ประเภทนี้อยู่นอกเหนือขอบเขตของบทความนี้ มีหลายกรณีที่ระบบจะจัดการสตรีมเสียงและวิดีโอแยกกัน ไฟล์ส่วนใหญ่ที่คุณพบจะมีเพียงสตรีมเสียงและสตรีมวิดีโอรายการเดียว
ข้อมูลจริงภายในสตรีมเสียงและวิดีโอจะได้รับการบีบอัดโดยใช้ตัวแปลงรหัส ตัวแปลงรหัสหรือโปรแกรมเข้ารหัส/ถอดรหัสคือรูปแบบการบีบอัดสำหรับข้อมูลวิดีโอหรือเสียง การแยกความแตกต่างระหว่างคอนเทนเนอร์กับตัวแปลงรหัสเป็นสิ่งสำคัญเนื่องจากไฟล์ที่มีคอนเทนเนอร์เดียวกันอาจมีเนื้อหาที่เข้ารหัสด้วยตัวแปลงรหัสที่แตกต่างกัน
รูปภาพด้านล่างแสดงโครงสร้างนี้ ทางด้านซ้ายคือโครงสร้างคอนเทนเนอร์พื้นฐานที่มีสตรีม 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