от Камен Медарски(7-10-2004)
рейтинг (49)
[ добре ]
[ зле ]
Вариант за отпечатване
Video4linux и как да си направим webcam server.
Автор Камен Медарски fgets@abv.bg
Тези дни ми се наложи да си поиграя с възможностите за
видео
изобразяване на linux. По-точно става въпрос за TV /
capture
устройство с използването на така нареченото video4linux
(за напред
тъй като ме мързи да пиша цялото име, ше ползвам
абревиатурата
v4l) под linux, е в крайна сметка хората са измислили
подходящо
име. В интерес на истината в момента се сещам за доста
възможности
за приложението, на този приятна за конфигуриране и
използване
опция в ядрото. Една от тези възможности ми се наложи да
реализирам, това е да направя webcam server, или по-просто
казано
да гледам през браузъра си картината която се предава към
тази
кепчър карта от обикновена камера, и сега с удоволствие ще
споделя
с вас натрупания опит.
Предполагам, че на всеки му се е приисквало да си види
физиономията лепната на някоя web страница :), но е друго
когато
виждаш, че тя се движи. В началото, когато ми показаха
картата с
която щях да експериментирам, аз малко се усъмних в това,
че ще
може да покаже и един кадър, но както и да е.
Интересно ще е да кажа какъв е хардуера и софтуера с които
съм
работил.
Кепчър картата е DVD EZMaker Gold на AVerMedia
(www.avermedia.com)
Видео камерата е JMK wireless video and audio camera model
WS-212AS
Slackware current
Kernel 2.6.8.1 (последният до този момент)
Първоначалните ми знания за това как да подкарам тази
непонятна за
мен PCI карта, бяха съизмерими с /dev/null а най-лошото
беше, че
това се виждаше и на стандартния ми изход :> .Но по
същество.
След не много време и преглеждане на документацията в
ядрото както и
изхода на една много полезна програма, lspci ме окуражиха
да
продължа. От lspci забрах, че тази неизвестна карта ползва
чип на
Philips, това опредено освети малко тунела.
/*изход на lspci
root@pirat:~# lspci
.
.
.
01:07.0 Multimedia controller: Philips Semiconductors
SAA7130
Video Broadcast Decoder (rev 01)
.
*/
От тук нататък всичко е много лесно:
Първото нещо която трябва да направите е ... да си сипете
една
бира.
Второто е да прекомпилирате кърнела си.
Това предполагам, че много от вас го могат и затова няма да
се
впускам в подробности, само ще спомена че съм компилирал
частта
Видео за Линукс като модули. Тази част се намира в Device
Drivers
--> Multimedia devices -->Video For Linux. Избирате
<М>Video For Linux
Video For Linux -->
<M> Philips SAA7134 support
(това е визуализация при ядро 2.6 при по стари версии не
съм много
сигурен дали е така. Но по-важно е да се спомене, че при
новите
ядра версия 2.6 е включена поддръжка на v4l2)
или ако ползвате конзолен режим за конфигуриране трябва да
изберете
да се компилират като модули
CONFIG_VIDEO_DEV = <M>
CONFIG_VIDEO_SAA1734 = <M>
тези които желаят могат да ги включат в ядрото,
предполагам, че
няма да има проблем.
Смятам, че с това обяснение бях достатъчно ясен, освен за
хората
които си нямат и на идея за какво говоря. На тях бих им
препоръчал
да се обърнат за помощ към linux-bg.org за по-подробни и
добри
статии на тема компилиране на кърнел.
След като компилирате и стартирате новия кърнел, може да
проверите
дали все пак той работи.
root@pirat:~# modprobe saa7134
root@pirat:~# lsmod
Module
Size Used by
saa7134
99152 0
video_buf
21316 1 saa7134
v4l2_common 4928
1 saa7134
v4l1_compat 13764
1 saa7134
i2c_core
20688 1 saa7134
ir_common
4356 1 saa7134
videodev
7616 1 saa7134
root@pirat:~#
Урааа това е едно наистина добро начало ... следва да си
налеем
още по една бира.( Не знам ако наистина продължавам така,
дали ще
мога да довърша тази статия :) )
Сега идва ред на "юзър спейс" програмите.
Програмата която ви е
необходима се нарича xawtv.
Ако нямате инсталиран софтуера xawtv може да го свалите от
следния
адрес: http://dl.bytesex.org/releases/xawtv/
Не знам дали Слак има пакет xawtv (но мисля че няма),
защото не
ми остана време да проверя но това е без значение, защото
софтуера
се компилира без никакъв проблем.
root@pirat:~#./configure
root@pirat:~# make
root@pirat:~# make install
(За ползващите Debian мога да дам следния пример apt-get
install xawtv и apt-get install webcam)
В този пакет са включени доста програми за манипулация
върху
хардуера.
Няма да се впускам в това как да използвате xawtv, защото
това не
е в целта на тази статия. Но които се интересува пакета има
много
подробни man страници.
Програмата на която ще наблегна е webcam, тя е част от
пакета
xawtv.
За да работи нормално програмата приема като параметър има
на
конфигурационен файл. Този файл може да го кръстите както
искате и
разположите където искате. За този пример аз съм избрал
име /etc/webcam.conf, че е по-прегледно.
root@pirat:~# cat /etc/webcam.conf
[www]
dir = /var/www/htdocs
file = webcamoutput.jpg
local = 1
[grab]
device = /dev/video0
width = 352
height = 288
delay = 1
norm = pal
quality = 100
root@pirat:~#
Двете секции на този конфигурационен файл оказват къде да
се
записва изходния файл и съответно от къде да се чете.
dir = /var/www/htdocs -- оказва, че изходния файл
webcamoutput.jpg трябва да бъде записан в папка
/var/www/htdocs
file = webcamoutput.jpg -- изходен файл в jpg формат
още един важен параметър е
delay = 1 -- това е времето за опресняване на изходния файл
в
секунди.
Последното което трябва да се направи, не е толкова
несъществено.
Това е да се запусне httpd, ако не знаете как ->
linux-bg.org
В папката със документите на сървъра създайте файл с име
webcam.html като добавите следното съдържание към него.
<html>
<head>
<META HTTP-EQUIV="pragma"
CONTENT="no-cache">
<META HTTP-EQUIV="refresh"
CONTENT="3">
</head>
<body>
<center>
<h2>My Web Cam</h2>
<img src="webcamoutput.jpg">
</center>
</body>
</html>
И сега с любимия си браузър може да проверите дали всичко
работи
правилно на адрес http://yourdomainname/webcam.html
Сега вече имате работещ webcam server, надявам се все на
някой да
съм му бил полезен. За благодарности, поздравления,
комплименти,
чекове, обиди, поправки, добавки и всичко останало
моля пишете ми
на fgets at abv dot bg.
Благодаря Ви за вниманието :>
Камен Медарски 2004.
<< Ускорител на заявки за TLD BG | Как да настроим SQUID да оторизира потребителите от Microsof >>
|