Видеозвонки: технологии реализации, кастомизация Сербул Александр Руководитель направления контроля качества интеграции и внедрений 1С-Битрикс Стандарты http://www.w3.org/TR/webrtc/ - стандарт W3C Working Draft 21 August 2012 http://www.webrtc.org/ - реализация (компании Google, Mozilla, Opera) Chrome - Stable (27) Firefox – Betа, частичная webrtc4all – для остальных Кодеки HTML5 конкуренты формату H.264 WebM: VP8/Vorbis/Matroska WebRTC: VP8/(Opus, iSAC, iLBC) На днях стабилизировался: VP9/Opus - ожидается внедрение на YouTube Media Capture and Streams – структура браузерного API http://www.w3.org/TR/mediacapture-streams/ W3C Working Draft 16 May 2013 Media Capture and Streams – структура браузерного API Работа с тегами Video, объектами Canvas, MediaStream, MediaStreamTrack WebRTC – структура API «Real-time Communication Between Browsers» RTCPeerConnection – видео-аудио связь между браузерами RTCDataChannel – передача данных в обе стороны RTCStatsReport - статистика WebRTC – пример Самый маленький пример WebRTC без кода сигналинга Сигналинг – на стороне Битрикс. Стек WebRTC ICE – «как найти друг друга» «Interactive Connectivity Establishment (ICE)» rfc5245, PROPOSED STANDARD, 2010 Браузеры «находят» друг друга, используя технологии STUN/TURN. Видео-аудио передается по протоколу SRTP (UDP). STUN, TURN «Session Traversal Utilities for NAT (STUN)» rfc5245, PROPOSED STANDARD, 2008 «Traversal Using Relays around NAT (TURN)» rfc5766, PROPOSED STANDARD, 2010 Сначала NAT изобрели, потом начали «обходить» Взаимодействие браузеров Cтатусы peer Браузеры обмениваются описанием локальных потоков (streams) и портов через SDP v=0 o=jdoe 2890844526 2890842807 IN IP4 10.47.16.5 s=SDP Seminar i=A Seminar on the session description protocol u=http://www.example.com/seminars/sdp.pdf [email protected] (Jane Doe) c=IN IP4 224.2.17.12/127 t=2873397496 2873404696 a=recvonly m=audio 49170 RTP/AVP 0 m=video 51372 RTP/AVP 99 a=rtpmap:99 h263-1998/90000 Cтатусы ICE Соединение установлено, когда «состыкованы» все медиа-потоки. Сигналинг Браузеры передают описание сессии друг другу SDP «An Offer/Answer Model with the Session Description Protocol (SDP)» rfc3264, PROPOSED STANDARD, 2002 Сигналинг реализован внутри модуля Битрикс/КП Преодоление NAT Преодоление NAT Софт для TURN/STUN restund (BSD license) TurnServer (GNU GPL) rfc5766-turn-server (New BSD) Licode – пример открытого MCU для видеоконференций по WebRTC Видео-кластер Битрикс turn.calls.bitrix24.com – поддержка любых видов NAT (STUN, TURN) STUN/TURN-сервер внутри «1С-Битрикс: Виртуальная машина» - в планах Спасибо за внимание! Вопросы? Александр Сербул [email protected] @AlexSerbul