☎ Обучение сайтостроение или web-дизайн, обработка графики, системное администрирование, администрирование Windows серверов, администрирование Linux серверов, создание LAMP серверов, 1С бухгалтерия с нуля для взрослых и детей от 12 лет г. Краснодар тел. +7 908 691 83 63 +7 918 320 05 07 e-mail: master@spo23.ru

Вы здесь

Обучение программированию Краснодар

Практические занятия по приобретению навыков детей от 12 лет

Направления:

  • Вычислительные системы, сети и телекоммуникации
  • Конфигурирование MS Windows
  • Конфигурирование Linux
  • Графические приложения
  • Сетевое программирование (или системное)
  • Базы данных Системы управления базами данных Теория баз данных
  • Аппаратное обеспечение рабочих станций, серверов, ноутбуков
  • Web-технологии
  • Создание web-сайтов
  • Ускоренный курс по созданию web-сайтов CMS Wordpress, Jumla, Drupal, PHPBB
  • Системы видеонаблюдения. Расчет. Тактика планирования. Монтаж. Курс 5 часов

Читать здесь > > > > > > > > > > > >

Позвонитьтел. +7 908 691 83 63 +7 918 320 05 07

Видеосервер motion

Фейсбук Цифтех
ВКонтакте Цифтех
Инстаграм Цифтех
Одноклассники Цифтех
Pinterest Анатолий Фукалов
Livejournal Анатолий Фукалов

видеосервер

Достаточно оставить кошелек на пару минут без присмотра, как он тут же переместится в иное измерение. Наверное стоит нанять охранника, который будет за умеренную плату контролировать зону интересов, квартиру, дом, двор или служебный кабинет. Мы вроде бы как программисты и возложим сей рутинный труд на технику, вернее на компьютер. Организовать свой собственный видеосервер не так уж и сложно. А в случае, когда ваши компьютеры управляются системой Линукс, одно только осознание факта, что такая система может работать годами, имеет высокую отказоустойчивость и еще стопятьсот различных плюсов, обещает как минимум хорошее настроение.

Видеосервер как правило обладает таким функционалом, как получение потокового видео с камер, записи сего содержимого, хранение, маркировка и представление для обозрения в режиме реального времени, а так же накопившихся архивов. Соответственно стоит возложить на него обязанность контролировать размер содержимого архива и своевременное удаление устаревших записей. Это не ограничение функционала, это минимум необходимого.

Я пожелал получать видеопоток с двух вебкамер, имеющих usb интерфейс. Звук мне пока не к чему. Запись должна срабатывать при наличии движения в зоне обслуживания камеры, синхронная маркировка сделанных записей. И самое главное, хочется получать видео в реал тайм по локальной сети на любом из компьютеров. В дальнейшем через интернет тоже.

Для сих целей избран motion, исходные коды которого доступны по указанной ссылке. Сборка и установка ведутся в обычном режиме.

Основной конфигурационный файл сервера - /etc/motion.conf

Я привел его к следующему содержанию:

