Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
WebRTC (Web Real-Time Communications) - это технология, которая позволяет Web-приложениям и сайтам захватывать и выборочно передавать аудио и/или видео медиа-потоки, а также обмениваться произвольными данными между браузерами, без обязательного использования посредников. Набор стандартов, которые включает в себя технология WebRTC, позволяет обмениваться данными и проводить пиринговые телеконференции, без необходимости пользователю устанавливать плагины или любое другое стороннее программное обеспечение.
WebRTC состоит из нескольких взаимосвязанных программных интерфейсов (API) и протоколов, которые работают вместе. Документация, которую вы здесь найдёте, поможет вам понять основы WebRTC, как настроить и использовать соединение для передачи данных и медиа-потока, и многое другое.
WebRTC является многоцелевым и вместе с Media Capture and Streams API, предоставляют мощные мультимедийные возможности для Web, включая поддержку аудио и видео конференций, обмен файлами, захват экрана, управление идентификацией и взаимодействие с устаревшими телефонными системами, включая поддержку передачи сигналов тонового набора DTMF. Соединения между узлами могут создаваться без использования специальных драйверов или плагинов, и часто без промежуточных сервисов.
Соединение между двумя узлами представлено как объект интерфейса RTCPeerConnection. Как только соединение установлено и открыто, используя объект RTCPeerConnection, медиапотоки (MediaStreams) и/или каналы данных (RTCDataChannels) могут быть добавлены в соединение.
Медиа потоки могут состоять из любого количества треков (дорожек) медиаинформации. Эти треки, представлены объектами интерфейса MediaStreamTrack , и могут содержать один или несколько типов медиаданных, включая аудио, видео, текст (такие как субтитры или название глав). Большинство потоков состоят, как минимум, только из одного аудио трека (одной аудио дорожки), или видео дорожки, и могут быть отправлены и получены, как потоки (медиаданные в настоящим времени) или сохранены в файл.
Так же, можно использовать соединение между двумя узлами для обмена произвольными данными, используя объект интерфейса RTCDataChannel, что может быть использовано для передачи служебной информации, биржевых данных , пакетов игровых статусов, передача файлов или закрытых каналов передачи данных.
В целом WebRTC хорошо поддерживается современными браузерами, но некоторые проблемы всё же есть. Библиотека adapter.js позволяет приложениям избавиться от проблем несовместимости.
По причине того, что WebRTC предоставляет интерфейсы, работающие совместно для выполнения различных задач, мы разделили их на категории. Смотрите алфавитный указатель боковой панели для быстрой навигации.
Эти интерфейсы используются для настройки, открытия и управлением WebRTC соединениями. Они представляют одноуровневые медиа соединения, каналы данных, и интерфейсы, использующиеся при обмене информацией о возможностях каждого узла, для выбора наилучшей конфигурации при установки двустороннего мультимедийного соединения.
RTCPeerConnectionПредставляет WebRTC соединение между локальным компьютером и удалённым узлом. Используется для обработки успешной передачи данных между двумя узлами.
RTCSessionDescriptionПредставляет параметры сессии. Каждый RTCSessionDescription содержит описания типа, показывающего какую часть (предложение/ответ) процесса переговоров он описывает, и SDP-дескриптор сессии.
RTCIceCandidateПредставляет собой кандидата сервера установки интернет соединения (ICE) для установления соединения RTCPeerConnection.
RTCIceTransportПредставляет информацию о средстве подключения к Интернету (ICE).
RTCPeerConnectionIceEventПредставляет события, которые происходят в отношении кандидатов ICE, обычно RTCPeerConnection. Один тип передаётся данному объекту события: icecandidate.
RTCRtpSenderУправляет кодированием и передачей данных через объект типа MediaStreamTrack для объекта типа RTCPeerConnection.
RTCRtpReceiverУправляет получением и декодированием данных через объект типа MediaStreamTrack для объекта типа RTCPeerConnection.
RTCTrackEventУказывает на то, что новый входящий объект типа MediaStreamTrack был создан и объект типа RTCRtpReceiver был добавлен в объект RTCPeerConnection.
RTCCertificateПредставляет сертификат, который использует объект RTCPeerConnection.
RTCDataChannelПредставляет двунаправленный канал данных между двумя узлами соединения.
RTCDataChannelEventПредставляет события, которые возникают при присоединении объекта типа RTCDataChannel к объекту типа RTCPeerConnection. Один тип передаётся этому событию datachannel.
RTCDTMFSenderУправляет кодированием и передачей двухтональной мультичастотной (DTMF) сигнализацией для объекта типа RTCPeerConnection.
RTCDTMFToneChangeEventУказывает на входящее событие изменение тона двутоновой мультичастотной сигнализации (DTMF). Это событие не всплывает (если не указано иначе) и не является отменяемым (если не указано иначе).
RTCStatsReportАсинхронно сообщает статус для переданного объекта типа MediaStreamTrack .
RTCIdentityProviderRegistrarРегистрирует провайдер идентификации (idP).
RTCIdentityProviderАктивирует возможность браузеру запросить создание или проверку объявления идентификации.
RTCIdentityAssertionПредставляет идентификатор удалённого узла текущего соединения. Если узел ещё не установлен и подтверждён, ссылка на интерфейс вернёт null. После установки не изменяется.
RTCIdentityEventПредставляет объект события объявление идентификатора провайдером идентификации (idP). Событие объекта типа RTCPeerConnection. Один тип передаётся этому событию identityresult.
RTCIdentityErrorEventПредставляет объект события ошибки, связанной с провайдером идентификации (idP). Событие объекта типа RTCPeerConnection. Два типа ошибки передаются этому событию : idpassertionerror и idpvalidationerror.
Под API, который применяют разработчики, чтобы создавать и использовать WebRTC, расположен набор сетевых протоколов и стандартов соединения. Этот обзор - витрина этих стандартов.
Жизнь WebRTC-сессииWebRTC позволяет вам организовать соединение в режиме узел-узел для передачи произвольных данных, аудио-, видео-потоков или любую их комбинацию в браузере. В этой статье мы взглянем на жизнь WebRTC-сессии, начиная с установки соединения и пройдём весь путь до его завершения, когда оно больше не нужно.
Обзор WebRTC APIWebRTC состоит из нескольких взаимосвязанных программных интерфейсов (API) и протоколов, которые работают вместе, чтобы обеспечить поддержку обмена данными и медиа-потоками между двумя и более узлами. В этой статье представлен краткий обзор каждого из этих API и какую цель он преследует.
Основы WebRTCЭта статья проведёт вас через создание кросс-браузерного RTC-приложения. К концу этой статьи вы должны иметь работающий дата- и медиа-канал, работающий в режиме точка-точка.
Протоколы WebRTCВ этой статье представлены протоколы, в дополнение к которым создан API WebRTC.
Использование каналов данных в WebRTCЭто руководство описывает как вы можете использовать соединение узел-узел и связанный RTCDataChannel для обмена произвольными данными между двумя узлами.
Взаимосвязи WebRTCВ этой статье описано то, как протоколы, связанные с WebRTC, взаимодействуют друг с другом для того, чтобы создать соединение и передавать данные и/или медиа-потоки между узлами.
Организация WebRTC предлагает на GitHub библиотеку adapter.js для решения вопросов совместимости WebRTC реализаций в различных браузерах. Эта библиотека является JavaScript клином, который позволяет писать код, согласно спецификации, так, что бы он просто взял, и заработал во всех браузерах с поддержкой WebRTC, не смотря на проблемы совместимости браузеров.
Захват кадров с WebRTCСтатья описывает как использовать WebRTC для получения доступа к камере на компьютере или мобильном устройстве с поддержкой WebRTC, и захват кадров с его помощью.
Простой пример канала данных RTCDataChannelИнтерфейс RTCDataChannel - это функциональность, которая позволяет открыть канал передачи данных между двумя узлами, по которому можно предавать произвольные данные. Эти API намеренно подобны WebSocket API, так, что бы в обоих могла использоваться единая модель программирования.
Сигнализация и двухсторонние видео вызовыНапример, мы берём чат на веб сокете, который мы создали в другом примере, и добавляем в него способность создавать видео вызовы. Сервер чата расширяется функциональностью обработки WebRTC сигнализации.
| WebRTC: Real-Time Communication Between Browsers |
| Media Capture and Streams |
| Media Capture from DOM Elements |
В дополнение к этим спецификациям, определяющим API, необходимый для использования WebRTC, имеется несколько протоколов, перечисленных в разделе ресурсы.
This page was last modified on 17 дек. 2024 г. by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.