video4linux и несколько вэб камер. (не работает :-()

Обсудить вопросы и проблемы с видео

Модератор: Модераторы разделов

Ответить
immortal0000
Сообщения: 5

video4linux и несколько вэб камер.

Сообщение immortal0000 »

запускаю захват с вэб камер /dev/video0 и /dev/video1 (2,3,4...)независимо чем (ffmpeg, vlc ...) используя v4l2 когда захват с одной камеры, то работает гут, но как только запускаю вторую, третью... то с них не захватывает, ошибку которую выдает ffmpeg запостю завтра.
по отдельности захват идет с любой камеры, вместе не хочет, перерыл весь инет, смотрел в опциях ядра для v4l2, так толку не могу дать, перепробовал разные дистрибутивы (SUSE, Mandriva, Ubuntu).

запускаю захват с /dev/video0

Код: Выделить всё

[immortal@vsep55 video]$ ffmpeg -t 10 -f video4linux2 -s 640x480 -r 15 -b 700k  -i /dev/video0 -f avi /home/immortal/video/cam1_`date +%Y-%m-%d_%H:%M:%S`.avi
FFmpeg version 0.5, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --prefix=/usr --enable-shared --libdir=/usr/lib --shlibdir=/usr/lib --incdir=/usr/include --enable-postproc --enable-gpl --enable-pthreads --enable-libtheora --enable-libvorbis --enable-x11grab --enable-swscale
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 0 / 52.20. 0
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  libswscale     0. 7. 1 /  0. 7. 1
  libpostproc   51. 2. 0 / 51. 2. 0
  built on Sep  2 2009 04:51:23, gcc: 4.4.1
[video4linux2 @ 0x92b3aa0][3]Capabilities: 4000001
Input #0, video4linux2, from '/dev/video0':
  Duration: N/A, start: 1264741440.524889, bitrate: 460799 kb/s
    Stream #0.0: Video: rawvideo, yuyv422, 1600x1200, 460799 kb/s, 15 tbr, 1000k tbn, 15 tbc
Output #0, avi, to '/home/immortal/video/cam1_2010-01-29_08:03:59.avi':
    Stream #0.0: Video: mpeg4, yuv420p, 1600x1200, q=2-31, 700 kb/s, 90k tbn, 15 tbc
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop encoding
frame=  159 fps=  5 q=3.7 Lsize=    2344kB time=31.67 bitrate= 606.3kbits/s


захват идет, запускаю захват с /dev/video1


Код: Выделить всё

[root@vsep55 video]# fmpeg -t 10 -f video4linux2 -s 640x480 -r 15 -b 700k  -i /dev/video1 -f avi /home/immortal/video/cam2_`date +%Y-%m-%d_%H:%M:%S`.avi
FFmpeg version 0.5, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --prefix=/usr --enable-shared --libdir=/usr/lib --shlibdir=/usr/lib --incdir=/usr/include --enable-postproc --enable-gpl --enable-pthreads --enable-libtheora --enable-libvorbis --enable-x11grab --enable-swscale
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 0 / 52.20. 0
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  libswscale     0. 7. 1 /  0. 7. 1
  libpostproc   51. 2. 0 / 51. 2. 0
  built on Sep  2 2009 04:51:23, gcc: 4.4.1
[video4linux2 @ 0x9aa2ac0][3]Capabilities: 4000001
[video4linux2 @ 0x9aa2ac0]ioctl(VIDIOC_STREAMON): No space left on device
/dev/video1: I/O error occurred
Usually that means that input file is truncated and/or corrupted.

ошипка.


Нарыл статью 1999 года
Device Minor Numbers
Because V4L2 is a catch-all for a wide variety of devices on different kinds of busses, there is no good way for it to automatically assign device minor numbers in a logical and consistent way. Therefore, minor numbers have to be given to V4L2 device drivers on the insmod command line. A single V4L2 device driver module can potentially support multiple devices of a type, and multiple types of devices. For example, a driver may support capture, vbi, and codec device types, in which case minor numbers will need to be specified for all three types of devices. The command line parameters to set minor numbers are the same as the device node name prefixed with "unit_". For example "unit_video" for /dev/video (video capture) devices, or "unit_codec" for codec devices. Valid minor numbers are 0 to 255. For multiple devices driven by a single driver, separate the minor numbers with commas.

For example, a hypothetical driver for a video capture/compression card might export both video capture and video codec interfaces. If you had two such boards in the system, you would need two minors for the capture devices, and two for the codec devices. The parameters might be:

# insmod grabber.o unit_video=0,1 unit_codec=10,11

The device nodes might be:

node major, minor
/dev/video0 81, 0
/dev/video1 81, 1
/dev/codec0 81, 10
/dev/codec1 81, 11

There is no specification for what minor numbers to use with what devices. It is entirely up to the administrator of a system. Obviously, all minor numbers for all devices for all V4L2 drivers must be unique. It is not specified how a driver will handle the case where a minor number is already in use. It may fail the module load. It is expected that driver writers will handle the failure gracefully, and only the offending device will be unavailable.

It is not specified what happens when a needed minor number is not on the command line. It is expected that driver writers will include sensible default values so if you have only one V4L2 driver, it will work without manually assigned minor numbers. However, administrators really should specify the minor numbers. In particular, if you have two V4L2 drivers, you will need to specify minors to guarantee that there are no conflicts.

Video for Linux Two applications open and scan the devices to find what they are looking for. Capability queries define what each interface supports.


но где это указать, хз.

Нужно это всё для видеорегистратора, идея юзать усб-вэбкамеры на 2 мегапикселя, самый простой способ это написать скрипт для каждой камеры типа

#!/bin/sh
while true
do
ffmpeg -t 60 -f video4linux2 -s 1600x1200 -r 15 -b 700k -i /dev/video0 -f avi /home/video/cam1_`date +%Y-%m-%d_%H:%M:%S`.avi
done
Спасибо сказали:
Аватара пользователя
Atolstoy
Сообщения: 1654
Статус: Tux in the rain
ОС: Linux x86_64
Контактная информация:

Re: video4linux и несколько вэб камер.

Сообщение Atolstoy »

Что-то похожее есть тут:
http://www.mail-archive.com/video4linux-li...m/msg04857.html

в /etc/modules.conf
нужно прописать
options модуль cams=2
Всего лишь 26 литров пива достаточно человеку для удовлетворения ежедневной потребности в кальции. Здоровое питание - это так просто!
http://atolstoy.wordpress.com
Спасибо сказали:
immortal0000
Сообщения: 5

Re: video4linux и несколько вэб камер.

Сообщение immortal0000 »

видимо там под конкретное устройство, в параметрах модулей нет похожих опций cams
для того чтобы увидеть какие параметры модуля можно задать надо выполнить команду
modinfo
вот например usbcore

Код: Выделить всё

filename:       /lib/modules/2.6.31.12-desktop-1mnb/kernel/drivers/usb/core/usbcore.ko.gz
license:        GPL
srcversion:     7E115AF5CA36EEA1F3F5DE2
alias:          usb:v*p*d*dc*dsc*dp*ic09isc*ip*
alias:          usb:v*p*d*dc09dsc*dp*ic*isc*ip*
depends:
vermagic:       2.6.31.12-desktop-1mnb SMP mod_unload modversions 686
parm:           usbfs_snoop:true to log all usbfs traffic (bool)
parm:           blinkenlights:true to cycle leds on hubs (bool)
parm:           initial_descriptor_timeout:initial 64-byte descriptor request timeout in milliseconds (default 5000 - 5.0 seconds) (int)
parm:           old_scheme_first:start with the old device initialization scheme (bool)
parm:           use_both_schemes:try the other device initialization scheme if the first one fails (bool)
parm:           autosuspend:default autosuspend delay (int)
parm:           nousb:bool


parm это параметры которые можно передавать
так же и другие uvcvideo, v4l, videodev ...

какие ещё мысли?
Спасибо сказали:
Arc
Сообщения: 66

Re: video4linux и несколько вэб камер.

Сообщение Arc »

не знаю, поможет это или нет, но у меня работает. две камеры и влц. altlinux p5.
Спасибо сказали:
Аватара пользователя
romuil
Сообщения: 2095
Статус: Ромунцель
ОС: ALTLinux Sisyphus

Re: video4linux и несколько вэб камер.

Сообщение romuil »

Arc писал(а):
28.02.2010 20:34
не знаю, поможет это или нет, но у меня работает. две камеры и влц. altlinux p5.

Я думаю поможет, если вы выложите конфиги и опишете как настраивали.
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux
Контактная информация:

Re: video4linux и несколько вэб камер.

Сообщение eddy »

immortal0000 писал(а):
08.02.2010 08:37
[video4linux2 @ 0x9aa2ac0]ioctl(VIDIOC_STREAMON): No space left on device

Так у вас для обеих камер выделяются общие буферы в оперативке. Попробуйте поиграть с параметром video_nr:

Код: Выделить всё

modinfo usbvideo
filename:       /lib/modules/2.6.27-desktop-0.rc8.2mnb/kernel/drivers/media/video/usbvideo/usbvideo.ko.gz
license:        GPL
depends:        videodev,usbcore
vermagic:       2.6.27-desktop-0.rc8.2mnb SMP mod_unload 686
parm:           video_nr:int

если, конечно, у вас камеры на usbvideo висят, а не каком-нибудь другом модуле.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Arc
Сообщения: 66

Re: video4linux и несколько вэб камер.

Сообщение Arc »

romuil писал(а):
01.03.2010 08:55
Arc писал(а):
28.02.2010 20:34
не знаю, поможет это или нет, но у меня работает. две камеры и влц. altlinux p5.

Я думаю поможет, если вы выложите конфиги и опишете как настраивали.

Просто воткнул камеры и почитал вот тут:
http://wiki.videolan.org/Mosaic

Камеры брал одинаковые и разные. Всегда работало, поэтому и не озадачивался как.
Спасибо сказали:
Аватара пользователя
Олег777
Сообщения: 238
Статус: зануда
ОС: Чё?

Re: video4linux и несколько вэб камер.

Сообщение Олег777 »

но где это указать, хз.

В /etc/modprobe.d в собственно созданном файле ( я так думаю)
alias char-major-81-0 /dev/video0
alias char-major-81-1 /dev/video1
p.s. вообще то, что я написал полный бред.
Спички - детям!
Спасибо сказали:
Ответить