SVC (Scalable Video Coding) — архитектура видеоконференций на основе масштабируемого видеокодирования, работа которой построена на следующей схеме:
- Клиент формирует SVC-поток за счет сжатия видеопотока слоями и отправляет его ВКС-серверу. При этом количество слоёв в потоке, которое будет отправлено, определяется шириной канала связи и полосы пропускания.
- Сервер обрабатывает полученные SVC-потоки от всех клиентов, отсекая лишние слои без перекодирования.
- Сервер возвращает каждому клиенту обработанные видеопотоки остальных участников.
- Клиент формирует раскладку видеоконференции.
Революционность технологии SVC заключается в генерации множества слоёв видеопотока – от основного (с самым низким битрейтом) до множества дополнительных, позволяющих радикально улучшить итоговое качество картинки на совместимых устройствах. Стоит заметить, что слой — это не отдельный видеопоток меньшего качества, а полноценная разница между ним и предыдущим слоем. При этом увеличивается не только общий битрейт – можно повысить частоту кадров видео (например, с 15 кад/сек до 60), увеличить разрешение до 4K и настроить степень сжатия.
И всё это доступно в автоматическом режиме. Например, при смене раскладки то окно, которое было основным, а затем уменьшилось в размерах, начинает получать меньший поток. Так сервер реагирует на изменения разрешения окон. Подобное применимо в обе стороны – при увеличении окна качество видео повышается.
Это работает для всех участников конференции, позволяя избежать ситуаций, в которых максимальное качество видео ограничено участником с самым слабым оборудованием. Каждый получает поток данных, оптимально подходящий для его устройства и ширины канала.
Для поддержки SVC не нужен мощный дорогостоящий сервер, достаточно обычного компьютера с современным процессором. Технология настолько оптимизирует кодирование потока, что количество участников видеоконференции может достигать нескольких тысяч человек.
Так например, сервис Zoom смог справиться с ростом нагрузки во время пандемии COVID-19 только благодаря технологии SVC. Преимущества данной технологии позволили значительно увеличить число пользователей сервиса благодаря максимально эффективному использованию мощностей серверов. Как показала статистика, современная технология кодирования потоков SVC позволила нарастить число ежедневных пользователей Zoom c 10 млн в 2019 году до 300 млн в 2020.
Сравним: 16 участников, на клиенте
MCU | SVC | |
---|---|---|
Исходящих потоков | 1 | 1 |
Входящих потоков | 1 | 15 |
Исходящий канал, Мб/с | 1,0 | 1,2 |
Входящий канал, Мб/с | 1,0 | 1,2 |
Нагрузка на ЦП | 20% | 70% |
Сравним: 16 участников, на сервере
MCU | SVC | |
---|---|---|
Исходящих потоков | 16 | 240 |
Входящих потоков | 16 | 16 |
Исходящий канал, Мб/с | 16,0 | 19,2 |
Входящий канал, Мб/с | 16,0 | 19,2 |
Нагрузка на vCPU | 1600% | 0% |
С точки зрения сетевой нагрузки, набор потоков отличается от единого потока (как в MCU) на 20-30%. Отсутствует избыточность, так как многослойность SVC позволяет очень точно подобрать поток под то разрешение, которое выбрано у пользователя.
Системы с SVC-архитектурой совмещают в себе все преимущества микширующих, которые кодируют поток для каждого отдельного устройства, и при этом лишены недостатков систем на основе мультиплексирования. Они дешёвые, кроссплатформенные и легко масштабируются.
Для более углублённого понимания принципов работы этой и других архитектур видеоконференцсвязи рекомендуем данное видео:
Также предлагаем ознакомиться с другими типами архитектур видеоконференций у нас на сайте.