Tag: Frigate

タグ・月別アーカイブ

Frigate NVR

Proxmox で QNAP の NVR の代わりとして導入しました

良い点

  • rtsp proxy が含まれている (go2rtc)
    • 別に導入すれば良い話だが知らなかったので助かった
    • 動画のストリームを一つしか出力できないカメラで特に助かった
  • UI が軽い
    • PCのパワーがダンチなのでそれはそう
  • object detection により録画イベントが厳選された
    • ノイズが大幅に減った

困った点

外部トリガーの機能不足 (1)

QNAP ではカメラ側の探知で ftp でアクセスを行い、それをトリガーとして遡って録画できたが、難しい

既存の仕組みの組み合わせで言えば、30秒バッファリングして rtsp ストリームを送り、イベントはリアルタイムにすれば遡って録画はできるが・・・、ダッシュボードなど色々面倒になる

演算コストは必要になるが、高性能な object detection をそのまま使うこととした

外部トリガーの機能不足 (2)

QNAP では特定カメラのモーション探知をソースとして、複数チャネルを録画できたが、これも難しそうだった

色々試したのだが、例えば探知用の仮想ストリームを作ってそれから探知させたりしていたが、ダッシュボードではタイミングにより探知用の軽量ストリームを使用していて破綻した

結果的に、定期的に object detection の対象となったタイムスパンの motion detection フラグを立てるスクリプトを実行し、保持期間を強制的に伸ばした

消費電力の上昇

motion 探知用に複数チャネルを CPU でデコードし、CPU で object detection を回しているため、それなりに負荷がかかる (9700X で 5%〜10%)

Intel の CPU であれば iGPU を利用して効率化が図れるらしいが、AMD ではあまり実績がないようで、試していない

object detection に関しては外部 TPU (Coral, Hailo8) を使えばかなり良くなるような記事を多くみたが、どちらも、かなり過去のプロダクトで、購入するのがもったいなく…
NVidia GPU は消費電力がおそらくすごいので試してすらいない

奇妙なカメラの存在

ストリームを一つしか受け付けなく二つ目で 503 を返したり、複数の解像度のエンドポイントがありつつも、最後のエンドポイントの解像度でしか送れない(最後に接続したエンドポイントの解像度に変更される)、など

これは Frigate の制限だと思うが、record 用の rtsp と detect 用の rtsp を準備して、detect 用は常時デコードすることが前提となっており、detect に使わないカメラでも常時デコード用のストリームを一つ用意する必要がある(record 用と同じでも良いが解像度が高い分コストがかかる)

detect 用に ffmpeg でIフレーム以外捨てたり、解像度を落としたものを record とは別に rtsp で再配信するようにした

総合的に

良かった(こなみ
なんだかんだで計測しながら色々試せたのが楽しかった。

なんだかんだ言って Coral TPU 試したいので、どこかで買うかも