Raspberry Pi webcam unable to open video device

2019-05-04 09:58发布

问题:

Error " Unable to open video device "

I am using a HP Deluxe Webcam (EW193AA) with raspberry pi

log of lsusb

Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 006: ID 093a:2621 Pixart Imaging, Inc. PAC731x Trust Webcam
Bus 001 Device 005: ID 413c:2107 Dell Computer Corp.

log of motion -n

[0] Processing thread 0 - config file /etc/motion/motion.conf
[0] Motion 3.2.12 Started
[0] ffmpeg LIBAVCODEC_BUILD 3482368 LIBAVFORMAT_BUILD 3478785
[0] Thread 1 is from /etc/motion/motion.conf
[0] httpd bind(): Address already in use
[0] httpd thread exit
[1] Thread 1 started
[1] cap.driver: "gspca_pac7302"
[1] cap.card: "USB Camera (093a:2621)"
[1] cap.bus_info: "usb-bcm2708_usb-1.2"
[1] cap.capabilities=0x85000001
[1] - VIDEO_CAPTURE
[1] - READWRITE
[1] - STREAMING
[1] Config palette index 8 (YU12) doesn't work.
[1] Supported palettes:
[1] 0: PJPG (PJPG)
[1] Unable to find a compatible palette format.
[1] ioctl (VIDIOCGCAP): Inappropriate ioctl for device
[1] Could not fetch initial image from camera
[1] Motion continues using width and height from config file(s)
[1] Resizing pre_capture buffer to 1 items
[1] bind(): Address already in use
[1] Problem enabling stream server in port 8081: Address already in use
[1] Thread exiting
[0] Motion thread 1 restart

I have tried changing width and height to 160*140, 320*240,640*480 but resulted in same error.... but cannot find a solution...

回答1:

Logfile says your port 8081 is already in use... please also ensure that your outpath is write enabled for user motion.motion: eg. sudo chown motion.motion /home/pi/motion



回答2:

Try running:

LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libv4l/v4l1compat.so motion -n


回答3:

For me this ended up being an issue with the config file. I set the resolution to 640x360, after a bit of fiddling I found that the height had to be divisible by 16. The original error message of "port already in use" was wrong, evidenced by the fact that changing ports fixed nothing. After I switched back to a height of 480 the service came up again.

I recommend 320x240, 640x480, or 1280x720 (if you have a decent web cam and internet speeds).