Об этом проекте
pi-webrtc — это проект с открытым исходным кодом (Apache-2.0), который упаковывает потоковую передачу с камеры через WebRTC и удалённое управление в один бинарный файл для устройств Raspberry Pi и NVIDIA Jetson. Он написан на C++20 и собран на основе libwebrtc (m147.7727).
Что он делает
- Передаёт изображение с камеры Raspberry Pi или Jetson в браузер по WebRTC; проект заявляет задержку менее 100 мс в локальной сети.
- Передаёт управляющие сообщения и телеметрию обратно на устройство через WebRTC DataChannels.
- Работает удалённо через WiFi, LTE или 5G без необходимости публичного IP, используя обход NAT и контроль перегрузки.
- Поддерживает аппаратное кодирование H.264/AV1 на поддерживаемых устройствах с автоматическим переходом на программное кодирование при отсутствии поддержки.
Варианты сигналинга
Документированы три режима сигналинга, и несколько могут быть включены одновременно:
- MQTT: одноранговое соединение с управлением устройством, подходит для удалённого доступа.
- WHEP: воспроизведение с любым стандартным WebRTC-плеером.
- SFU: одновременный просмотр несколькими зрителями через LiveKit или Cloudflare Realtime.
Поддержка оборудования
- Raspberry Pi: бэкенд libcamera, аппаратное кодирование H.264 на поддерживаемых моделях.
- NVIDIA Jetson: бэкенд libargus, аппаратное кодирование H.264/AV1 на поддерживаемых моделях.
- USB-камеры через V4L2 на обеих платформах.
Быстрый старт
На Raspberry Pi OS Trixie (64-бит) установите зависимости (libmosquitto1, pulseaudio, libavformat61, libswscale8, libyaml-cpp0.8), скачайте последний архив релиза и запустите бинарный файл. Локальный тест WHEP можно запустить с камерой и UID, а затем просмотреть через веб-плеер, введя WHEP-URL устройства. Для удалённого однорангового использования бинарный файл принимает флаги MQTT host, port, username, password, UID, resolution, FPS и hardware-acceleration; можно использовать бесплатный экземпляр HiveMQ Cloud или собственный брокер.
Документация и лицензирование
Полная документация доступна по ссылкам из репозитория, с отдельными документами по сигналингу и быстрому старту. Проект лицензирован под Apache-2.0 с уведомлениями третьих сторон в NOTICE. В README также упоминается спонсорская программа, предоставляющая доступ к дополнительным релизам, функциям и документации.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.