aiortc
? aiortc
— это библиотека для веб-коммуникаций в реальном времени (WebRTC) и объектной коммуникации в реальном времени (ORTC) на Python. Он построен на основе asyncio
, стандартной среды асинхронного ввода-вывода Python.
API точно соответствует своему аналогу в Javascript при использовании питонических конструкций:
обещания заменяются сопрограммами
события создаются с помощью pyee.EventEmitter
Чтобы узнать больше об aiortc
прочтите документацию.
aiortc
?Основные реализации WebRTC и ORTC либо встроены в веб-браузеры, либо представлены в виде собственного кода. Несмотря на то, что они тщательно проверены в боевых условиях, их внутреннее устройство сложное, и они не предоставляют привязок Python. Более того, они тесно связаны со стеком мультимедиа, что затрудняет подключение алгоритмов обработки аудио или видео.
Напротив, реализация aiortc
довольно проста и удобна для чтения. Таким образом, это хорошая отправная точка для программистов, желающих понять, как работает WebRTC, или поработать с его внутренними компонентами. Также легко создавать инновационные продукты, используя обширные модули, доступные в экосистеме Python. Например, вы можете создать полноценный сервер, обрабатывающий каналы передачи сигналов и данных, или применить алгоритмы компьютерного зрения к видеокадрам с помощью OpenCV.
Кроме того, много усилий было потрачено на написание обширного набора тестов для кода aiortc
, чтобы обеспечить лучшее в своем классе качество кода.
aiortc
позволяет обмениваться каналами аудио, видео и данных, а совместимость регулярно тестируется как с Chrome, так и с Firefox. Вот некоторые из его особенностей:
Генерация/анализ SDP
Интерактивное подключение к сети с поддержкой Half-Trickle и mDNS.
Генерация ключа DTLS и сертификата
DTLS-квитирование, шифрование/дешифрование (для SCTP)
Ключ SRTP, шифрование и дешифрование для RTP и RTCP
Реализация SCTP на чистом Python
Каналы передачи данных
Отправка и получение звука (Opus/PCMU/PCMA)
Отправка и получение видео (VP8/H.264)
Объединение каналов аудио/видео/данных
Отчеты RTCP, включая NACK/PLI для восстановления после потери пакетов
Самый простой способ установить aiortc
— запустить:
pip установить aiortc
Если для вашей системы нет колес или вы хотите собрать aiortc из исходного кода, вам понадобится пара библиотек, установленных в вашей системе:
Opus для кодирования/декодирования звука
LibVPX для кодирования/декодирования видео
В Debian/Ubuntu запустите:
apt установить libopus-dev libvpx-dev
В OS X запустите:
заварить установку opus libvpx
aiortc
выпускается под лицензией BSD.