- Главная
| - Использование технологий SVC и WebRTC для программных видеоконференций
Видеоконференцсвязь через браузер сегодня используется многими компаниями самого разного масштаба. Это удобное и простое решение, позволяющее объединить в одном месте людей из отдаленных уголков как страны, так и всей планеты. И чаще всего для обеспечения максимально качественной связи такого плана используются технологии WebRTC и SVC. Рассмотрим их подробнее.
WebRTC
Технология WebRTC переводится, как «real-time communications» и подразумевает «коммуникации в реальном времени». WebRTC — продукт, который применяется для организации отправки потоковой информации (видео и аудио) через интернет-браузеры или другое программное обеспечение, которое поддерживает режим приема/передачи данных «точка-точка».
На уровне протокола эта технология стандартизируется сообществом IETF, а на API-уровне — W3C-консорциумом. WebRTC включена в рекомендации W3C и поддерживается всеми современными версиями браузеров Mozilla Firefox, Google Chrome, Safari, Opera. Исходный код продукта основан на решении Global IP Solution, которым владеет корпорация Google с 2010 года.
WebRTC приложения обеспечивают видеосвязь прямо в браузере и для начала конференции клиенту необходимо просто открыть ссылку, которая перенаправит его на веб-страницу с кабинетом для связи с другим пользователем.
Преимущества и недостатки технологии
WebRTC имеет следующие плюсы:
* связывать с кем-либо прямо в браузере может быть намного проще и быстрее, чем
устанавливать специальные десктоп-приложения;
* предусмотрена возможность реализовать любые интерфейсы при помощи JS и HTML5;
* продукт имеет открытый исходный код, что предоставляет определенным группам
пользователей больше возможностей.
Минусов у решения два:
1. Технология позволяет определить лишь общий стандарт передачи информации (аудио и
видео) и разные решения в браузерах в плане адресации клиентов и других
процессов несовместимы. Поэтому, даже позвонить друг другу, используя разные
браузеры, не так-то просто.
2. Чтобы обеспечить групповую конференцсвязь через WebRTC, необходимо использовать
различные вспомогательные решения.
Настройка WebRTC и применение: пример
Браузеры, работающие с WebRTC, поддерживают функцию getUserMedia с вендором-
префиксом. Ее применяют для получения доступа к оборудованию и приему на входе 3-х параметров:
1. тип оборудования;
2. видео;
3. аудио.
Также используется функция, которая получает управление в случае успешного подключения и функция, которая активируется в случае возникновения ошибки:
navigator.getUserMedia({audio: true, video: true}, success, error);
function success(pLocalMediaStream) {
/* обработка потокового видео */
}
function error(pError) {
/* вывод данных об ошибке */
console.log(pError);
}
WebRTC в видеоконференцсвязи для большого числа пользователей
Хотя WebRTC и создана для работы с подключением типа «точка-точка», есть несколько готовых продуктов на базе этой технологии, которые позволяют организовывать групповые видеоконференции. Называются они WebRTC-серверами и позволяют подключать к браузеру дополнительное оборудование по типу:
* Терминалов H.323 и SIP.
* IP-камер, работающих на основе протокола RTSP/RTP.
Да, решение не очень удобное, но альтернативы пока нет.
SVC
SVC — что это такое? Расшифровка аббревиатуры — «Scalable Video Coding», что переводится, как «масштабируемое видеокодирование». Эта технология подразумевает обработку и отправку видеоданных в режиме реального времени одновременно несколькими дополнительными потоками, с видео разного качества. То есть, SVC базируется на масштабировании и послойной передаче данных.
Поток с видео наилучшего качества кодируется в виде последовательности улучшений потоков с видео более низкого качества. В результате каждый клиент видеоконференции сможет использовать столько улучшений, сколько могут ему позволить вычислительные мощности оборудования.
Другими словами, при помощи технологии Scalable Video Coding сервер может адаптировать видеопоток под пропускную способность каждого канала передачи/приема данных без необходимости каждый раз заново пересчитывать потоки. В результате каждый пользователь имеет возможность получить максимально высокое качество видео, но это зависит от пропускной способности канала и используемого терминала пользователя.
Подробнее о технологии
SVC работает по следующему принципу:
1. Для видео, которое передаётся, создается его копия минимального качества и несколько слоев информации, при помощи которых эту копию с минимальным качеством можно улучшить до уровня Ultra HD
2. От каждого из клиентов сессии (видеоконференции) запрашиваются данные о пропускной способности канала и максимальном качестве видео, которые тот способен принять.
3. Все клиенты сессии получают копию видеопотока минимального качества и ту последовательность ее улучшений, которую они могут обработать в соответствии с доступной пропускной способностью канала и вычислительными возможностями пользовательского устройства.
4. После того, как данные будут приняты каждым клиентом, к копии видео минимального качества применяется доступная последовательность улучшений — в результате и получается итоговое видео с максимально возможным качеством.
Последовательность улучшений для видео может включать самые разнообразные данные:
* временное сжатие — когда, к примеру, вначале отправляется картинка с частотой 15 кадров в секунду, а вдобавок к ней все остальные кадры;
* пространственное сжатие — вначале отправляется видео с разрешением, например, 480p, а улучшения к нему позволяют «на выходе» получить качество видео 4K.
* комбинированное сжатие — при таком методе используются улучшения из двух вышеописанных методов сжатия в разной последовательности;
* качество само по себе — вначале данные отправляются в оригинальном разрешении и с оригинальной частотой кадров, но в худшем качестве, а улучшения позволяют сделать картинку более красивой и четкой.
Качество видеоданных, передаваемых по SVC, может быть следующим:
* 320 на 240 пикселей (15 fps), с пропускной способностью канала в 128 kbps;
* 640 на 480 пикселей (30 fps), с пропускной способностью канала в 256 kbps;;
* 1280 на 720 пикселей (30 fps), с пропускной способностью канала в 1024 kbps;.
Особенности применения SVC в видеоконференцсвязи
Главное преимущество использования технологии SVC для видеосвязи заключается в том, что она позволяет серьезно сократить вычислительные расходы на формирование общего изображения для всех клиентов конференции.
То есть, при таком подходе каждый клиент получает последовательность улучшений видео конкретно для своего потока. Сервер же просто контролирует то, чтобы каждый клиент принял максимально возможное качество видео.
При этом, SVC обеспечивает отправку каждому клиенту картинки именно того размера, который ему необходим — ни меньше и ни больше. Это крайне важно для масштабных видеоконференций, в которых принимает участие большое число пользователей.
Видеоконференции с WebRTC и SVC
Разумеется, современные системы для организации видеоконференций должны поддерживать обе технологии — и WebRTC, и SVC. Одно из таких решений — VideoMost. Это сервер для видеоконференций на Linux, обеспечивающий одновременную работу Mac, iOS, Android, ПК клиентов, а также интеграцию с приложениями от Microsoft и ВКС-терминалами.
Среди преимуществ системы VideoMost:
* одновременная поддержка WebRTC и SVC;
* лучшее качество картинки на любом устройстве;
* экономичность и безопасность;
* простой и понятный интерфейс;
* возможность быстрой масштабируемости системы;
* интеграция с приложениями для бизнеса.
Поделитесь статьей в социальных сетях: