Raspberry Piベースのオープンソース防犯カメラ
(github.com/TzuHuanTai)- Raspberry Pi WebRTC は、Raspberry Pi または NVIDIA Jetson を約200msの遅延を持つ WebRTC ストリーミングプラットフォームに変える C++20 ベースのプロジェクト
- ネイティブ WebRTC を使用し、ハードウェア/ソフトウェアエンコード、スナップショット、録画、配信、WebRTC DataChannel によるリモート制御と IoT メッセージングをサポート
- シグナリング方式として MQTT、WHEP、WebSocket をサポートし、MQTT は Pi カメラとクライアントが WebRTC 接続情報を交換するために使われる
- 対応デバイスは Raspberry Pi Zero/3/4/5 と NVIDIA Jetson Nano/NX/Orin で、カメラは CSI または USB を利用でき、libcamera、libargus、V4L2 をサポートしている必要がある
- Pi 5 またはハードウェアエンコーダのないデバイスでは、実行オプションから
--hw-accelを削除する必要があり、WHEP はブローカー不要だが 公開ホスト名 が必要
プロジェクト概要
- Raspberry Pi WebRTC は、Raspberry Pi または NVIDIA Jetson を低遅延 WebRTC ストリーミングプラットフォームに変えるプロジェクト
- 目標遅延時間は約 200ms
- 主な技術表記は以下の通り
-
libwebrtc m146.7680
-
C++20
- Apache 2.0 ライセンス
-
対応機能
- ネイティブ WebRTC ベースのストリーミングを提供
- 映像エンコードは ハードウェアエンコード とソフトウェアエンコードをサポート
- カメラ機能にはスナップショット、録画、配信が含まれる
- WebRTC DataChannel を通じてリモート制御と IoT メッセージングをサポート
シグナリング方式とクライアント
- MQTT シグナリング方式をサポート
- WHEP シグナリング方式をサポート
- WebSocket シグナリング方式をサポート
- picamera.js: SFU シグナリング処理と配信
要件
- 対応ボードは Raspberry Pi Zero/3/4/5 または NVIDIA Jetson Nano/NX/Orin
- カメラは CSI または USB カメラ を使用可能
- カメラ入力は libcamera、libargus、または V4L2 をサポートしている必要がある
Raspberry Pi クイックスタート
- Raspberry Pi OS のインストール
- Raspberry Pi Imager で SD カードに Lite OS を書き込む
- 依存関係のインストール
libmosquitto1,pulseaudio,libavformat61,libswscale8,libyaml-cpp0.8をインストール
- バイナリのダウンロード
- 最新の release binary をダウンロードして展開
- MQTT シグナリング処理
実行方法と注意点
- picamera-web を開き、MQTT 設定を追加した後に
UIDを生成 - Pi で
./pi-webrtcを実行し、カメラ、FPS、解像度、MQTT ホスト、ポート、ユーザー名、パスワード、UID などをオプションで指定 - 例のオプションには
--camera=libcamera:0,--fps=30,--width=1280,--height=960,--use-mqtt,--no-audioなどが含まれる --hw-accelは Pi Zero 2W, 3B, 4B でハードウェアエンコードを使う際に付けるオプション- Pi 5 またはハードウェアエンコーダのないデバイスでは
--hw-accelを削除する必要がある
まだコメントはありません。