จัดการสตรีมสื่อเสมือนจริงใน Meet Media API

สตรีมสื่อเสมือนในบริบทของการประชุม WebRTC คือสตรีมสื่อที่หน่วยส่งต่อแบบเลือก (SFU) สร้างขึ้นเพื่อรวบรวมและกระจายสื่อจากผู้เข้าร่วมหลายคน สตรีมสื่อเสมือนจะลดความซับซ้อนของโทโพโลยี ซึ่งแตกต่างจากสตรีมสื่อแบบเพียร์ต่อเพียร์โดยตรงที่จะสร้างการเชื่อมต่อที่ซับซ้อนในการประชุมขนาดใหญ่ SFU จะรับสตรีมสื่อแต่ละรายการจากผู้เข้าร่วมแต่ละราย และเลือกส่งต่อสตรีมที่กำลังทำงานหรือที่เกี่ยวข้องไปยังผู้เข้าร่วมคนอื่นๆ โดยมัลติเพล็กซ์สตรีมเหล่านั้นไปยังชุดสตรีมสื่อเสมือนขาออกที่เล็กลงและคงที่

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

หากต้องการรับเสียง ลูกค้าต้องเสนอคำอธิบายสื่อเสียง 3 รายการโดยสร้างเครื่องรับส่งเสียงในพื้นที่ 3 เครื่อง หากต้องการรับวิดีโอ ลูกค้าต้องระบุคำอธิบายสื่อวิดีโอ 1-3 รายการ ซึ่งจะกำหนดจำนวนตัวรับส่งวิดีโอ

รีซีฟเวอร์

ตัวรับส่งสัญญาณของลูกค้าแต่ละตัวจะมี RtpReceiver และ "แทร็กสื่อ" โดยเฉพาะที่รับสตรีม RTP เสียงจากเซิร์ฟเวอร์ Meet

แทร็กแต่ละรายการจะมีรหัสที่ไม่ซ้ำกันและรับสตรีมแพ็กเก็ต RTP ที่แตกต่างกันจากแหล่งที่มาของสื่อนั้นๆ ตัวอย่างเช่น แทร็ก A อาจรับเสียงจาก production-1 ส่วนแทร็ก B รับเสียงจาก production-2

SSRC

แพ็กเก็ต RTP แต่ละรายการมีค่าส่วนหัวแหล่งที่มาของการซิงค์ (SSRC) ซึ่งเชื่อมโยงกับแทร็กหนึ่งๆ

เซสชันเสียงผ่าน Meet Media API ใช้สตรีมสื่อ 3 รายการที่แตกต่างกัน โดยแต่ละรายการจะมี SSRC แบบคงที่ของตัวเอง เมื่อสร้างแล้ว ค่า SSRC เหล่านี้จะไม่เปลี่ยนแปลงตลอดอายุของเซสชัน

สตรีมเสมือนจริง

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

แหล่งที่มาที่มีส่วนร่วม (CSRC) ในส่วนหัวของแพ็กเก็ต RTP จะระบุแหล่งที่มาจริงของแพ็กเก็ต RTP Meet จะกำหนด CSRC ที่ไม่ซ้ำกันให้แก่ผู้เข้าร่วมแต่ละคนในการประชุมเมื่อเข้าร่วม ค่านี้จะคงที่จนกว่าผู้ใช้จะออกจากหน้า

เนื่องจากจำนวน SSRC มีค่าคงที่ตลอดเซสชัน Meet Media API สถานการณ์ที่เป็นไปได้ 3 ประการมีดังนี้

  1. มีผู้เข้าร่วมมากกว่า SSRC ที่มี

    โดย Meet จะส่งเสียงของบุคคลที่ดังที่สุด 3 คนจาก SSRC ทั้ง 3 รายการ เนื่องจากสตรีม RTP แต่ละรายการอยู่ใน SSRC เฉพาะของตนเอง จึงไม่มีการผสมระหว่างสตรีม

    โดย Meet จะส่งเสียงของบุคคลที่ดังที่สุด 3 คนจาก SSRC ทั้ง 3 รายการ
    รูปที่ 1 โดย Meet จะส่งเสียงของบุคคลที่ดังที่สุด 3 คนจาก SSRC ทั้ง 3 รายการ

    หากสตรีมต้นฉบับในสนทนากลุ่มไม่ได้เป็นสตรีมที่ดังที่สุดอีกต่อไป Meet จะเปลี่ยนแพ็กเก็ต RTP ที่ประกอบเป็น SSRC เป็นสตรีมที่ดังที่สุด

    Meet จะเปลี่ยนแพ็กเก็ต RTP ไปยังบุคคลที่พูดเสียงดังที่สุดคนใหม่
    รูปที่ 2 Meet จะเปลี่ยนแพ็กเก็ต RTP ไปยังบุคคลที่พูดเสียงดังที่สุดคนใหม่
  2. จำนวนผู้เข้าร่วมที่ใช้งานอยู่น้อยกว่า SSRC เสียง 3 รายการ

    สำหรับกรณีที่มี SSRC มากกว่าสตรีมในการประชุม Meet จะจับคู่แพ็กเก็ตเสียงที่มีอยู่กับ SSRC ที่ไม่ซ้ำกันของตนเอง SSRC ที่ไม่ได้ใช้จะยังคงพร้อมใช้งาน แต่ไม่มีการส่งแพ็กเก็ต RTP

    Meet จะแมปแพ็กเก็ตเสียงที่พร้อมใช้งานกับ SSRC ที่ไม่ซ้ำกันของตัวเอง
    รูปที่ 3 Meet จะแมปแพ็กเก็ตเสียงที่พร้อมใช้งานกับ SSRC ที่ไม่ซ้ำกันของตัวเอง
  3. จํานวนผู้เข้าร่วมที่ใช้งานอยู่เท่ากับ SSRC เสียง 3 รายการ

    สำหรับกรณีที่มีผู้เข้าร่วมเท่าๆ กันและ SSRC พร้อมใช้งาน ระบบจะแมปสื่อของผู้เข้าร่วมแต่ละรายกับ SSRC โดยเฉพาะ การแมปเหล่านี้จะยังคงอยู่ตราบเท่าที่สถานการณ์นี้ยังคงอยู่

    Meet จะแมปสื่อของผู้เข้าร่วมแต่ละคนกับ SSRC โดยเฉพาะ
    รูปที่ 4 Meet จะแมปสื่อของผู้เข้าร่วมแต่ละคนกับ SSRC โดยเฉพาะ