ストリーミングプロトコル

HomeBe·at はカメラフィード用に複数のストリーミングプロトコルをサポートしています。アプリは各カメラで利用可能なプロトコルを自動的に検出し、最適なものを選択します。

プロトコルの比較

プロトコル遅延品質セットアップ
WebRTC< 1sHA 2024.11 以降内蔵
RTSP< 1sカメラへの直接接続
HLS5–15sHA カメラに内蔵
MJPEG1–2s内蔵フォールバック

自動フォールバックチェーン

HomeBe·at はストリーミングプロトコルが失敗した場合、自動フォールバックチェーンを使用します:

WebRTC > MJPEG > VLC (RTSP) > HLS > Snapshot

WebRTC の接続に失敗した場合(go2rtc が利用できない、または UDP がブロックされているなど)、アプリは即座に MJPEG にフォールバックし、同時に VLC または HLS ストリームの確立を試みます。カメラビューのバッジに現在アクティブなプロトコルが表示されます。

カスタム RTSP URL が設定されているカメラ(手動設定または go2rtc からの自動検出)の場合、VLC が RTSP フィードを直接ストリーミングし、1秒未満の遅延を実現します。

WebRTC

推奨プロトコル。高品質な映像を1秒未満の遅延で提供します。Home Assistant の go2rtc が必要です(HA 2024.11 以降内蔵)。メディア転送に UDP を使用するため、HA サーバーとデバイス間で UDP トラフィックを許可する必要があります。

コーデックサポート

HomeBe·at は H.264、H.265(HEVC)、VP8、VP9、AV1 のビデオコーデックをサポートしています。コーデックは go2rtc とアプリ間で自動的にネゴシエーションされます。H.265 サポートは、ネイティブで HEVC ストリーミングを行うカメラ(新しい Reolink や UniFi モデルなど)にとって特に有利で、低ビットレートでより高い品質を提供します。

品質レベル

品質制御はカメラの種類によって異なります:

Reolink カメラ — 解像度チャンネル(fluent / clear)を持つ Reolink カメラはネイティブなストリーム切り替えを使用します。アプリは中画質には低解像度の fluent エンティティに、高画質には高解像度の clear エンティティに接続します。各ストリームがネイティブ品質であるため、ビットレート制限は不要です。品質は MQ と HQ の間でのみ切り替わります。

その他のカメラ — その他のカメラ(代替チャンネルエンティティが WebRTC をサポートしない UniFi Protect を含む)は、プライマリエンティティに SDP ビットレート制約を使用します:

品質ビットレート
低画質 (LQ)2.5 Mbps
中画質 (MQ)5 Mbps
高画質 (HQ)8 Mbps

カメラビューの品質バッジを切り替えると、WebRTC 接続を停止・再起動します。Reolink カメラの場合はストリームエンティティ間で切り替え、その他のカメラの場合は新しい SDP 制約が適用されます。

マルチレンズカメラ

複数のレンズを持つカメラ(例:Reolink Duo 3 PoE)は、HomeBe·at ではレンズごとに個別のカメラとして表示されます。各レンズには独自の解像度チャンネルと品質切り替えがあります。アプリはレンズをデバイスごとに自動的にグループ化し、各レンズに正しい fluent/clear エンティティをマッピングします。

MJPEG

Motion JPEG は HTTP 経由で一連の JPEG フレームをストリーミングします。あらゆるネットワークで動作しますが(UDP 不要)、WebRTC と比べて画質が低く、帯域幅をより多く使用します。WebRTC が利用できない場合の主要なフォールバックです。

HLS

HTTP Live Streaming は映像を小さなチャンクに分割し、HTTP 経由で配信します。信頼性が高くどこでも動作しますが、セグメントバッファリングのため 5〜15 秒の遅延が発生します。Home Assistant のすべてのカメラエンティティに内蔵されています。

RTSP(VLC経由)

Real-Time Streaming Protocol は低遅延で高品質なストリームを提供します。内蔵の VLC プレーヤーでストリーミングされます。カスタムカメラや、RTSP URL オーバーライドが設定された Home Assistant カメラ(手動設定または go2rtc 自動検出)に使用されます。

RTSP は H.264 と H.265 の両方のコーデックをサポートしています。WebRTC と RTSP の両方が H.265 をサポートするようになったため、HEVC エンコーディングを使用するカメラにはどちらのプロトコルも適しています。

プロトコルの選択

ほとんどのユーザーには、デフォルトの自動選択が最適です。アプリは利用可能な中で最も低遅延なプロトコルを選択します:

  • go2rtc がセットアップ済みの場合 — WebRTC(最良の体験)
  • WebRTC が失敗または利用不可の場合 — 即座に MJPEG、その後 HLS にアップグレード
  • 遅延より信頼性を優先する場合 — HLS(常に動作、遅延は大きい)

アプリの設定でカメラごとにストリーミングプロトコルを変更できます。