Что делать с участниками видеоконференций с плохим интернетом или слабым железом?

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

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

И в каждой видеоконференции обязательно найдётся кто-то, чьё видео будет отставать, зависать или вовсе будет показывать какое-то слайдшоу. Дайте угадаю, вы сразу же вспомнили такого участника вашей последней видеоконференции. :) Это люди, чей компьютер устарел, захламлён тысячей работающих в фоновом режиме процессов, или чей интернет оставляет желать лучшего.

В этой статье я хочу разобрать возможные решения столь частой проблемы видеоконференций.

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

Есть три участника видеоконференции: A, B, C. У участников A и B очень хороший канал интернета и хорошее качество видео. А у участника C плохо ловящий 3G с постоянными потерями.

В итоге, если участник А будет отправлять видео в высоком качестве, которое способен принять участник B, то такое видео не пролезет в канал участника C. А если отправлять видео в качестве, которое беспроблемно работает для участника C, то участники A и B будут недовольны качеством связи. Как же быть?

Немного поразмыслив, мы в Voximplant сделали поддержку Simulcast для управления качеством видео в конференциях. Работает он так: участники с хорошим железом и широким каналом в интернет будут отправлять несколько потоков видео: в хорошем качестве для тех, кто может себе его позволить, и в качестве хуже для участников с плохим интернетом или железом. Какое качество кому отправлять, решает сервер.

Что происходит на стороне отправителя?

Для видео с веб-камер или стриминга мы управляем качеством с помощью изменения разрешения видео. Чем выше разрешение отправителя, тем больше слоёв он отправляет. Затем каждому участнику конференции отправляется видео в максимальном качестве, которое этот участник может принять.

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

А что на стороне получателя видео?

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

  • Видео запрашивается разрешением не больше, чем размер видео элемента на экране

  • Выключается прием видео тех участников, которые нам не интересны (например не помещаются на экран или не говорят)

Мы проводим различные эксперименты для того, чтобы найти больше способов улучшения качества видео для участников с разными возможностями, так что вскоре к этим методам будут добавлены новые.

Как использовать?

Всё уже встроено в платформу Voximplant. Достаточно подключиться с включённым simulcast’ом, и всё вышеперечисленное будет работать. Вот пример на Web SDK:

const conference = VoxImplant.getInstance().callConference({
    number: 'foobar',
    simulcast: true
});

А дальше можно уже вручную включать или выключать определённые видеопотоки, менять разрешение, устанавливать битрейт и многое другое. Кому интересно, вот здесь можно почитать, как всё реализовать.

Качественной всем связи!

Источник: https://habr.com/ru/company/Voximplant/blog/553628/


Интересные статьи

Интересные статьи

Данная история состоит из трёх частей, т.к. я выпустил три игры:●     Beasts Battle●     Necromancer Returns●     Magicians Legacy В пр...
Для того, чтобы получить реалистичный мир внутри игры, необходимо учитывать взаимодействие различных форм рельефа между собой и с другими моделями. И если видимые линии пересечения между 3D-модел...
Перевод статьи из блога AbcLinuxu В 2016 году я создал сабреддит /r/cyberDeck. Отчасти потому, что меня вдохновила статья о создании кибердеки, а отчасти из-за нескольких обсуждений в IRC, в к...
Доброго времени суток! В данной статье отражена проблема поддельных датчиков, ограничения существующих устройств, использующих эти датчики и решение данной проблемы. Источник: ali-trends.ru ...
Это история в двух частях — о новом витке развития automotive. Эта «серия» посвящена собственной разработке EPAM – Aos Connected Vehicle Platform. Алекс Агизим, CTO, Automotive & Embedded Sys...