<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>LXF115:Hardcore Linux - История изменений</title>
		<link>http://wiki2.linuxformat.ru/index.php?title=LXF115:Hardcore_Linux&amp;action=history</link>
		<description>История изменений этой страницы в вики</description>
		<language>ru</language>
		<generator>MediaWiki 1.11.1</generator>
		<lastBuildDate>Wed, 13 May 2026 20:56:29 GMT</lastBuildDate>
		<item>
			<title>Crazy Rebel: /* И это функционирует? */</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF115:Hardcore_Linux&amp;diff=9532&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;И это функционирует?&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 12:22, 20 января 2010&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 128:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 128:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; motion -c ~/.motion/motion.conf&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; motion -c ~/.motion/motion.conf&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Опция '''-c''' велит ''Motion'' использовать файл конфигурации '''~/.motion/motion.conf''', а не '''/etc/motion/motion.conf'''. Использовать ключ '''-c''' и всегда указывать местоположение файла конфигурации – хорошая идея, так как ''Motion&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;'&lt;/del&gt;'' ищет свои настройки в нескольких разных местах, и выбирает последнее найденное.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Опция '''-c''' велит ''Motion'' использовать файл конфигурации '''~/.motion/motion.conf''', а не '''/etc/motion/motion.conf'''. Использовать ключ '''-c''' и всегда указывать местоположение файла конфигурации – хорошая идея, так как ''Motion'' ищет свои настройки в нескольких разных местах, и выбирает последнее найденное.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Пару раз попрыгайте перед web-камерой и загляните в директорию, указанную в '''target_dir'''. Если все работает, вы должны увидеть несколько AVI-файлов. Установив '''snapshot_interval''' отличным от нуля, вы увидите еще и JPEG-файлы. Заметим, что ''Motion'' всегда создает файл с именем '''lastsnap.jpg''', это символьная ссылка на последний снимок.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Пару раз попрыгайте перед web-камерой и загляните в директорию, указанную в '''target_dir'''. Если все работает, вы должны увидеть несколько AVI-файлов. Установив '''snapshot_interval''' отличным от нуля, вы увидите еще и JPEG-файлы. Заметим, что ''Motion'' всегда создает файл с именем '''lastsnap.jpg''', это символьная ссылка на последний снимок.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 20 Jan 2010 12:22:50 GMT</pubDate>			<dc:creator>Crazy Rebel</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF115:Hardcore_Linux</comments>		</item>
		<item>
			<title>Crazy Rebel: викификация, оформление, иллюстрация</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF115:Hardcore_Linux&amp;diff=9531&amp;oldid=prev</link>
			<description>&lt;p&gt;викификация, оформление, иллюстрация&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;: '''Hardcore Linux''' Проверь себя на крутом проекте для продвинутых пользователей&lt;br /&gt;
&lt;br /&gt;
==Web-камеры: Стать Большим Братом==&lt;br /&gt;
&lt;br /&gt;
: '''Ян Бартон''' поделится восхитительной уверенностью, что за за вашей собственностью есть присмотр. Он следит за вами уже сейчас...&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF115_69_1.jpg|300px]] Враг может притаиться где угодно.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
До того, как ее присвоили фанатики и упыри из реалитишоу, фраза «Большой Брат» служила удобным обозначением всех тех, кто хотел ограничить наши гражданские&lt;br /&gt;
свободы. Если информация – это власть, мы должны попытаться пресечь сбор непомерного ее количества избранниками народа, чтобы народ контролировал правительство, а не наоборот. Зачем же тогда ''Linux Format'' публикует учебник по web-камерам? Мы ведь все верим в Свободу, с большой буквы?&lt;br /&gt;
&lt;br /&gt;
Ну, мне-то ни к чему угнетение пролетариата, я просто хочу присмотреть за своими коровами. Я живу на ферме, и должен днем и ночью видеть, что происходит: вдруг кто-то пролез во двор и пытается что-то украсть, или животные решили устроить полуночный моцион. Моя статья покажет, как построить сравнительно недорогую систему безопасности, используя web-камеры и программный детектор движения. Если у вас есть широкополосное подключение, вы сможете контролировать ваши камеры из любого места, где есть интернет-доступ, а когда система обнаружит подозрительную активность, вы получите сообщение по электронной почте. Конечно, обретя такую власть, можно пойти и по стопам КГБ, ну да авось вы не пойдете.&lt;br /&gt;
&lt;br /&gt;
===Часть 1 Настройка камер===&lt;br /&gt;
&lt;br /&gt;
Мы используем систему на основе Debian, однако приведенные инструкции должны работать практически с любым дистрибутивом Linux. Единственная серьезная проблема, с которой вы можете столкнуться – web-камера (обычно с подключением через USB), не поддерживаемая в Linux.&lt;br /&gt;
&lt;br /&gt;
Web-камеры можно подключать через USB, Ethernet или беспроводную сеть (такие обычно называют «сетевыми камерами»). Linux поддерживает web-камеры USB не полностью. Проблема осложняется тем, что изготовители нередко используют под одной и той же маркой разные микросхемы, так что даже если какой-нибудь экземпляр заработает, другой, якобы того же типа, может отказать. Сетевые камеры, как правило, имеют встроенный web-сервер, а иногда и беспроводной передатчик, и могут быть подключены через Wi-Fi. На нашем уроке мы воспользуемся камерой Linksys WVC54GCA: она не особо дорогая, имеется в продаже&lt;br /&gt;
и настраивается для работы с Linux.&lt;br /&gt;
&lt;br /&gt;
Первый шаг на пути к настройке USB-камеры – определение чипсета, который она использует. Просто подключите ее к компьютеру и запустите ''lsusb'':&lt;br /&gt;
&lt;br /&gt;
 ian@scamper:~$ lsusb&lt;br /&gt;
 Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
 Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
 Bus 004 Device 002: ID 046d:08af Logitech, Inc. QuickCam Easy/Cool&lt;br /&gt;
 Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
 Bus 003 Device 003: ID 04f2:b013 Chicony Electronics Co., Ltd&lt;br /&gt;
&lt;br /&gt;
Отсюда видно, что это Logitech QuickCam, которую можно купить рублей за 800. Беглый поиск в Google показывает, что она поддерживается драйвером ''gspca''. Во многих дистрибутивах, в том числе в Ubuntu Hardy, он встроен в ядро, но версия драйвера, идущая с Hardy, не работает с данной конкретной web-камерой&lt;br /&gt;
Logitech.&lt;br /&gt;
&lt;br /&gt;
Мы можем проверить поддержку конкретной web-камеры, поискав в Google ID нашего устройства, в данном случае '''08af'''. Небольшое исследование показало, что на поддержку этой web-камеры способна последняя версия драйвера ''gspca'', доступная на http://mxhaard.free.fr/download.html. Итак, для начала загрузим&lt;br /&gt;
последнюю версию для ядра 2.6 с http://mxhaard.free.fr/spca50x/Download/gspcav1-20071224.tar.gz.&lt;br /&gt;
&lt;br /&gt;
Cкачав драйвер, распакуем его:&lt;br /&gt;
&lt;br /&gt;
  tar -xvzf qc-usb-0.6.6.tar.gz&lt;br /&gt;
&lt;br /&gt;
Установка довольно проста. Во-первых, мы должны установить заголовки ядра Linux и пакеты ''build-essential'':&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install build-essential linux-headers-$(uname -r)&lt;br /&gt;
&lt;br /&gt;
Для сборки драйвера gspca запустите от имени root&lt;br /&gt;
&lt;br /&gt;
 ./gspca_build&lt;br /&gt;
&lt;br /&gt;
Если все пойдет нормально, модуль ядра соберется и загрузится. Далее следует подключить web-камеру и открыть ''Cheese'' или любое другое приложение, способное выводить с нее картинку. Если вы узрите свою физиономию на экране, значит, web-камера работает.&lt;br /&gt;
&lt;br /&gt;
Для настройки сетевой камеры будет лучше подключить ее прямо к концентратору, не связываясь с беспроводным соединением. Сперва надо изменить IP-адрес вашего компьютера на ту же подсеть, что и у камеры. Наш компьютер мы настроим на адрес 192.168.1.10. Теперь откройте ''Firefox'' и наберите адрес камеры по&lt;br /&gt;
умолчанию – http://192.168.1.115/. Вы должны увидеть стартовую страницу камеры. Нажмите кнопку '''Setup''' и введите имя пользователя и пароль (по умолчанию '''admin admin''').&lt;br /&gt;
&lt;br /&gt;
Настройте IP-адрес и маску так, чтобы камера стала частью вашей подсети. В данном учебнике мы будем подразумевать подсеть 192.168.0.0, поэтому введите 192.168.0.26 в качестве IP-адреса камеры и 255.255.255.0 в качестве маски, а затем укажите свой часовой пояс. Неплохой идеей будет включить контрольный светодиод, дабы, посмотрев на него, вы могли убедиться, что web-камера работает. Не забудьте сменить на своем компьютере IP-адрес обратно на что-то в диапазоне 192.168.0.0 после завершения настройки.&lt;br /&gt;
&lt;br /&gt;
По умолчанию Linksys WVC54GCA выдает видеопоток в формате '''MPEG4 ASF'''. Его можно просмотреть из ''MPlayer'' или ''VLC'':&lt;br /&gt;
&lt;br /&gt;
  mplayer http://cam.era.ip.address/img/video.asf&lt;br /&gt;
&lt;br /&gt;
Но нам необходим поток видео в формате '''MJPEG'''. Введите URL-адрес камеры в вашем браузере в следующем формате:&lt;br /&gt;
&lt;br /&gt;
  http://your.webcam.ip.address/adm/file.cgi?h_videotype=mjpeg&amp;amp;todo=save&lt;br /&gt;
&lt;br /&gt;
Если требуется вернуть назад формат '''ASF''', используйте следующий формат URL:&lt;br /&gt;
&lt;br /&gt;
  http://your.webcam.ip.address/adm/file.cgi?h_videotype=mpeg4&amp;amp;todo=save&lt;br /&gt;
&lt;br /&gt;
===Часть 2 Установка ПО для наблюдения===&lt;br /&gt;
&lt;br /&gt;
Теперь, имея пару рабочих web-камер, настроим программы для наблюдения за ними. ''Motion'' (http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome) успешно балансирует между функциональностью и простотой установки. Стоит изучить Wiki на сайте ''Motion'', так как там масса опций настройки. ''Motion'' присутствует в виде пакета Debian/Ubuntu, и для его установки на Debian достаточно набрать  &lt;br /&gt;
  sudo apt-get install motion&lt;br /&gt;
&lt;br /&gt;
У нас Ubuntu, поэтому ''Motion'' устанавливается как демон. Когда мы все настроим, это будет шикарно. Однако сперва легче запустить его вручную от имени обычного пользователя и опробовать различные варианты конфигурации. Сперва остановим демона:&lt;br /&gt;
&lt;br /&gt;
 sudo /etc/init.d/motion stop&lt;br /&gt;
&lt;br /&gt;
''Motion'' ищет свои файлы конфигурации в нескольких местах, и вы можете указать их расположение в командной строке при запуске. Ubuntu помещает файлы конфигурации в '''/etc/motion'''. Скопируем их в директорию '''~/.motion''', чтобы иметь возможность изменять файлы, перебирая различные опции. Создайте каталог '''.motion''':&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/.motion&lt;br /&gt;
&lt;br /&gt;
Скопируйте файлы из директории по умолчанию в '''.motion''', а затем измените владельца файлов, чтобы мы могли их редактировать:&lt;br /&gt;
&lt;br /&gt;
 sudo chown -R ian.users /.motion&lt;br /&gt;
&lt;br /&gt;
Основной конфигурационный файл – '''motion.conf'''. Чтобы наблюдать более одной камеры, каждый процесс наблюдения должен быть запущен в своем собственном потоке и иметь собственный файл конфигурации ('''thread1.conf, thread2.conf''', и т.д.). Примеры установки по умолчанию имеются в только что созданной директории '''~/.motion'''. &lt;br /&gt;
&lt;br /&gt;
====Магические опции====&lt;br /&gt;
&lt;br /&gt;
Начнем с одной web-камеры, поместив ее настройки в '''thread1.conf'''. Файл '''motion.conf''' хорошо откомментирован, со многими возможными опциями. Заметим, что поскольку мы используем потоки, мы должны включить их в '''motion.conf''' (чтобы понять, как это делается, см. далее пример файла '''motion.conf''').&lt;br /&gt;
&lt;br /&gt;
 # Remember: If you have more than one camera you must&lt;br /&gt;
 have one&lt;br /&gt;
 # thread file for each camera. E.g. 2 cameras requires 3 files:&lt;br /&gt;
 # This motion.conf file AND thread1.conf and thread2.conf.&lt;br /&gt;
 # Only put the options that are unique to each camera in the&lt;br /&gt;
 # thread config files.&lt;br /&gt;
 thread /home/ian/.motion/thread1.conf&lt;br /&gt;
 thread /home/ian/.motion/thread2.conf&lt;br /&gt;
&lt;br /&gt;
Большинство опций в '''thread1.conf''' мы оставим по умолчанию. Те, что нам действительно надо изменить, приведены ниже. Настройка '''videodevice''' предполагает использование web-камеры USB. Чтобы узнать, какое устройство использует наша web-камера, подключите ее к компьютеру и введите &lt;br /&gt;
&lt;br /&gt;
 ian@scamper:~$ ls /dev/video* &lt;br /&gt;
 /dev/video0&lt;br /&gt;
&lt;br /&gt;
Эта строка выведет список всех подключенных видеоустройств. У нас только одна USB-камера, и это '''/dev/video0'''.&lt;br /&gt;
&lt;br /&gt;
Теперь проделаем следующие изменения в '''thread1.conf''':&lt;br /&gt;
&lt;br /&gt;
 # Video device&lt;br /&gt;
 videodevice /dev/video0&lt;br /&gt;
 # Image width (pixels). Valid range: Camera dependent, default: 352&lt;br /&gt;
 width 640&lt;br /&gt;
 # Image height (pixels). Valid range: Camera dependent, default: 288&lt;br /&gt;
 height 480&lt;br /&gt;
 # Make automated snapshot every N seconds (default: 0 = disabled)&lt;br /&gt;
 snapshot_interval 0&lt;br /&gt;
 # Target base directory for pictures and videos&lt;br /&gt;
 # Recommended to use absolute patch. (Default: current working&lt;br /&gt;
 # directory)&lt;br /&gt;
 # Must be writeable by Motion.&lt;br /&gt;
 target_dir /home/ian/public_html/webcam/usb_cam&lt;br /&gt;
&lt;br /&gt;
Можно задать высоту и ширину изображения согласно настройкам web-камеры по умолчанию. Если хотите, задайте их меньше, чем позволяет web-камера. Чтобы ''Motion'' работало как типичное приложение для web-камеры, делая снимки через заранее заданные интервалы, установите '''snapshot_interval''' в файле '''thread.conf''' в значение, отличное от нуля. А главное, задайте в опции '''target_dir''' директорию, куда ''Motion'' будет сохранять данные.&lt;br /&gt;
&lt;br /&gt;
====И это функционирует?====&lt;br /&gt;
&lt;br /&gt;
Теперь проверим, что все работает. Запустите ''Motion'':&lt;br /&gt;
&lt;br /&gt;
 motion -c ~/.motion/motion.conf&lt;br /&gt;
&lt;br /&gt;
Опция '''-c''' велит ''Motion'' использовать файл конфигурации '''~/.motion/motion.conf''', а не '''/etc/motion/motion.conf'''. Использовать ключ '''-c''' и всегда указывать местоположение файла конфигурации – хорошая идея, так как ''Motion''' ищет свои настройки в нескольких разных местах, и выбирает последнее найденное.&lt;br /&gt;
&lt;br /&gt;
Пару раз попрыгайте перед web-камерой и загляните в директорию, указанную в '''target_dir'''. Если все работает, вы должны увидеть несколько AVI-файлов. Установив '''snapshot_interval''' отличным от нуля, вы увидите еще и JPEG-файлы. Заметим, что ''Motion'' всегда создает файл с именем '''lastsnap.jpg''', это символьная ссылка на последний снимок.&lt;br /&gt;
&lt;br /&gt;
Настроив web-камеру USB, перейдем к настройке Motion для работы с нашей сетевой камерой Linksys. Создайте '''thread2.conf''' (или отредактируйте его) и убедитесь, что он включен в '''motion.conf'''. Кроме того, убедитесь, что вы использовали вышеприведенный способ для настройки Linksys на вещание в формате MJPEG, а не файлов ASF. Закоментируйте все существующие строки '''videodevice''' и вставьте следующий текст:&lt;br /&gt;
&lt;br /&gt;
 #videodevice /dev/video1&lt;br /&gt;
 netcam_url http://your.webcam.ip.address/img/mjpeg.cgi&lt;br /&gt;
