ここ1週間カメラモジュールV2をブラウザで表示したいと思い試しています。なかなかできずに疲弊しています。
ラズパイのOSをbullseyeにしたので、今度こそはできるはず
bullseyeでは、Legacy Cameraを有効化しないとカメラが使えません。
sudo raspi-config
で、Interface OptionsからLegacy Camera Enable/disableを選択し、"はい"を選択するとカメラを有効になります。再起動後確認をします。
vcgencmd get_camera
OKならsupported=1 detected=1と表示されます。
ls /dev/video* v412-ctl --list-formats
でも確認ができます。
次にmjpg-streamerをインストールします。まずは関連モジュールから
sudo apt update sudo apt install -y \ git cmake build-essential \ libjpeg-dev \ libv4l-dev
そしてmjpg-streamerを取得します
cd ~ git clone https://github.com/jacksonliam/mjpg-streamer.git cd mjpg-streamer/mjpg-streamer-experimental
make
成功すると、input_uvc.so output_http.soなどが生成されます。
ストリーミングするには、
./mjpg_streamer \ -i "./input_uvc.so -d /dev/video0 -r 640x480 -f 15" \ -o "./output_http.so -p 8080 -w ./www"
を実行し、ブラウザで
http://ラズパイのIPアドレス/?action=stream
を開くと、カメラからの映像が出力されました。
これをラズパイ起動時に自動起動します。おなじみのnanoでサービスファイルを作ります。
sudo nano /etc/systemd/system/mjpg-streamer.service
[Unit] Description=MJPG Streamer Camera Service After=network.target [Service] Type=simple User=**** WorkingDirectory=/home/****/mjpg-streamer/mjpg-streamer-experimental ExecStart=/home/****/mjpg-streamer/mjpg-streamer-experimental/mjpg_streamer \ -i "/home/****/mjpg-streamer/mjpg-streamer-experimental/input_uvc.so -d /dev/video0 -r 640x480 -f 15" \ -o "/home/****/mjpg-streamer/mjpg-streamer-experimental/output_http.so -p 8080 -w /home/****/mjpg-streamer/mjpg-streamer-ex> Restart=always RestartSec=3 [Install] WantedBy=multi-user.target
systemdに認識させます。
sudo systemctl daemon-reload
sudo systemctl start mjpg-streamer
「****」はユーザー名です。これでブラウザからみれればOK。自動起動を有効化します。
sudo systemctl enable mjpg-streamer
結果として、RaspberryPi OSのバージョンがbullseyeでなければmjpg-streamerは使えませんでした。
trixie、bookwormとインストールして全く上手くいかず、ようやくできました。
かなり深い沼でしたが脱出できてよかった。