Управление потоками виртуального мультимедиа в Meet Media API

В контексте конференций WebRTC виртуальные медиапотоки — это медиапотоки, генерируемые блоком выборочной пересылки (SFU) для агрегирования и распределения медиаданных от нескольких участников. В отличие от прямых одноранговых медиапотоков, которые создали бы сложную сеть соединений в больших конференциях, виртуальные медиапотоки упрощают топологию. SFU получает отдельные медиапотоки от каждого участника и выборочно пересылает активные или релевантные потоки другим участникам, мультиплексируя их на меньший, фиксированный набор исходящих виртуальных медиапотоков.

Такой подход уменьшает количество одновременно поступающих потоков, которые должен обрабатывать каждый участник, снижая требования к обработке и пропускной способности. Каждый виртуальный поток может содержать медиаконтент от одного участника одновременно, динамически корректируемый SFU на основе таких факторов, как активность докладчика или назначение видео. Участники получают эти виртуальные потоки, фактически видя единое представление конференции без необходимости управлять отдельными потоками от каждого другого участника. Эта абстракция, обеспечиваемая виртуальными медиапотоками, имеет решающее значение для масштабирования конференций WebRTC до большого количества участников.

Для приема аудиосигнала клиент должен предоставить ровно три описания аудионосителей, создав таким образом три локальных аудиоприемопередатчика . Для приема видеосигнала клиент должен предоставить от одного до трех описаний видеоносителей, определив соответствующее количество видеоприемопередатчиков.

Приёмники

Каждый клиентский трансивер имеет выделенный RtpReceiver и выделенную "медиадорожку", которая принимает аудиопотоки RTP с серверов Meet.

Каждый трек имеет уникальный идентификатор и получает свой собственный поток RTP-пакетов от конкретного источника мультимедиа. Например, трек A может получать аудио из production-1 , а трек B — из production-2 .

SSRCs

Каждый RTP-пакет имеет значение заголовка Synchronization Source (SSRC) , которое связывает его с конкретным треком.

Аудиосессии через Meet Media API используют три различных медиапотока, каждый из которых имеет свой собственный статический SSRC. После установления эти значения SSRC никогда не меняются на протяжении всей сессии.

Виртуальные потоки

Meet Media API использует виртуальные медиапотоки . Они остаются статическими на протяжении всей сессии, но источник пакетов может меняться в зависимости от наиболее актуальных потоков. Виртуальные медиапотоки ведут себя одинаково как для аудио, так и для видео.

В заголовках RTP-пакетов указывается истинный источник RTP-пакетов. Meet присваивает каждому участнику конференции его собственный уникальный CSRC при подключении. Это значение остается неизменным до момента выхода участника из конференции.

Поскольку количество SSRC остается постоянным на протяжении всей сессии Meet Media API, возможны три сценария:

  1. Количество участников превышает количество доступных центров поддержки студентов-медиков :

    Meet передает сигналы от трех самых громких участников по трем каналам SSRC. Поскольку каждый поток RTP находится на своем собственном выделенном канале SSRC, смешивания между потоками нет.

    В ходе встречи передаются данные о трех самых громких участниках по трем каналам SSRC.
    Рисунок 1. В программе Meet отображаются голоса трех самых громких участников на трех уровнях SSRC.

    Если какой-либо из исходных потоков в конференции перестаёт быть одним из самых громких, Meet переключает RTP-пакеты, составляющие SSRC, на самый громкий поток.

    Встречи переключают RTP-пакеты на нового участника, говорящего громче всех.
    Рисунок 2. Meet переключает RTP-пакеты на нового участника, говорящего громче всех.
  2. Количество активных участников меньше, чем три аудио SSRC :

    В ситуации, когда доступных SSRC больше, чем потоков в конференции, Meet сопоставляет все доступные аудиопакеты со своим собственным уникальным SSRC. Все неиспользуемые SSRC остаются готовыми и доступными, но пакеты RTP не передаются.

    Meet maps сопоставляет доступные аудиопакеты со своим уникальным SSRC.
    Рисунок 3. Meet сопоставляет доступные аудиопакеты со своим собственным уникальным SSRC.
  3. Количество активных участников равно трем аудио SSRC :

    В сценарии с равным количеством участников и доступным SSRC, медиаконтент каждого участника сопоставляется с выделенным SSRC. Эти сопоставления сохраняются до тех пор, пока сохраняется данный конкретный сценарий.

    Meet сопоставляет медиафайлы каждого участника с выделенным SSRC.
    Рисунок 4. Meet сопоставляет медиафайлы каждого участника с выделенным SSRC.