Repolode
pion

pion/webrtc

Реализация WebRTC API на чистом Go для создания одноранговых соединений с передачей аудио, видео и данных в реальном времени.

Звёзды
16,851
Форки
1,912
Открытые issues
107
Последний коммит
9 часов назад

Что это?

Pion WebRTC — библиотека на Go, реализующая WebRTC API. Она позволяет Go-программам устанавливать одноранговые соединения для передачи аудио, видео и произвольных данных по каналам. Библиотека поддерживает API PeerConnection, включая повторное согласование, DataChannels и SDP в режимах Plan-B и Unified Plan, а также полноценный ICE-агент, STUN и TURN поверх UDP, TCP, DTLS и TLS.

Библиотека полностью написана на Go, без Cgo, поэтому её можно кросс-компилировать для Windows, macOS, Linux, FreeBSD, iOS, Android, WebAssembly и ряда других архитектур. Поддержка медиа включает прямой доступ к RTP/RTCP, пакетизаторы для Opus, PCM, H264, VP8 и VP9, а также средства чтения и записи IVF, Ogg и Matroska. Также доступны simulcast, SVC, NACK, обратная связь для управления перегрузкой и оценка пропускной способности.

Проект распространяется по лицензии MIT и предназначен для разработчиков, которым нужен WebRTC на сервере или во встраиваемых устройствах, а не только в браузерах.

Ключевые возможности

  • 01Полноценный API PeerConnection с поддержкой DataChannels, повторного согласования и Unified Plan
  • 02Полноценный ICE-агент со STUN и TURN поверх UDP, TCP, DTLS и TLS
  • 03Чистый Go без Cgo; сборка для Windows, macOS, Linux, iOS, Android и WASM
  • 04Прямой доступ к RTP/RTCP и пакетизаторы Opus, H264, VP8 и VP9
  • 05Поддержка IVF, Ogg и Matroska для отправки и сохранения медиа
  • 06Simulcast, SVC, NACK и оценка пропускной способности

Сценарии использования

  • Передача видео с веб-камеры в браузер с встраиваемого устройства
  • Отправка видеофайлов нескольким клиентам браузера в реальном времени
  • Создание серверных приложений для обработки медиаданных или видеоконференций на WebRTC
  • Защищённая передача данных между двумя серверами по каналам данных WebRTC

Быстрый старт

  1. 1

    Включите Go Modules, задав переменную окружения

    export GO111MODULE=on
  2. 2

    Импортируйте библиотеку в проект Go, указав путь /v4

  3. 3

    Посмотрите примеры приложений для распространённых сценариев использования

Что важно знать

  • Go Modules обязателен, а для текущего релиза путь импорта должен включать /v4.
  • Версия 4 содержит несовместимые изменения, поэтому пользователям v3 следует проверить теги предыдущего релиза.
  • Для реализации getUserMedia требуется Cgo.

Темы

Частые вопросы

Что такое webrtc?
Реализация WebRTC API на чистом Go для создания одноранговых соединений с передачей аудио, видео и данных в реальном времени. Pion WebRTC — библиотека на Go, реализующая WebRTC API. Она позволяет Go-программам устанавливать одноранговые соединения для передачи аудио, видео и произвольных данных по каналам. Библиотека поддерживает API PeerConnection, включая повторное согласование, DataChannels и SDP в режимах Plan-B и Unified Plan, а также полноценный ICE-агент, STUN и TURN поверх UDP, TCP, DTLS и TLS.
webrtc можно использовать бесплатно? Какая у него лицензия?
webrtc распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
webrtc всё ещё поддерживается?
Активно поддерживается. Последний коммит в webrtc — 21 окт. 2026 г..
Для чего можно использовать webrtc?
Передача видео с веб-камеры в браузер с встраиваемого устройства Отправка видеофайлов нескольким клиентам браузера в реальном времени Создание серверных приложений для обработки медиаданных или видеоконференций на WebRTC Защищённая передача данных между двумя серверами по каналам данных WebRTC
Как установить webrtc?
Включите Go Modules, задав переменную окружения: export GO111MODULE=on Импортируйте библиотеку в проект Go, указав путь /v4 Посмотрите примеры приложений для распространённых сценариев использования
Где скачать webrtc?
Исходный код и инструкции по установке — на GitHub: https://github.com/pion/webrtc

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Современный и простой в использовании текстовый редактор для терминала, который поставляется одним статическим бинарным файлом без зависимостей и позиционируется как преемник nano.

29,7 тыс.1,4 тыс.GoMITОбновлён 1 час назад