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 strumienie multimediów od każdego uczestnika i selektywnie przekazuje aktywne lub istotne strumienie do innych uczestników, multipleksując je na 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 transmisja wirtualna może zawierać multimedia od jednego uczestnika naraz. SFU dynamicznie dostosowuje je 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 odbierać 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 nadajnik-odbiornik należący do klienta 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 wideo.

Ź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 w momencie dołączenia. Ta wartość pozostaje stała, dopóki użytkownik nie opuści witryny.

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 głosy za pomocą 3 identyfikatorów SSRC. Każdy strumień RTP ma własny, dedykowany identyfikator SSRC, więc strumienie nie są ze sobą mieszane.

    Meet przesyła 3 najgłośniejsze osoby w 3 SSRC.
    Rysunek 1. Meet przesyła 3 najgłośniejsze osoby w 3 SSRC.

    Jeśli któryś 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 nowego najgłośniejszego uczestnika.
    Rysunek 2. Meet przełącza pakiety RTP na nowego najgłośniejszego uczestnika.
  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 mapuje wszystkie dostępne pakiety audio na własne, unikalne identyfikatory 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 multimedia 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.