суботу, 30 квітня 2011 р.

WEB-камера в FreeBSD: skype, cheese и другие приложения.

Недавно мне в руки попала USB web-камера Logitech HD Webcam C310 со встроенным микрофоном, которая может выдавать видео в формате HD 720p. При подключении определяется у меня, как ugen2.2 (VendorID=0x046d, ProductID=0x081b).
Для работы web-камеры необходимо загрузить несколько модулей. Для этого в файл /boot/loader.conf добавляем следующие строчки:
cuse4bsd_load="YES"
snd_uaudio_load="YES"

Первый модуль необходим для работы webcamd и совместно обеспечивают получение видео с web-камеры, а второй модуль обеспечивает работу встроенного в камеру микрофона. При загрузке, когда камера подключена, в /var/log/messages и на консоль выводятся следующие строчки:
kernel: uaudio0: <vendor 0x046d product 0x081b, class 239/2, rev 2.00/0.10, addr 2> on usbus2
kernel: uaudio0: No playback!
kernel: uaudio0: Record: 48000 Hz, 1 ch, 16-bit S-LE PCM format
kernel: uaudio0: No midi sequencer
kernel: pcm3: <USB audio> on uaudio030


Необходимые модули ставим из портов, в частности:
# cd /usr/ports/multimedia/cuse4bsd-kmod; make install clean
# cd /usr/ports/multimedia/webcamd; make install clean

Для инициализации встроенного в web-камеру микрофона выполняем следующую команду, которую необходимо выполнять каждый раз после загрузки системы, а также отключении и повторном включении web-камеры:
# usbconfig -d ugen2.2 do_request 0x22 0x01 0x100 0x86 0x03 0x80 0xBB 0x00

Проверить работу микрофона можно командой:
# dd if=/dev/dsp3.0 of=/dev/dsp0.0 bs=64
где  /dev/dsp3.0 это встроенный в web-камеру микрофон, а /dev/dsp0.0 pcm устройство вывода звука.

Проверить конфигурацию вашей звуковой подсистемы можно командой:
# cat /dev/sndstat

Для работы с видео необходимо устройство /dev/videoX. Для этого запускаем webcamd.
# webcamd -d ugen2.2
на экран выводятся следующие строчки:
Attached ugen2.2[0] to cuse unit 0
Creating /dev/video0
Если у вас web-камера подключена постоянно, то можно запускать webcamd добавив следующую строчку в /etc/rc.conf:
webcamd_enable="YES"

Для обеспечения прав доступа к устройству video0 не забудьте добавить в файл /etc/devfs.rules строчки:
# Video
add path video[0-9]* mode 0660

Пользователь, который будет работать с web-камерой должен быть в группе webcamd.

Теперь можно запускать программы. Я проверил работу skype-2.0.0.72,1, pwcview, cheese, ekiga и flash-приложениях в firefox . Они ставятся из портов. В Интернете нашел программу для linux(легко компилируется под freebsd) wxCam. Работать будут также mplayer и mencoder.
Пример использования pwcview и mencoder для записи видео по движению:
> pwcview -hkr -s vga -f 15 | mencoder -demuxer rawvideo -rawvideo fps=15:w=640:h=480:i420 - -ovc lavc -lavcopts vcodec=mpeg4 -o motion.avi

Видео в skype у меня заработало после применения патча linux-v4l2-8-test.patch и сборки нового ядра. Проверял также skype_static-2.1.0.81 и skype_static-2.2.0.25. В первом случае есть видео, но есть проблемы с микрофоном. Во втором случае не работает ни микрофон ни видео. Но судя по обсуждению в Интернет эти проблемы решаемые. Я не претендую на новые возможности, которые есть в "свежих" версиях skype и мне достаточно версии skype из портов.

Посмотреть список, поддерживаемых  web-камер можно по адресу http://wiki.freebsd.org/WebcamCompat.

Немає коментарів:

Дописати коментар