Об этом проекте

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 также упоминается спонсорская программа, предоставляющая доступ к дополнительным релизам, функциям и документации.