&lt;br /&gt;
Задайте целевую директорию, чтобы сетевая камера записывала свои файлы не на то место, что использует USB-камера.&lt;br /&gt;
&lt;br /&gt;
 target_dir /home/ian/public_html/webcam/usb_cam&lt;br /&gt;
&lt;br /&gt;
Нажмите '''Ctrl+C''', чтобы остановить запущенный ''Motion'', и перезагрузите его:&lt;br /&gt;
&lt;br /&gt;
 motion -c ~/.motion/motion.conf&lt;br /&gt;
&lt;br /&gt;
Теперь вы должны видеть статические картинки и видео с вашей сетевой камеры.&lt;br /&gt;
&lt;br /&gt;
===Часть 3 Уточнение результатов===&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF115_71_1.jpg|300px]]  Используйте файл с маской для отсечения области обзора камеры, где вам не надо обнаруживать движение.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Параметры обнаружения движения по умолчанию хорошо работают в большинстве случаев, однако вполне возможно, что в контролируемой зоне может быть дорога или, например, деревья. Движение в этих областях сгенерирует событие и приведет к большому количеству ложных тревог. Чтобы избежать их, применим '''mask_file''', определяющий области, где движения можно игнорировать. Маска – это файл PGM (portable graymap), который должен быть одинаковой высоты и ширины с захваченным&lt;br /&gt;
кадром. Область, где вам не нужны срабатывания датчика движения, должна быть зачернена, а место, где они требуются, должно быть белым.&lt;br /&gt;
&lt;br /&gt;
Файл маски легко создать, взяв захваченный кадр с web-камеры и отредактировав его в ''GIMP''. На рисунке в начале есть деревце на переднем плане, которое вызовет срабатывание при раскачивании их ветром. Я запустил ''GIMP'' и отредактировал это изображение для создания файла маски, показанного справа. Можно видеть, что мы исключили из рассмотрения область, содержащую растения, заполнив ее черным цветом. Оставшаяся часть изображения, где мы хотим, чтобы движение обнаруживалось, должна быть заполнена белым. Сохраните изображение как файл PGM в ''GIMP''.&lt;br /&gt;
&lt;br /&gt;
Теперь велим ''Motion'' использовать файл маски. В '''thread.conf''' соответствующей web-камеры отредактируйте опцию '''mask_file''':&lt;br /&gt;
&lt;br /&gt;
 mask_file /home/ian/webcam/my_mask_file.pgm&lt;br /&gt;
