|
Тепер статті може редагувати кожен. Приєднуйтесь до нашої вікі-спільноти! |
Camera
На сайті Центру можна подивитися на зображенням із веб-камери Logitech QuickCam Messenger, що розташована в одному з кутків у приміщенні центру [1].
Зміст |
[ред.] Як це працює
Камера приєднана до USB порта медіа-сервера. При завантаженні скрипта camera.php ( на веб-сервері ) він приєднується до медіа-сервера і отримує з нього миттєвий знімок.
[ред.] Camera.php
Сам скрит є досить примітивним:
<?php header("Content-Type: image/jpeg"); system("nc camera.usic.lan 6666 "); ?>
Тобто клієнту повертається JPEG файл. Програма nc (netcat) під'єднується до TCP порта медіа-сервера, який у відповідь передає файл і одразу закриває з'єднання. Сам файл netcat друкує в STDOUT
[ред.] Медіа сервер
На стороні камери скрипт також простий. Це Perl-програма, яка слухає деякий ( зараз 6666-й ) TCP порт, і при підключенні до нього в відповідь робить знімок. Наразі це робиться так:
MPLAYER_VERBOSE=-5 mplayer -msglevel all=-1 -vo jpeg:outdir=/home/camera/ \ -frames 1 tv:// -tv driver=v4l2:device=/dev/video:width=640:height=480(Додавши до udev правило
SUBSYSTEM=="video4linux", KERNEL=="video[0-9]", SYMLINK+="video", якщо камера одна)
Зображення буде зберігатися в файл 00000001.jpg, але для того, щоб воно одразу ж йшло в STDOUT, можна зробити маленьку хитрість:
ln -s /proc/self/fd/1 /home/camera/00000001.jpg
Демон працює з-під користувача nobody, в init-скрипті ( /etc/conf.d/local.start) запускається так:
su --shell /bin/bash -c '/home/camera/camshot.pl &' nobody
Код скрипта доступний в SVN репозиторії за адресою http://svn.usic.org.ua/svnroot/scripts/camera
[ред.] Ядро
Драйвер для камери включений в ядро ( використовується 2.6.34-gentoo-r1 ). Конфігурується так:
Device Drivers
<M> Multimedia support -->
<M> Video For Linux
[*] Video capture adapters -->
[*] V4L USB devices -->
<M> GSPCA based webcams --->
<M> ZC3XX USB Camera Driver
[ред.] Посилання
| ||||||||||||||