프로젝트 소개
pi-webrtc는 Raspberry Pi와 NVIDIA Jetson 기기를 위한 WebRTC 카메라 스트리밍 및 원격 제어를 단일 바이너리로 패키징한 오픈소스 프로젝트(Apache-2.0)입니다. C++20으로 작성되었으며 libwebrtc(m147.7727)를 기반으로 빌드됩니다.
기능
- WebRTC를 통해 Raspberry Pi 또는 Jetson의 카메라를 브라우저로 스트리밍하며, 프로젝트 측은 LAN에서 100ms 미만의 지연을 주장합니다.
- WebRTC DataChannel을 통해 제어 메시지와 텔레메트리를 기기로 다시 전달합니다.
- NAT 통과와 혼잡 제어를 사용하여 공인 IP 없이 WiFi, LTE 또는 5G를 통해 원격으로 작동합니다.
- 지원되는 기기에서 하드웨어 가속 H.264/AV1 인코딩을 지원하며, 지원되지 않을 경우 소프트웨어 인코딩으로 자동 폴백합니다.
시그널링 옵션
세 가지 시그널링 모드가 문서화되어 있으며, 여러 모드를 동시에 활성화할 수 있습니다:
- MQTT: 기기 제어를 포함한 피어 투 피어 방식으로, 원격 접속에 적합합니다.
- WHEP: 모든 표준 WebRTC 플레이어를 통한 재생.
- SFU: LiveKit 또는 Cloudflare Realtime을 통한 동시 시청.
하드웨어 지원
- Raspberry Pi: libcamera 백엔드, 지원되는 모델에서 H.264 하드웨어 인코딩.
- NVIDIA Jetson: libargus 백엔드, 지원되는 모델에서 H.264/AV1 하드웨어 인코딩.
- 두 플랫폼 모두에서 V4L2를 통한 USB 카메라.
빠른 시작
Raspberry Pi OS Trixie(64비트)에서 의존성(libmosquitto1, pulseaudio, libavformat61, libswscale8, libyaml-cpp0.8)을 설치하고, 최신 릴리스 tarball을 다운로드한 후 바이너리를 실행합니다. 로컬 WHEP 테스트는 카메라와 UID로 시작할 수 있으며, 웹 플레이어에서 기기의 WHEP URL을 입력하여 시청할 수 있습니다. 원격 피어 투 피어 사용을 위해 바이너리는 MQTT 호스트, 포트, 사용자 이름, 비밀번호, UID, 해상도, FPS 및 하드웨어 가속 플래그를 받아들입니다. 무료 HiveMQ Cloud 인스턴스나 자체 호스팅 브로커를 사용할 수 있습니다.
문서 및 라이선스
전체 문서는 저장소에서 링크되며, 시그널링과 빠른 시작에 대한 별도 문서가 있습니다. 프로젝트는 Apache-2.0에 따라 라이선스되며 NOTICE에 제3자 고지가 포함되어 있습니다. README는 추가 릴리스, 기능 및 문서에 대한 접근을 제공하는 스폰서십 프로그램도 언급합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.