2024年9月29日日曜日

ラズパイカメラV1をμstreamerしてみた。

 Raspberry Pi Zero WにラズパイカメラV1を接続してブラウザからストリーミング映像を見れるようにしてみた。

前回UVC対応のカメラで試したので、今回はラズパイカメラV1を使ってみようかと。画質とか遅延を比較してみたいということで。

ラズパイカメラを使うためにlibcamera関係のパッケージをインストール。

sudo apt-get install libcamera-v4l2 libcamera-tools

この2つをインストールすればV4L2対応アプリから使えるようになるっぽい。

bookwormではraspi-configでカメラを有効にしなくても自動で認識されるっぽい。今回はRaspberry Pi Camera V1の互換品を使用したけど、起動時に一瞬カメラのLEDが点灯して消えるのでそこで初期化もしくは判別されてるのかな?

libcamera-hello --list-camera

とコマンドを入力すると

Available cameras
-----------------
0 : ov5647 [2592x1944 10-bit GBRG] (/base/soc/i2c0mux/i2c@1/ov5647@36)
    Modes: 'SGBRG10_CSI2P' : 640x480 [58.92 fps - (16, 0)/2560x1920 crop]
                             1296x972 [43.25 fps - (0, 0)/2592x1944 crop]
                             1920x1080 [30.62 fps - (348, 434)/1928x1080 crop]
                             2592x1944 [15.63 fps - (0, 0)/2592x1944 crop]

のようにov5647を認識してるっぽいので大丈夫そう。公式カメラじゃないパターンだと手動でconfig.txtで設定しないといけないらしいけど。

ここらへんのカメラ周りの実装も昔から結構変わってるっぽい。bullseyeから導入されたlibcameraっていうドライバに置き換わってるらしい。

ustreamerもlibcamerifyを通して実行してやるとちゃんとv4l2互換で動くらしい。

sudo libcamerify ustreamer --encoder=m2m-video --host=0.0.0.0 --port=8080 -r 1920x1080

こんな感じで実行してやればあとはブラウザからhttp://ラズパイのIPアドレス:8080にアクセスするとstreamからストリーミング映像が見れる。

しかしHWバッファー系のエラーがでて結構カクカク…
ustreamer側のサポートでもlibcamerify側の問題じゃないかということで他のラズパイモデルでも問題が起きてる模様。今のところUSBカメラのほうがサクサク動くんじゃないかな。特にハードウェア処理できるUSBカメラの場合はCPU負荷もあまりないし、遅延も少なそう。

せっかくラズパイカメラをワイドレンズにしたので低遅延でこのカメラを使いたいんだよな…

0 件のコメント:

コメントを投稿