け い ざ ん の D I Y 工 房

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

● Raspberry Pi5 OS Ver.12 bookwormに ustreamerを installする

 2024.06.19                     更新:2026.04.20

 Raspi5の OS Ver.12 bookwormに mjpg-streamerを installしようとしても簡単ではない様です。
 これは mjpg-streamer が「libjpeg8-dev」を必要としますが、これはもう利用できず
 その後継である libjpeg9-dev はこれと互換性がないためです。
 さらに mjpg-streamer のリポジトリは放棄されているようで、
 修正される可能性は低いですと、述べている英文記事を見つけました。
 
 mjpg-streamerは約17年ぐらい前に開発された Softwareのためすでに本家の開発は停止しており
 Volunteersが継続してメンテナンスを行ってきましたが、RaspberryPi OSの Ver.11 bullseyeでも
 十分な対応が出来ていなかった。
 後継の Raspi5の OS Ver.12 bookwormではまたしても動かない様なので、
 使用をあきらめて ustreamerを使用してみる。


【Raspberry pi5 】
Raspi5



 【使用するcamera】
 logitech C270の USB Cameraを使用します。


logi



 RaspberryPi5に接続して lsusbで確認すると以下の表示が出てきます。
 $ lsusbによるUSB Deviceの表示




【ustreamer install】
 ustreamerを installする前に依存 modulesを installします。
 Programは githubからもらってきます。
 $ sudo apt install libevent-dev libbsd-dev libcamera-v4l2
 $ sudo apt install libcairo2-dev libjpeg62-turbo-dev libpango1.0-dev libgif-dev build-essential g++
 $ git clone --depth=1 https://github.com/pikvm/ustreamer
 $ cd ustreamer
 $ make
 $


 installが終わったら下記の commandを実行します。
 $ cd ustreamer
 $ ./ustreamer --device=/dev/video0 --host=0.0.0.0 --port=8080 -f 20

 web browserで http://192.168.1.11:8080を keyinすれば下記の表示ができます。
 /streamを clickすれば USB cameraの映像が出てきます。






【電源投入で自動起動する設定を入れる】                2025.06.20
 電源投入で ustreamerを自動起動するには、systemdに ustreamer.serviceを作ります。
 ustreamerは、1秒間の画面更新が20枚までに制限されているので、ustreamer.serviceの
 ExecStart=には -f 20を入れておきます。
 mjpg-streamerの fileがあったのでこれを参考にして作成します。
 $ cd usr/lib/systemd/system
 $ sudo nano ustreamer.service
  [Unit]
  Description=ustreamer Service
  After=avahi-daemon.service
  After=dbus.service
  After=network-online.target
  After=networking.service
  After=remote-fs.target

  [Service]
  User=pi
  Type=simple
  WorkingDirectory=/home/pi/Downloads/ustreamer
  ExecStart=/home/pi/Downloads/ustreamer/src/ustreamer.bin --host 0.0.0.0 --port 8080 -f 20
  KillMode=prosess
  Restart=always

  [Install]
  WantedBy=multi-user.target


 /etcには、symbolic linkを作成します。
  $ cd /etc/systemd/system/multi-user.target.wants
  $ sudo ln -s /usr/lib/systemd/system/ustreamer.service ustremer.service
 
 再起動後に ustreamerの enable, startを実施します。
  $ systemctl enable ustremaer.service
  $ systemctl start ustreamer.service
 確認してみましょう。
  $ systemctl status ustremer.service
 Errorがなくて Active(running)になっていれば、
 自動起動後に画面を出す事ができます。
 web browserで http://192.168.1.11:8080を keyinすれば Top画面 menuができます。
 /streamを clickすれば USB cameraの映像が出てきます。
  