&lt;br /&gt;
Можно также указать, сколько последовательных кадров должно содержать движение, чтобы ''Motion'' распознал его как реальное. Этот параметр определяется с помощью '''minimum_motion_frames''' и по умолчанию равен '''1'''. Чувствительность детектирования также можно скорректировать через параметр '''threshold''' в файле конфигурации. Он определяет количество пикселей, которые должны измениться, прежде чем будет засчитано движение. По умолчанию используется значение '''1500'''.&lt;br /&gt;
&lt;br /&gt;
====Оповещение по e-mail====&lt;br /&gt;
&lt;br /&gt;
''Motion'' умеет запускать внешние команды при обнаружении движения и связанных с ним событий. Имеющиеся события приведены в таблице. Вы можете указать скрипту на события в '''motion.conf''' или соответствующем файле '''thread.conf'''. Обнаружив движение, ''Motion'' создает MPEG-файл событий. Кроме того, он&lt;br /&gt;
создает JPEG-файл с одним из видеокадров. Момент в процессе движения, когда создается JPEG-файл, настраивается с помощью опции '''output_normal''' в файле '''thread.conf'''. Установка ее в '''best''' сохранит изображение с наибольшим изменением пикселей по ходу события.&lt;br /&gt;
&lt;br /&gt;
События можно использовать для отправки оповещений по электронной почте c прикрепленными JPEG- или MPEG-файлами. Так как MPEG-файлы бывают довольно велики, возможно, лучше всего будет отправить файл JPEG, показывающий изображение с наибольшим изменением пикселей (около 50 КБ), иначе вас завалит спамом из видео вашей кошки, резвящейся перед web-камерой.&lt;br /&gt;
&lt;br /&gt;
Для отправки e-mail-оповещения с прикрепленным JPEG-файлом употребим ''Mutt''. Сперва установим его:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install mutt&lt;br /&gt;
&lt;br /&gt;
Теперь надо создать сценарий оболочки для отправки JPEG-файла. На Wiki ''Motion'' говорится, что в обработчике события можно использовать местозаменитель '''%f''', куда подставится имя файла, однако в версии программы, поставляемой с Ubuntu Hardy, это не сработало. Для отправки JPEG мы будем использовать&lt;br /&gt;
событие '''on_event_end'''.&lt;br /&gt;
&lt;br /&gt;
Заметьте, что '''jpeg_filename''' (имя файла для отправки) определено в нашем '''thread.conf'''. Формат имени файла, передаваемого в обработчик события '''on_end_event''', должен соответствовать таковому в '''jpeg_filename'''. Обратитесь к Wiki ''Motion'' для получения детальной информации о местозаменителях, допустимых в именах файлов.&lt;br /&gt;
&lt;br /&gt;
Отредактируем '''thread.conf''', соответствующий нашей камере:&lt;br /&gt;
&lt;br /&gt;
 jpeg_filename %v-%Y%m%d%H%M%S-%q&lt;br /&gt;
 on_event_end send_mail ~/scripts/email_alert.sh / “/home/ian/public_html/webcam/linksys/%v-%Y%m%d%H%M%S-%q”&lt;br /&gt;
