け い ざ ん の D I Y 工 房

◆Home
◆住まいの D I Y
◆パソコン D I Y
◆ROBOT D I Y
◆電子工作 D I Y
◆Science

● Raspberry Pi Bookwormに camera-streamerを installする

 2026.05.10

 Raspiの OS Ver.12 bookwormでは mjpg-streamer は「libjpeg8-dev」を必要としますが、
 これはもう利用できずその後継である libjpeg9-dev はこれと互換性がありません。
 
 mjpg-streamerは約17年ぐらい前に開発された Softwareのためすでに本家の開発は停止しており
 Volunteersが継続してメンテナンスを行ってきましたが、RasPi OSの Ver.11 bullseyeでも
 十分な対応が出来ていなかった。
 このため Raspi OS Ver.12 bookwormでは camera-streamerに Tryしてみます。


 【使用するcamera】
 RaspberryPi camera Module v2 (imx219)を使用します。


   Raspberry Pi Camera module (IMX219PQ)
  



 Raspberry Pi camera仕様
 image sensor IMX219PQ (SONY 8Mp 固定解像度)
 静止画解像度 3280x2464
 Frame rate  1920x1080 (H262:1080 30fps 720 60fps 640x480 90fps)
 電源     15pin FFC cable 150mm


 camera-streamerは、githubから Downloadして installします。
 $ sudo wget https://github.com/ayufan/camera-streamer/releases/download/v0.4.2/camera-streamer-raspi_0.4.2.bookworm_arm64.deb

 camera-streamerの公式 site → ayufan/camera-streamer
 
 公式 siteの install方法は Fileを Downloadして installする方法になっています。
 まだ公式開示はされていに様ですが、実際は apt-getで installできる様になっていました。
 
 まず、依存 program を installする。
 $ sudo apt-get -y install libavformat-dev libavutil-dev libavcodec-dev libcamera-dev liblivemedia-dev v4l-utils pkg-config xxd build-essential cmake libssl-dev

 $ sudo apt-get install camera-streamer-raspi     ← これは便利になった。
 
 installされた先を探してみると fileは /usr/share/camera-streamer にありました。
 Folderの中には起動用のsystemctl.serviceの入った examples folderがあります。
 
 対応している cameraの種類
 -rw-r--r-- 1 root root 1055 5月 26 2023 camera-streamer-arducam-16MP.service
 -rw-r--r-- 1 root root 1128 5月 26 2023 camera-streamer-arducam-64MP.service
 -rw-r--r-- 1 root root 1217 5月 26 2023 camera-streamer-arducam-noir-5MP.service
 -rw-r--r-- 1 root root 759 5月 26 2023 camera-streamer-generic-usb-cam.service
 -rw-r--r-- 1 root root 847 5月 26 2023 camera-streamer-raspi-usb-cam.service
 -rw-r--r-- 1 root root 987 5月 26 2023 camera-streamer-raspi-v13-5MP.service
 -rw-r--r-- 1 root root 1110 5月 26 2023 camera-streamer-raspi-v2-8MP.service
 -rw-r--r-- 1 root root 1150 5月 26 2023 camera-streamer-raspi-v3-12MP.service

 私の持っている cameraは v2-8MP (imx219)ですから、camera-streamer-raspi-v2-8MP.serviceを
 /usr/lib/systemd/systemに copyします。
 
 $ sudo cp camera-streamer-raspi-v2-8MP.service /usr/lib/systemd/system
 
 copyをしたら 中身を確認してみましょう。
 $ cat /usr/lib/systemd/system/camera-streamer-raspi-v2-8MP.service
 
 ; Official Raspberry Pi v2.1 8MP camera based on the Sony IMX219 chip
 ; https://www.raspberrypi.com/products/camera-module-v2/
 [Unit]
 Description=camera-streamer web camera for Pi Camera v2.1 8MP on Raspberry PI
 After=network.target
 ConditionPathExists=/sys/bus/i2c/drivers/imx219/10-0010/video4linux
 [Service]
 ExecStart=/usr/bin/camera-streamer \
  --camera-path=/base/soc/i2c0mux/i2c@1/imx219@10 \
  --camera-type=libcamera \
  --camera-format=YUYV \
  --camera-width=3280 --camera-height=2464 \
  --camera-fps=30 \
  ; use two memory buffers to optimise usage
  --camera-nbufs=2 \
  ; the snapshot is 1438x1080
  --camera-snapshot.height=1080 \
  ; the video/webrtc is 958x720
  --camera-video.height=720 \
  ; the stream is 639x480
  --camera-stream.height=480 \
  ; bump brightness slightly
  --camera-options=brightness=0.1 \
  --http-listen=0.0.0.0 \
  --http-port=8080 \
  --rtsp-port
 DynamicUser=yes
 SupplementaryGroups=video i2c
 Restart=always
 RestartSec=10
 Nice=10
 IOSchedulingClass=idle
 IOSchedulingPriority=7
 CPUWeight=20
 AllowedCPUs=1-2
 MemoryMax=250M
 [Install]
 WantedBy=multi-user.target


 見る限り何も修正しなくてもそのまま使用できそうです。


 次に、config.txtを変更しておきます。
 $ cd /boot/firmware
 $ sudo nano config.txt
  camera_auto_detect=0          ←0に変更
  #camera_auto_detect=1
  dtoverlay=imx219            ← 追加
  [all]
  gpu_mem=128              ← memoryを 128に変更
  dtoverlay=vc4-kms-v3d,cma-512     ← cma-512 追加
 
 修正が済んだら再起動して、camera-streamer-raspi-v2-8MP.serviceの
 systemctl enable と systemctl start を実行しておきます。
 その後、別のパソコンから Browserを開いて 192.168.1.11:8080を keyinします。



  camera-streamerの top画面がこちら。
 c-st



 top画面の /streameを押すと
 出てきた画像がこちら。
 c-st
 なにこれ。半分で画像が切れています。
 これは CPU性能不足、memory不足などで最後まで動画を再生できない状態です。



 いろいろやってみましたが、--camera-width=3280 --camera-height=2464を
 --camera-width=1920 --camera-height=1080に変更して
 --camera-fps=30を --camera-fps=20 に変更したらこうなった。

 変更後の画像
c-st
 


 defaultでは --camera-format=YUYVに設定されていますが、YUYVは cpuも memoryも大量に
 消費するので data圧縮した MJPGを指定する方がよさそうです。



 Bullseyeや bookwormでは無理して mjpg-stremerを使用する事を考えなくても
 installも簡単で便利になった camera-streamerの方が良い気がします。
 
 ただし、trixie では同じ service fileが使用されていますが、--camera-pathで NOT FOUNDが出て
 serviceが起動できず activeになりません。






----------------------------------------------------------------------------------------------------------------------------
・けいざん美術館
・Blog 油絵もろもろ
・EXCEL VBAであくせく
・けいざんの食べログ


                 Site Designed by Kasio Keizan