広角ウェブカメラをMotionで使う

  • 投稿日:
  • by
  • カテゴリ:

デフォルトだと320x240しか使えなかった。

↓↓↓モノはこれです。(BSW20KM11BK)

例えばほぼデフォルトのMotion.confの解像度を640x480に以下のように設定すると・・・

motion.conf:

width 640
height 480

実行結果:

syasuda@ubuntu-armhf:~$ sudo motion
[0] Processing thread 0 - config file /etc/motion/motion.conf
[0] Motion 3.2.12 Started
[0] ffmpeg LIBAVCODEC_BUILD 3482112 LIBAVFORMAT_BUILD 3478528
[0] Thread 1 is from /etc/motion/motion.conf
[0] motion-httpd/3.2.12 running, accepting connections
[1] Thread 1 started
[0] motion-httpd: waiting for data on port TCP 8080
[1] cap.driver: "uvcvideo"
[1] cap.card: "USB_Camera"
[1] cap.bus_info: "usb-musb-hdrc.1.auto-1"
[1] cap.capabilities=0x84000001
[1] - VIDEO_CAPTURE
[1] - STREAMING
[1] Config palette index 8 (YU12) doesn't work.
[1] Supported palettes:
[1] 0: YUYV (YUV 4:2:2 (YUYV))
[1] 1: MJPG (MJPEG)
[1] Selected palette YUYV
[1] Test palette YUYV (640x480)
[1] Using palette YUYV (640x480) bytesperlines 1280 sizeimage 614400 colorspace 00000008
[1] found control 0x00980900, "Brightness", range -64,64
[1]     "Brightness", default 0, current 0
[1] found control 0x00980901, "Contrast", range 0,95
[1]     "Contrast", default 32, current 32
[1] found control 0x00980902, "Saturation", range 0,100
[1]     "Saturation", default 55, current 55
[1] found control 0x00980903, "Hue", range -2000,2000
[1]     "Hue", default 0, current 0
[1] found control 0x00980910, "Gamma", range 100,300
[1]     "Gamma", default 165, current 165
[1] mmap information:
[1] frames=4
[1] 0 length=614400
[1] 1 length=614400
[1] 2 length=614400
[1] 3 length=614400
[1] Using V4L2
[1] Resizing pre_capture buffer to 1 items
[0] Thread 1 - Watchdog timeout, trying to do a graceful restart
[0] httpd - Finishing
[0] httpd Closing
[0] httpd thread exit

ウォチドグで死にます。

で、よくわからないので放置していたんですが、よく眺めるとパレット設定がこけているようでした。

[1] Config palette index 8 (YU12) doesn't work.
[1] Supported palettes:
[1] 0: YUYV (YUV 4:2:2 (YUYV))
[1] 1: MJPG (MJPEG)
[1] Selected palette YUYV

ですんで、設定を変更したらでかい解像度でも動作しました。

motion.conf:

#v4l2_palette 8
v4l2_palette 2

ただし、最大解像度の1920x1080は動作しませんでした。

motionは何かの都合で解像度は16の倍数でないとだめのようです。(画像処理の都合?)

1920x1080設定での実行結果:

[1] config image height (1080) is not modulo 16
[1] Could not fetch initial image from camera

とりあえず1280x720で我慢することにしましたが、320x240に比べれば充分満足です。

 

ちなみにですが、ウェブカメラ(USBカメラ)が対応している解像度はlsusbでだいたい確認できるようです。

How can I find out webcam resolution - Ask Ubuntu

対応している解像度を全てLinux上で利用できるとは限らないようですが、取説やカタログを探すよりは楽でしょう。

 

環境メモ:

BBB rev A6

Ubuntu 14.04

BSW20KM11BK

 

参考(BBB+Motion)

 

→桑野様の記事