&lt;br /&gt;
Осталось создать скрипт '''email_alert.sh''' в нашем любимом редакторе. Не забудьте сделать его исполняемым:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 #Destination e-mail address&lt;br /&gt;
 TO=”ian@firewall.banter.local”&lt;br /&gt;
 #Subject of the e-mail&lt;br /&gt;
 SUBJECT=”Motion detected”&lt;br /&gt;
 echo ‘Email body text goes here’ | mutt -a $1 -s $SUBJECT $TO&lt;br /&gt;
&lt;br /&gt;
В скрипте '''$1''' заменяется именем JPEG-файла, передаваемого обработчиком события ''Motion''. '''LXF'''&lt;br /&gt;
&lt;br /&gt;
====И это еще не все...====&lt;br /&gt;
&lt;br /&gt;
Отправка сообщений о вторжении – не единственная возможность: ''Motion'' может держать вас в курсе событий с помощью смеси собственного встроенного web-сервера, PHP и FTP. Чтобы узнать, как этого добиться, см. продолжение учебника на http://www.linuxformat.ru/mag/webcam.txt.&lt;br /&gt;
&lt;br /&gt;
====Ссылки====&lt;br /&gt;
&lt;br /&gt;
* Драйвера web-камер Linux ''gspca'': http://mxhaard.free.fr/download.html&lt;br /&gt;
* Детектор движения ''Motion'': http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome&lt;br /&gt;
&lt;br /&gt;
====Таблица событий====&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable border=1 cellpadding=5|-&lt;br /&gt;
! Функция &lt;br /&gt;
! Опции &lt;br /&gt;
! Аргументы&lt;br /&gt;
|-&lt;br /&gt;
| Запуск события (первое движение)&lt;br /&gt;
| on_event_start &lt;br /&gt;
| нет&lt;br /&gt;
|-&lt;br /&gt;
| Конец события (нет движения в течение нескольких секунд)&lt;br /&gt;
| on_event_end &lt;br /&gt;
| нет&lt;br /&gt;
|-&lt;br /&gt;
| Запись статического изображения&lt;br /&gt;
| on_picture_save &lt;br /&gt;
| Имя файла изображения&lt;br /&gt;
|-&lt;br /&gt;
| Старт записи видео &lt;br /&gt;
| on_movie_start &lt;br /&gt;
| Имя видеофайла&lt;br /&gt;
|-&lt;br /&gt;
| Окончание записи видео &lt;br /&gt;
| on_movie_end &lt;br /&gt;
| Имя видеофайла&lt;br /&gt;
|-&lt;br /&gt;
| Детектирование движения (каждый одиночный кадр с обнаруженными ''Motion'' изменениями)&lt;br /&gt;
| on_motion_detected &lt;br /&gt;
| нет&lt;br /&gt;
|}&lt;/div&gt;</description>
			<pubDate>Wed, 20 Jan 2010 12:21:01 GMT</pubDate>			<dc:creator>Crazy Rebel</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF115:Hardcore_Linux</comments>		</item>
	</channel>
</rss>