daemon on
process_id_file /var/run/motion/motion.pid
setup_mode off
videodevice /dev/video0
v4l2_palette 8
input 8
norm 0
frequency 0
rotate 0
width 640
height 480
framerate 8
minimum_frame_time 0
netcam_http 1.0
netcam_tolerant_check off
auto_brightness off
brightness 0
contrast 0
saturation 0
hue 0
roundrobin_frames 1
roundrobin_skip 1
switchfilter off
threshold 1500
threshold_tune off
noise_level 32
noise_tune on
despeckle EedDl
smart_mask_speed 0
lightswitch 0
minimum_motion_frames 1
pre_capture 5
post_capture 5
gap 240
max_mpeg_time 600
output_all off
output_normal best
output_motion off
quality 75
ppm off
ffmpeg_cap_new on
ffmpeg_cap_motion off
ffmpeg_timelapse 0
ffmpeg_timelapse_mode daily
ffmpeg_bps 500000
ffmpeg_variable_bitrate 0
ffmpeg_video_codec mpeg4
ffmpeg_deinterlace off
snapshot_interval 0
locate off
text_right %Y-%m-%d\n%T-%q
text_left CAMERA %t
text_changes off
text_event %Y%m%d%H%M%S
text_double off
target_dir /home/motion/cam1
snapshot_filename %v-%Y%m%d%H%M%S-snapshot
jpeg_filename %v-%Y%m%d%H%M%S-%q
movie_filename %v-%Y%m%d%H%M%S
timelapse_filename %Y%m%d-timelapse
webcam_port 8081
webcam_quality 50
webcam_motion 8
webcam_maxrate 8
webcam_localhost off
webcam_limit 0
control_port 8080
control_localhost on
control_html_output on
track_type 0
track_auto off
track_motorx 0
track_motory 0
track_maxx 0
track_maxy 0
track_iomojo_id 0
track_step_angle_x 10
track_step_angle_y 10
track_move_wait 10
track_speed 255
track_stepsize 40
quiet on
sql_log_image on
sql_log_snapshot on
sql_log_mpeg off
sql_log_timelapse off
sql_query insert into security(camera, filename, frame, file_type, time_stamp, event_time_stamp) values('%t', '%f', '%q', '%n', '%Y-%m-%d %T', '%C')
; thread /etc/thread1.conf
; thread /etc/thread2.conf

Обратите внимание, что комментарии в файле открываются знаком ";".

Описанная конфигурация относится к одной usb камере, в случае подключения нескольких камер, их настройки вносятся в файлы thread*.conf для каждой из камер отдельно. Настройки, общие для всех устройств хранятся в /etc/motion.conf. Motion умеет работать не только с usb интерфейсом, но так же и с любой pci картой к которой подключаются камеры, а так же с сетевыми веб-камерами, ptz-камерами и другими устройствами, кроме утюгов и плоек. Программа имеет свой http-сервер, но я выбрал apache2, для более гибкого управления контентом, все равно индеец работает в сети. Его настройку описывать не буду. Настройка логирования событий в базу данных и функционал детекции слежения и ведения объектов - это тема отдельного разговора.

При написании конфигурационного файла следует обратить внимание на место, куда сливается видеоконтент, права на директорию и файлы. Так же важно правильно определить видеоустройство, которое соответствует подключенному оборудованию. Можно использовать /dev/video0, /dev/video1 и так далее, в соответствии с правилами отсчета. Но можно указывать прямой путь, например по id устройства в системе

/dev/v4l/by-id/usb-XPA4Y1096_1.3M_WebCam-video-index0

Итак, конфиги поправлены, камеры подключены, запускаем motion:

/etc/init.d/motion start

Если все в порядке, программа ответит "Ок" и уйдет в фон, если этого не случилось, читаем логи, курим конфигурационный файл, переключаем daemon on в положение off и смотрим отладку в консоли. Если программа запустилась, проверяем картинку в окне локального браузера по адресу http://localhost:8081 или какой у вас указан порт. У каждой из камер порт должен быть свой отдельный. Картинка есть, значит - ура. Если нет - возвращаемся в начало статьи.

Приведенные в конфиге настройки отвечают за появление достаточно "крупной тушки" в зоне работы камеры для момента реагирования сервера на включение записи, если чувствительность нужна более высокая, следует внести свои корректировки.

Для демонстрации видеоконтента с четырех камер в локальную подсеть, достаточно написать html-файл и уложить его в основную директорию индейца. Пример такого файла здесь.

Если файл именуется index.html и лежит в корневой директории апача, то соответственно при заходе на http://localhost мы будем видеть страничку с четырьмя окнами, в каждом из которых работает отдельная камера, то есть идет изображение. При заходе с другого компьютера в локальной сети следует лишь набрать адрес сервера и путь к описанному файлу. В общем, здесь полет мысли может быть любой.

Вот собственно краткий опус о том, как сделать простейший видеосервер в домашних условиях.

Фейсбук Цифтех
ВКонтакте Цифтех
Инстаграм Цифтех
Одноклассники Цифтех
Pinterest Анатолий Фукалов
Livejournal Анатолий Фукалов