【Camera Module 2 (imx219)を取り付ける】             2026.04.20

 Raspi HardWareは4Bに戻して、Camera Module (imx219)を取り付けます。
 ustreamer.serviceを修正して ExecStartの config部分を修正すれば、
 Raspi Camera Module 2 (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


 $ cd /usr/lib/systemd/system
 $ sudo nano ustreamer.service
  ExecStart=libcamerify /home/pi/ustreamer/src/ustreamer.bin --device=/dev/video0 --host :: --port 8080 --encoder=M2M-IMAGE workers=3 --format=YUYV -n -f 18
  ctl+o 書き換えして ctl+xで終了。
 
 次に config.txtを修正します。
 $ cd /boot/firmware
 $ sudo nano config.txt
  camera_auto_detect=0          ←0に変更
  #camera_auto_detect=1         
  start_x=1                ← 追加
  dtoverlay=imx219            ← 追加
  [all]
  gpu_mem=128              ← memoryを 128に変更
  dtoverlay=vc4-kms-v3d,cma-512     ← cma-512 追加
 
 修正が済んだら再起動して Testをします。
 
 $ raspistill -t 0      ・・・(buster)の commandはもう使用できない。
 $ libcamera-hello    ・・・(Bullseye)の commandはもう使用できない。
 $ rpicam-hello      ・・・(bookworm)で使用できる command。
  rpicam-still, rpicam-vid, rpicam-jpegなども使用できます。
  
 $ vcgencmd get_camera
  supported=1 detected=0, libcamera interfaces=1    ・・・すでに camera検出せず。
 

 $ rpicam-hello --list-camerasを打ち込めば接続している camera一覧が出てきます。
  Available cameras
  -----------------
  0 : imx219 [3280x2464 10-bit] (/base/soc/i2c0mux/i2c@1/imx219@10)
    Modes: 'SBGGR10_CSI2P' : 640x480 [30.00 fps - (65535, 65535)/65535x65535 crop]
                1640x1232 [30.00 fps - (65535, 65535)/65535x65535 crop]
                1920x1080 [30.00 fps - (65535, 65535)/65535x65535 crop]
                3280x2464 [30.00 fps - (65535, 65535)/65535x65535 crop]
           'SBGGR8' : 640x480 [30.00 fps - (65535, 65535)/65535x65535 crop]
                1640x1232 [30.00 fps - (65535, 65535)/65535x65535 crop]
                1920x1080 [30.00 fps - (65535, 65535)/65535x65535 crop]
                3280x2464 [30.00 fps - (65535, 65535)/65535x65535 crop]


 さらに詳細 configを見るには。
 $ rpicam-hello --config 0
  [3:50:01.211533177] [285903] INFO Camera camera_manager.cpp:330 libcamera v0.5.2+99-bfd68f78
  [3:50:01.235197889] [285906] ERROR V4L2 v4l2_device.cpp:390 'imx219 10-0010': Unable to set controls: Device or resource busy
  [3:50:01.246930060] [285906] INFO IPAProxy ipa_proxy.cpp:180 Using tuning file /usr/share/libcamera/ipa/rpi/vc4/imx219.json
  [3:50:01.254685737] [285906] INFO Camera camera_manager.cpp:220 Adding camera '/base/soc/i2c0mux/i2c@1/imx219@10' for pipeline handler rpi/vc4
  [3:50:01.254797069] [285906] INFO RPI vc4.cpp:440 Registered camera /base/soc/i2c0mux/i2c@1/imx219@10 to Unicam device /dev/media1 and ISP device /dev/media2
  [3:50:01.254861902] [285906] INFO RPI pipeline_base.cpp:1107 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml'
  Made X/EGL preview window
  Made DRM preview window
  Preview window unavailable
  [3:50:01.294278855] [285903] INFO Camera camera.cpp:1020 Pipeline handler in use by another process
  ERROR: *** failed to acquire camera /base/soc/i2c0mux/i2c@1/imx219@10 ***

  Errorが出ていますが原因は libcameraの IPAManagerがモジュールディレクトリをスキャンする際に
  .so で終わるファイルをすべて読み込もうとします。
  v4l2-compat.so はV4L2互換ライブラリであり、IPA(カメラの自動露出やホワイトバランスなどを
  制御するモジュール)ではないため、「有効な情報がない」というエラーが出力されます。
  実害の有無: 多くの場合、このメッセージ自体は無害な警告に近いエラーです。
  
  別のPCの Browserを開いて、検索行に 192.168.1.11:8080を入れれば ustreamerの Top画面が
  出てきます。
  Top画面の streamボタンを押せば imx219 Cameraの画像が出てきます。

  trixie になると古い Hard Encoder (OMX)が廃止された影響により defaultの YUYV, MJPEGが
  ないという Errorを出して、黒い画面に NO LIVE VIDEOの表示がでます。



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


                 Site Designed by Kasio Keizan