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

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

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

หากต้องการรับเสียง ไคลเอ็นต์ต้องเสนอ คำอธิบายสื่อเสียง 3 รายการอย่างแน่นอน ซึ่งจะสร้างตัวรับส่งสัญญาณเสียงในเครื่อง 3 รายการ หากต้องการรับวิดีโอ ไคลเอ็นต์ต้องเสนอคำอธิบายสื่อวิดีโอ 1-3 รายการเพื่อกำหนดจำนวนเครื่องรับส่งวิดีโอ

รีซีฟเวอร์

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

แต่ละแทร็กจะมีรหัสที่ไม่ซ้ำกันและจะได้รับสตรีมแพ็กเก็ต RTP ที่แตกต่างกัน จากแหล่งที่มาของสื่อนั้นๆ เช่น Track A อาจรับเสียงจาก production-1 ขณะที่ Track 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. มีผู้เข้าร่วมมากกว่า SSRCs ที่พร้อมใช้งาน:

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

    Meet จะส่งเสียงของผู้ที่พูดเสียงดังที่สุด 3 คนใน SSRCs ทั้ง 3 รายการ
    รูปที่ 1 Meet จะส่งเสียงของผู้ที่พูดเสียงดังที่สุด 3 คนใน SSRCs ทั้ง 3 รายการ

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

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

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

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

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

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