Здравствуйте, друзья. Одолевают меня думы тяжкие о судьбе нелегкой.
Давеча появилось желание поставить диво заморское Logitech C270 на стражу комнаты в одном нестабильном государстве)))
Итак, необходимо было настроить связку Motion+Logitech C270, над этой проблемой бьюсь уже сутки.
Собственно проблема: Не хочет выдавать картинку нужного разрешения, при движении в кадре пишет в лог
mjpegtoyuv420p: Corrupt image ... continue.
и картинка в папке не создается.
lsusb# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 046d:0825 Logitech, Inc. Webcam C270
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Лог motion:
motion.log[0] [NTC] [ALL] [Oct 01 18:37:12] motion_startup: Using log type (ALL) log level (NTC)
[0] [NTC] [ALL] [Oct 01 18:37:12] become_daemon: Motion going to daemon mode
[0] [NTC] [ALL] [Oct 01 18:37:12] become_daemon: Created process id file /var/run/motion/motion.pid. Process ID is 3575
[0] [NTC] [ALL] [Oct 01 18:37:12] motion_startup: Motion running as daemon process
[0] [NTC] [ENC] [Oct 01 18:37:12] ffmpeg_init: ffmpeg LIBAVCODEC_BUILD 3670272 LIBAVFORMAT_BUILD 3670272
[0] [NTC] [ALL] [Oct 01 18:37:12] main: Thread 1 is from /etc/motion/motion.conf
[0] [NTC] [ALL] [Oct 01 18:37:12] main: Thread 1 is device: /dev/video0 input -1
[0] [NTC] [ALL] [Oct 01 18:37:12] main: Stream port 8081
[0] [NTC] [ALL] [Oct 01 18:37:12] main: Waiting for threads to finish, pid: 3575
[1] [NTC] [ALL] [Oct 01 18:37:12] motion_init: Thread 1 started , motion detection Enabled
[1] [NTC] [VID] [Oct 01 18:37:12] vid_v4lx_start: Using videodevice /dev/video0 and input -1
[0] [NTC] [STR] [Oct 01 18:37:12] httpd_run: motion-httpd testing : IPV4 addr: 127.0.0.1 port: 8080
[0] [NTC] [STR] [Oct 01 18:37:12] httpd_run: motion-httpd Bound : IPV4 addr: 127.0.0.1 port: 8080
[0] [NTC] [STR] [Oct 01 18:37:12] httpd_run: motion-httpd/3.2.12+git20140228 running, accepting connections
[0] [NTC] [STR] [Oct 01 18:37:12] httpd_run: motion-httpd: waiting for data on 127.0.0.1 port TCP 8080
[1] [NTC] [VID] [Oct 01 18:37:13] v4l2_get_capability:
------------------------
cap.driver: "uvcvideo"
cap.card: "UVC Camera (046d:0825)"
cap.bus_info: "usb-0000:00:02.0-3"
cap.capabilities=0x84000001
------------------------
[1] [NTC] [VID] [Oct 01 18:37:13] v4l2_get_capability: - VIDEO_CAPTURE
[1] [NTC] [VID] [Oct 01 18:37:13] v4l2_get_capability: - STREAMING
[1] [NTC] [VID] [Oct 01 18:37:13] v4l2_select_input: name = "Camera 1", type 0x00000002, status 00000000
[1] [NTC] [VID] [Oct 01 18:37:13] v4l2_select_input: - CAMERA
[1] [WRN] [VID] [Oct 01 18:37:13] v4l2_select_input: Device doesn't support VIDIOC_G_STD
[1] [NTC] [VID] [Oct 01 18:37:13] v4l2_do_set_pix_format: Testing palette MJPG (800x600)
[1] [NTC] [VID] [Oct 01 18:37:13] v4l2_do_set_pix_format: Using palette MJPG (800x600) bytesperlines 0 sizeimage 62933 colorspace 00000008
[1] [NTC] [VID] [Oct 01 18:37:13] v4l2_scan_controls: found control 0x00980900, "Brightness", range 0,255
[1] [NTC] [VID] [Oct 01 18:37:13] v4l2_scan_controls: "Brightness", default 128, current 128
[1] [NTC] [VID] [Oct 01 18:37:13] v4l2_scan_controls: found control 0x00980901, "Contrast", range 0,255
[1] [NTC] [VID] [Oct 01 18:37:13] v4l2_scan_controls: "Contrast", default 32, current 32
[1] [NTC] [VID] [Oct 01 18:37:13] v4l2_scan_controls: found control 0x00980902, "Saturation", range 0,255
[1] [NTC] [VID] [Oct 01 18:37:13] v4l2_scan_controls: "Saturation", default 32, current 32
[1] [NTC] [VID] [Oct 01 18:37:13] v4l2_scan_controls: found control 0x00980913, "Gain", range 0,255
[1] [NTC] [VID] [Oct 01 18:37:13] v4l2_scan_controls: "Gain", default 0, current 20
[1] [NTC] [VID] [Oct 01 18:37:13] vid_v4lx_start: Using V4L2
[1] [NTC] [ALL] [Oct 01 18:37:13] image_ring_resize: Resizing pre_capture buffer to 1 items
[1] [CRT] [VID] [Oct 01 18:37:15] mjpegtoyuv420p: Corrupt image ... continue
[1] [CRT] [VID] [Oct 01 18:37:17] mjpegtoyuv420p: Corrupt image ... continue
[1] [CRT] [VID] [Oct 01 18:37:19] mjpegtoyuv420p: Corrupt image ... continue
[1] [CRT] [VID] [Oct 01 18:37:21] mjpegtoyuv420p: Corrupt image ... continue
[1] [CRT] [VID] [Oct 01 18:37:23] mjpegtoyuv420p: Corrupt image ... continue
Конфиг и дополнительная инфа во вложении.
UPD1:Гуглил инфу по ошибке:
logitech Device doesn't support VIDIOC_G_STD
http://www.wgdd.de/2015/02/motion-picture-capturing-debian-motion_13.htmlнаткнулся на вариант для logitech'евсчких камер, в /etc/init.d/motion добавить
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4lg/v4l2compat.so
export LD_PRELOAD
или
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4lg/v4l2convert.so
Не помогло(
Пользователь добавил сообщение 01 Октября 2016, 23:57:54:
UPD2:Прикол №2.
Поставил zoneminder, тоже вылетает, ошибка схожая, не хочет выдавать нормальное разрешение
zmc_dvideo0[15393]: FAT [Captured image dimensions differ: V4L2: 176x144 monitor: 1280x960]
UPD3:Проблему поборол. Виной всему был USB удлинитель, хотя и пробовал раньше втыкать напрямую в камп, но видно настройки не позволяли нормально работать камере.
Заработало с такими настройками:
# V4L2_PIX_FMT_YUYV : 15 'YUYV'
v4l2_palette 15
norm 1
width 1280
height 960
framerate 2
главное, что работает, а дальше можно экспериментировать.