Zarządzanie wirtualnymi strumieniami multimediów w interfejsie Meet Media API

Wirtualne strumienie multimediów w kontekście konferencji WebRTC to strumienie multimediów generowane przez selektywną jednostkę przekazywania (SFU) w celu agregowania i rozpowszechniania multimediów od wielu uczestników. W przeciwieństwie do bezpośrednich strumieni multimediów peer-to-peer, które w przypadku dużych konferencji tworzyłyby złożoną sieć połączeń, wirtualne strumienie multimediów upraszczają topologię. SFU odbiera indywidualne strumienie multimediów od każdego uczestnika i selektywnie przekazuje aktywne lub istotne strumienie do innych uczestników, multipleksując je w mniejszy, stały zestaw wychodzących wirtualnych strumieni multimediów.

Takie podejście zmniejsza liczbę jednoczesnych strumieni przychodzących, które każdy uczestnik musi obsługiwać, co obniża wymagania dotyczące przetwarzania i przepustowości. Każda wirtualna transmisja może zawierać multimedia od jednego uczestnika naraz, dynamicznie dostosowywane przez SFU na podstawie czynników takich jak aktywność mówcy czy przypisanie wideo. Uczestnicy otrzymują te wirtualne strumienie, dzięki czemu widzą złożony widok konferencji bez konieczności zarządzania poszczególnymi strumieniami od innych uczestników. Ta abstrakcja zapewniana przez wirtualne strumienie multimediów ma kluczowe znaczenie dla skalowania konferencji WebRTC do dużej liczby uczestników.

Aby odbierać dźwięk, klient musi oferować dokładnie 3 opisy multimediów audio, tworząc 3 lokalne nadajniki-odbiorniki audio. Aby otrzymać wideo, klient musi zaoferować od 1 do 3 opisów multimediów wideo, co oznacza, że musi mieć odpowiednią liczbę nadajników-odbiorników wideo.

Przyjmujący

Każdy należący do klienta nadajnik-odbiornik ma dedykowany RtpReceiver i dedykowaną „ścieżkę multimediów”, która odbiera strumienie audio RTP z serwerów Meet.

Każda ścieżka ma niepowtarzalny identyfikator i otrzymuje własny strumień pakietów RTP z danego źródła multimediów. Na przykład ścieżka A może odbierać dźwięk z production-1, a ścieżka B – z production-2.

SSRC

Każdy pakiet RTP ma wartość nagłówka Źródło synchronizacji (SSRC), która wiąże go z konkretną ścieżką.

Sesje audio za pomocą interfejsu Meet Media API korzystają z 3 różnych strumieni multimediów, z których każdy ma własny statyczny identyfikator SSRC. Po ustaleniu wartości SSRC nigdy nie zmieniają się one przez cały czas trwania sesji.

Strumienie wirtualne

Interfejs Meet Media API korzysta z wirtualnych strumieni multimediów. Są one statyczne w trakcie sesji, ale źródło pakietów może się zmieniać, aby odzwierciedlać najbardziej odpowiednie pliki danych. Wirtualne strumienie multimediów działają tak samo w przypadku dźwięku i obrazu.

Źródło uczestniczące (CSRC) w nagłówkach pakietu RTP identyfikuje prawdziwe źródło pakietów RTP. Meet przypisuje każdemu uczestnikowi konferencji unikalny identyfikator CSRC, gdy dołącza on do spotkania. Ta wartość pozostaje stała do momentu, gdy użytkownik opuści witrynę.

Liczba SSRC jest stała w całej sesji interfejsu Meet Media API, dlatego możliwe są 3 scenariusze:

  1. Więcej uczestników niż dostępnych SSRC:

    Meet przesyła 3 najgłośniejsze osoby w 3 strumieniach SSRC. Każdy strumień RTP ma własny, dedykowany identyfikator SSRC, więc strumienie nie są ze sobą mieszane.

    Meet przesyła trzy najgłośniejsze osoby w trzech strumieniach SSRC.
    Rysunek 1. Meet przesyła trzy najgłośniejsze osoby w trzech strumieniach SSRC.

    Jeśli którykolwiek z pierwotnych strumieni w konferencji nie jest już jednym z najgłośniejszych, Meet przełącza pakiety RTP, które składają się na SSRC, na najgłośniejszy strumień.

    Meet przełącza pakiety RTP na nową najgłośniejszą osobę.
    Rysunek 2. Meet przełącza pakiety RTP na nową najgłośniejszą osobę.
  2. Liczba aktywnych uczestników jest mniejsza niż 3 źródła SSRC audio:

    Jeśli w konferencji jest więcej identyfikatorów SSRC niż strumieni, Meet przypisuje wszystkie dostępne pakiety audio do własnych, unikalnych identyfikatorów SSRC. Nieużywane identyfikatory SSRC są nadal gotowe i dostępne, ale nie są przesyłane żadne pakiety RTP.

    Mapuje dostępne pakiety audio na własny, unikalny identyfikator SSRC.
    Rysunek 3. Mapuje dostępne pakiety audio na własny, unikalny identyfikator SSRC.
  3. Liczba aktywnych uczestników jest równa 3 źródłom SSRC audio:

    W przypadku równej liczby uczestników i dostępnych identyfikatorów SSRC media każdego uczestnika są mapowane na dedykowany identyfikator SSRC. Te mapowania są zachowywane tak długo, jak długo trwa ten konkretny scenariusz.

    Meet mapuje multimedia każdego uczestnika na dedykowany identyfikator SSRC.
    Rysunek 4. Meet mapuje multimedia każdego uczestnika na dedykowany identyfikator SSRC.