WebRTC (Web Real Time Communications) — это стандарт, который описывает передачу потоковых аудиоданных, видеоданных и контента от браузера и к браузеру в режиме реального времени без установки плагинов или иных расширений. Стандарт позволяет превратить браузер в оконечный терминал видеоконференцсвязи, достаточно просто открыть веб-страницу, чтобы начать общение.
Что такое WebRTC?
В этой статье мы рассмотрим все, что необходимо знать о технологии WebRTC для обычного пользователя. Рассмотрим преимущества и недостатки проекта, раскроем некоторые секреты, расскажем как работает, где и для чего применяется WebRTC.
Что нужно знать про WebRTC?
Эволюция стандартов и технологий видеосвязи
Сергей Юцайтис, Cisco, Видео+Конференция 2016Как работает WebRTC
На стороне клиента
- Пользователь открывает страницу, содержащую HTML5 тег
- Браузер запрашивает доступ к веб-камере и микрофону пользователя.
- JavaScript код на странице пользователя контролирует параметры соединения (IP-адреса и порты сервера WebRTC или других WebRTC клиентов) для обхода NAT и Firewall.
- При получении информации о собеседнике или о потоке со смикшированной на сервере конференцией, браузер начинает согласование используемых аудио и видео кодеков.
- Начинается процесс кодирования и передача потоковых данных между WebRTC клиентами (в нашем случае, между браузером и сервером).
На стороне WebRTC сервера
Для обмена данными между двумя участниками видеосервер не требуется, но если нужно объединить в одной конференции несколько участников, сервер необходим.
Видеосервер будет получать медиа-трафик с различных источников, преобразовывать его и отправлять пользователям, которые в качестве терминала используют WebRTC.
Также WebRTC сервер будет получать медиа-трафик от WebRTC пиров и передавать его участникам конференции, которые используют приложения для настольных компьютеров или мобильных устройств, в случае наличия таковых.
Преимущества стандарта
- Не требуется установка ПО.
- Очень высокое качество связи, благодаря:
- Использованию современных видео (VP8, H.264) и аудиокодеков (Opus).
- Автоматическое подстраивание качества потока под условия соединения.
- Встроенная система эхо- и шумоподавления.
- Автоматическая регулировка уровня чувствительности микрофонов участников (АРУ).
- Высокий уровень безопасности: все соединения защищены и зашифрованы согласно протоколам TLS и SRTP.
- Есть встроенный механизм захвата контента, например, рабочего стола.
- Возможность реализации любого интерфейса управления на основе HTML5 и JavaScript.
- Возможность интеграции интерфейса с любыми back-end системами с помощью WebSockets.
- Проект с открытым исходным кодом — можно внедрить в свой продукт или сервис.
- Настоящая кросс-платформенность: одно и то же WebRTC приложение будет одинаково хорошо работать на любой операционной системе, десктопной или мобильной, при условии, что браузер поддерживает WebRTC. Это значительно экономит ресурсы на разработку ПО.
Недостатки стандарта
- Для организации групповых аудио и видеоконференций требуется сервер ВКС, который бы микшировал видео и звук от участников, т.к. браузер не умеет синхронизировать несколько входящих потоков между собой.
- Все WebRTC решения несовместимы между собой, т.к. стандарт описывает лишь способы передачи видео и звука, оставляя реализацию способов адресации абонентов, отслеживания их доступности, обмена сообщениями и файлами, планирования и прочего за вендором.
- Другими словами вы не сможете позвонить из WebRTC приложения одного разработчика в WebRTC приложение другого разработчика.
- Микширование групповых конференций требует больших вычислительных ресурсов, поэтому такой тип видеосвязи требует покупки платной подписки либо инвестирования в свою инфраструктуру, где на каждую конференцию требуется 1 физическое ядро современного процессора.
Секреты WebRTC: как вендоры извлекают пользу из прорывной веб-технологии
Цахи Левент-Леви, Bloggeek.me, Видео+Конференция 2015
WebRTC для рынка ВКС
Увеличение числа ВКС-терминалов
Технология WebRTC оказала сильное влияние на развитие рынка ВКС. После выхода в свет первых браузеров с поддержкой WebRTC в 2013 году потенциальное количество терминалов видеоконференцсвязи по всему миру сразу увеличилось на 1 млрд. устройств. По сути, каждый браузер стал ВКС терминалом, не уступающий своим аппаратным аналогам с точки зрения качетсва связи.
Использование в специализированных решениях
Использование различных JavaScript библиотек и API облачных сервисов с поддержкой WebRTC позволяет легко добавить поддержку видеосвязи в любые веб-проекты. Ранее для передачи данных в реальном времени разработчикам приходилось изучать принципы работы протоколов и использовать наработки других компаний, которые чаще всего требовали дополнительного лицензирования, что увеличивало расходы. Уже сейчас WebRTC активно используется в сервисах вида “Позвонить с сайта”, “Онлайн-чат поддержки”, и т.п.
Ex-пользователям Skype для Linux
В 2014 году Microsoft объявила об прекращении поддержки проекта Skype для Linux, что вызвало большое раздражение у IT-специалистов. Технология WebRTC не привязана к операционной системе, а реализована на уровне браузера, т.е. Linux пользователи смогут увидеть в продуктах и сервисах на основе WebRTC полноценную замену Skype.
Конкуренция с Flash
WebRTC и HTML5 стали смертельным ударом для технологии Flash, которая и так переживала свои далеко не лучшие годы. С 2017 года ведущие браузеры официально перестали поддерживать Flash и технология окончательно исчезла с рынка. Но нужно отдать Flash должное, ведь именно он создал рынок веб-конференций и предложил технические возможности для живого общения в браузерах.
Видеопрезентации WebRTC
Дмитрий Одинцов, TrueConf, Видео+Конференция октябрь 2017
Кодеки в WebRTC
Аудиокодеки
Для сжатия аудио-трафика в WebRTC используются кодеки Opus и G.711.
G.711 — самый старый голосовой кодек с высоким битрейтом (64 kbps), который чаще всего применяется в системах традиционной телефонии. Основным достоинством является минимальная вычислительная нагрузка из-за использования легких алгоритмов сжатия. Кодек отличается низким уровнем компрессии голосовых сигналов и не вносит дополнительной задержки звука во время общения между пользователями.
G.711 поддерживается большим количеством устройств. Системы, в которых используется этот кодек, более легкие в применении, чем те, которые основаны на других аудиокодеках (G.723, G.726, G.728 и т.д.). По качеству G.711 получил оценку 4.2 в тестировании MOS (оценка в пределах 4-5 является самой высокой и означает хорошее качество, аналогичное качеству передачи голосового трафика в ISDN и даже выше).
Opus — это кодек с низкой задержкой кодирования (от 2.5 мс до 60 мс), поддержкой переменного битрейта и высоким уровнем сжатия, что идеально подходит для передачи потокового аудиосигнала в сетях с переменной пропускной способностью. Opus - гибридное решение, сочетающее в себе лучшие характеристики кодеков SILK (компрессия голоса, устранение искажений человеческой речи) и CELT (кодирование аудиоданных). Кодек находится в свободном доступе, разработчикам, которые его используют, не нужно платить отчисления правообладателям. По сравнению с другими аудиокодеками, Opus, несомненно, выигрывает по множеству показателей. Он затмил довольно популярные кодеки с низким битрейтом, такие, как MP3, Vorbis, AAC LC. Opus восстанавливает наиболее приближенную к оригиналу “картину” звука, чем AMR-WB и Speex. За этим кодеком - будущее, именно поэтому создатели технологии WebRTC включили его в обязательный ряд поддерживаемых аудиостандартов.
Видеокодеки
Вопросы выбора видеокодека для WebRTC заняли у разработчиков несколько лет, в итоге решили использовать H.264 и VP8. Практически все современные браузеры поддерживают оба кодека. Серверам видеоконференций для работы с WebRTC достаточно поддержать только один.
VP8 — свободный видеокодек с открытой лицензией, отличается высокой скоростью декодирования видеопотока и повышенной устойчивостью к потере кадров. Кодек универсален, его легко внедрить в аппаратные платформы, поэтому очень часто разработчики систем видеоконференцсвязи используют его в своих продуктах.
Платный видеокодек H.264 стал известен намного раньше своего собрата. Это кодек с высокой степенью сжатия видеопотока при сохранении высокого качества видео. Высокая распространенность этого кодека среди аппаратных систем видеоконференцсвязи предполагает его использование в стандарте WebRTC.
Компании Google и Mozilla активно продвигают кодек VP8, а Microsoft, Apple и Cisco — H.264 (для обеспечения совместимости с традиционными системами видеоконференцсвязи). И вот тут возникакет очень большая проблема для разработчиков облачных WebRTC решений, ведь если в конференции все участники используют один браузер, то конференцию достаточно микшировать один раз одним кодеком, а если браузеры разные и среди них есть Safari / Edge, то конференцию придётся кодировать два раза разными кодеками, что в два раза повысит системные требования к медиа-серверу и как следствие, стоимость подписок на WebRTC сервисы.
WebRTC API
Технология WebRTC базируется на трех основных API:
- (отвечает за принятие веб-браузером аудио и видеосигнала от камер или рабочего стола пользователя).
- RTCPeerConnection (отвечает за соединение между браузерами для “обмена” полученными от камеры, микрофона и рабочего стола, медиаданными. Также в “обязанности” этого API входит обработка сигнала (очистка его от посторонних шумов, регулировка громкости микрофона) и контроль над используемыми аудио и видеокодеками).
- RTCData Channel (обеспечивает двустороннюю передачу данных через установленное соединение).
Прежде чем получить доступ к микрофону и камере пользователя, браузер запрашивает на это разрешение. В Google Chrome можно заранее настроить доступ в разделе “Настройки”, в Opera и Firefox выбор устройств осуществляется непосредственно в момент получения доступа, из выпадающего списка. Запрос на разрешение будет появляться всегда при использовании протокола HTTP и однократно, если использовать HTTPS:
RTCPeerConnection . Каждый браузер, участвующий в WebRTC конференции, должен иметь доступ к данному объекту. Благодаря использованию RTCPeerConnection медиаданные от одного браузера к другому могут проходить даже через NAT и сетевые экраны. Для успешной передачи медиапотоков участники должны обменяться следующими данными с помощью транспорта, например, веб-сокетов:
- участник-инициатор направляет второму участнику Offer-SDP (структура данных, с характеристиками медиапотока, которые он будет передавать);
- второй участник формирует “ответ” — Answer-SDP и пересылает его инициатору;
- затем между участниками организуется обмен ICE-кандидатами, если таковые обнаружены (если участники находятся за NAT или сетевыми экранами).
После успешного завершения данного обмена между участниками организуется непосредственно передача медиапотоков (аудио и видео).
RTCData Channel . Поддержка протокола Data Channel появилась в браузерах сравнительно недавно, поэтому данный API можно рассматривать исключительно в случаях использования WebRTC в браузерах Mozilla Firefox 22+ и Google Chrome 26+. С его помощью участники могут обмениваться текстовыми сообщениями в браузере.
Подключение по WebRTC
Поддерживаемые десктопные браузеры
- Google Chrome (17+) и все браузеры на основе движка Chromium;
- Mozilla FireFox (18+);
- Opera (12+);
- Safari (11+);
Поддерживаемые мобильные браузеры для Android
- Google Chrome (28+);
- Mozilla Firefox (24+);
- Opera Mobile (12+);
- Safari (11+).
WebRTC, Microsoft и Internet Explorer
Очень долго Microsoft хранила молчание по поводу поддержки WebRTC в Internet Explorer и в своём новым браузере Edge. Ребята из Редмонда не очень любят давать в руки пользователей технологии, которые они не контролируют, вот такая вот политика. Но постепенно дело сдвинулось с мёртвой точки, т.к. игнорировать WebRTC далее было уже нельзя, и был анонсирован проект ORTC, производный от стандарта WebRTC.
По словам разработчиков ORTC — это расширение стандарта WebRTC с улучшенным набором API на основе JavaScript и HTML5, что в переводе на обычный язык означает, что всё будет то же самое, только контролировать стандарт и его развитие будет Microsoft, а не Google. Набор кодеков расширен поддержкой H.264 и некоторым аудиокодеками серии G.7ХХ, используемыми в телефонии и аппаратных ВКС системах. Возможно появится встроенная поддержка RDP (для передачи контента) и обмена сообщениями. Кстати, пользователям Internet Explorer не повезло, поддержка ORTC будет только в Edge. Ну и, естественно, такой набор протоколов и кодеков малой кровью стыкуется со Skype for Business, что открывает для WebRTC ещё больше бизнес применений.
Microsoft FrontPage для Windows 10 позволяет создавать веб-сайты без необходимости изучения HTML-языка. Достаточно только поместить нужный текст на страницу проекта, разместив в полагающихся местах картинки. Доступна разработка плагинов, эффектов, без использования сложных утилит, специальных скриптов.
Приложение обладает набором инструментов для взаимодействия с сайтом. Используются интегрированные шаблоны, позволяющие сделать ключевые интернет-страницы, либо контент в общем. Возможно применение профессиональных дизайнерских приемов, текстовых стилей. Есть комплекс опций для воплощения индивидуального стиля. Рекомендуем скачать Microsoft FrontPage для Windows 10 на русском языке без регистрации и смс с официального сайта.
Информация о программе- Лицензия: Бесплатная
- Разработчик: Microsoft
- Языки: русский, украинский, английский
- Устройства: пк, нетбук, ноутбук (Acer, ASUS, DELL, Lenovo, Samsung, Toshiba, HP, MSI)
- ОС: Windows 10 Домашняя, Профессиональная, Корпоративная, PRO, Enterprise, Education, Home Edition (обновления 1507, 1511, 1607, 1703, 170
FrontPage – это программа для создания HTML-страниц и их последующей "публикации". Это довольно старое программное решение, которое давно не поддерживается. На смену ему пришла программа .
Функционал
FrontPage станет полезным помощником для веб-мастеров, которые хотят упростить процесс создания веб-страниц и сделать его более комфортным. Программа предоставляет большой набор инструментов, с помощью которых можно не только создать странички, но и оформить их в соответствии со своими пожеланиями или требованиями заказчика. Достаточно удобно, что программа способна контролировать ошибки пользователя. Все ошибки в тегах будут найдены и продемонстрированы Вам для их дальнейшего исправления.
ПО содержит встроенный набор шаблонов, которые можно использовать при создании страниц – это позволит сэкономить время и обойтись без повторного изобретения велосипеда. С помощью специального менеджера можно очень быстро опубликовать готовую работу. А в случае возникновения затруднений и появления вопросов советуем открыть справочный раздел – он лучше Google подскажет, как найти выход из тупика.
Режимы работы
Программный продукт предоставляет несколько режимов работы – конструктор, код, просмотр результатов, а также "комбинированный" режим, в случае использования которого рабочее окно будет разделено на две области – создание кода и просмотр. При работе с конструктором и будут показаны все сделанные ошибки – там же можно работать с изображениями, вставляемыми между текстом, ссылками, рамками и множеством других элементов. Режим кода же рациональнее использовать не для просмотра, а для правки.
Ключевые особенности
- создание веб-страниц, их оформление и наполнение;
- визуальный просмотр кода с помощью режима конструктора (WYSIWYG);
- интегрированная библиотека шаблонов;
- встроенный менеджер для быстрой и удобной публикации конечного результата;
- возможность обратиться к справочнику;
- автоматические поиск и исправление ошибок;
- наличие русской версии графической оболочки.