MyTetra Share
Делитесь знаниями!
Установка системы видеонаблюдения Zoneminder на FreeBSD 7.0
Время создания: 08.07.2015 11:13
Автор: Densan
Текстовые метки: Linux, FreeBSD, ZoneMinder, настройка, видеонаблюдение
Раздел: Компьютер - Linux - Видео в Linux - ZoneMinder
Запись: xintrea/mytetra_syncro/master/base/1436343211nw4noy1v26/text.html на raw.github.com

Имеем:

media# uname -vFreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008

root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC


Чуть позже ставил на 7.1, установка аналогичная. Ставим апач:

media# cd /usr/ports/www/apache22


Оставляю все без изменеий:

media# make showconfig

APR_FROM_PORTS=off "Use devel/apr as APR (beware!)"

THREADS=off "Enable threads support in APR"

MYSQL=off "Enable MySQL support for apr-dbd"

PGSQL=off "Enable PostgreSQL support for apr-dbd"

SQLITE=off "Enable SQLite support for apr-dbd"

IPV6=off "Enable IPv6 support"

BDB=off "Enable BerkeleyDB dbm"

AUTH_BASIC=on "Enable mod_auth_basic"

AUTH_DIGEST=on "Enable mod_auth_digest"

AUTHN_FILE=on "Enable mod_authn_file"

AUTHN_DBD=off "Enable mod_authn_dbd"

AUTHN_DBM=on "Enable mod_authn_dbm"

AUTHN_ANON=on "Enable mod_authn_anon"

AUTHN_DEFAULT=on "Enable mod_authn_default"

AUTHN_ALIAS=on "Enable mod_authn_alias"

AUTHZ_HOST=on "Enable mod_authz_host"

AUTHZ_GROUPFILE=on "Enable mod_authz_groupfile"

AUTHZ_USER=on "Enable mod_authz_user"

AUTHZ_DBM=on "Enable mod_authz_dbm"

AUTHZ_OWNER=on "Enable mod_authz_owner"

AUTHZ_DEFAULT=on "Enable mod_authz_default"

CACHE=on "Enable mod_cache"

DISK_CACHE=on "Enable mod_disk_cache"

FILE_CACHE=on "Enable mod_file_cache"

MEM_CACHE=off "Enable mod_mem_cache"

DAV=on "Enable mod_dav"

DAV_FS=on "Enable mod_dav_fs"

BUCKETEER=off "Enable mod_bucketeer"

CASE_FILTER=off "Enable mod_case_filter"

CASE_FILTER_IN=off "Enable mod_case_filter_in"

EXT_FILTER=off "Enable mod_ext_filter"

LOG_FORENSIC=off "Enable mod_log_forensic"

OPTIONAL_HOOK_EXPORT=off "Enable mod_optional_hook_export"

OPTIONAL_HOOK_IMPORT=off "Enable mod_optional_hook_import"

OPTIONAL_FN_IMPORT=off "Enable mod_optional_fn_import"

OPTIONAL_FN_EXPORT=off "Enable mod_optional_fn_export"

LDAP=off "Enable mod_ldap"

AUTHNZ_LDAP=off "Enable mod_authnz_ldap"

ACTIONS=on "Enable mod_actions"

ALIAS=on "Enable mod_alias"

ASIS=on "Enable mod_asis"

AUTOINDEX=on "Enable mod_autoindex"

CERN_META=on "Enable mod_cern_meta"

CGI=on "Enable mod_cgi"

CHARSET_LITE=on "Enable mod_charset_lite"

DBD=off "Enable mod_dbd"

DEFLATE=on "Enable mod_deflate"

DIR=on "Enable mod_dir"

DUMPIO=on "Enable mod_dumpio"

ENV=on "Enable mod_env"

EXPIRES=on "Enable mod_expires"

HEADERS=on "Enable mod_headers"

IMAGEMAP=on "Enable mod_imagemap"

INCLUDE=on "Enable mod_include"

INFO=on "Enable mod_info"

LOG_CONFIG=on "Enable mod_log_config"

LOGIO=on "Enable mod_logio"

MIME=on "Enable mod_mime"

MIME_MAGIC=on "Enable mod_mime_magic"

NEGOTIATION=on "Enable mod_negotiation"

REWRITE=on "Enable mod_rewrite"

SETENVIF=on "Enable mod_setenvif"

SPELING=on "Enable mod_speling"

STATUS=on "Enable mod_status"

UNIQUE_ID=on "Enable mod_unique_id"

USERDIR=on "Enable mod_userdir"

USERTRACK=on "Enable mod_usertrack"

VHOST_ALIAS=on "Enable mod_vhost_alias"

FILTER=on "Enable mod_filter"

VERSION=on "Enable mod_version"

PROXY=off "Enable mod_proxy"

PROXY_CONNECT=off "Enable mod_proxy_connect"

PROXY_FTP=off "Enable mod_proxy_ftp"

PROXY_HTTP=off "Enable mod_proxy_http"

PROXY_AJP=off "Enable mod_proxy_ajp"

PROXY_BALANCER=off "Enable mod_proxy_balancer"

SSL=on "Enable mod_ssl"

SUEXEC=off "Enable mod_suexec"

CGID=off "Enable mod_cgid"

===> Use 'make config' to modify these settings

media# make install clean


Ставим php5

media# cd /usr/ports/lang/php5


Я выбрал такой конфиг.

media# make showconfig

===> The following configuration options are available for php5-5.2.8:

CLI=on "Build CLI version"

CGI=on "Build CGI version"

APACHE=on "Build Apache module"

DEBUG=off "Enable debug"

SUHOSIN=on "Enable Suhosin protection system (not for jails)"

MULTIBYTE=off "Enable zend multibyte support"

IPV6=on "Enable ipv6 support"

MAILHEAD=off "Enable mail header patch"

REDIRECT=off "Enable force-cgi-redirect support (CGI only)"

DISCARD=off "Enable discard-path support (CGI only)"

FASTCGI=on "Enable fastcgi support (CGI only)"

PATHINFO=on "Enable path-info-check support (CGI only)"

media# make install clean


В /usr/local/etc/apache22/httpd.conf добавляем строки

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps


Ставим mysql

media# cd /usr/ports/databases/mysql51-server

media# make install clean


Ставим php5-extentions

media# cd /usr/ports/lang/php5-extensions

media# make install clean


У меня такой конфиг

media# make showconfig

===> The following configuration options are available for php5-extensions-1.2:

BCMATH=off "bc style precision math functions"

BZ2=off "bzip2 library support"

CALENDAR=off "calendar conversion support"

CTYPE=on "ctype functions"

CURL=off "CURL support"

DBA=off "dba support"

DBASE=off "dBase library support"

DOM=on "DOM support"

EXIF=off "EXIF support"

FILEINFO=off "fileinfo support"

FILTER=on "input filter support"

FRIBIDI=off "FriBidi support"

FTP=off "FTP support"

GD=off "GD library support"

GETTEXT=off "gettext library support"

GMP=off "GNU MP support"

HASH=on "HASH Message Digest Framework"

ICONV=on "iconv support"

IMAP=off "IMAP support"

INTERBASE=off "Interbase 6 database support (Firebird)"

JSON=on "JavaScript Object Serialization support"

LDAP=off "OpenLDAP support"

MBSTRING=off "multibyte string support"

MCRYPT=on "Encryption support"

MHASH=on "Crypto-hashing support"

MING=off "ming shockwave flash support"

MSSQL=off "MS-SQL database support"

MYSQL=on "MySQL database support"

MYSQLI=off "MySQLi database support"

NCURSES=off "ncurses support (CLI only)"

ODBC=off "unixODBC support"

OPENSSL=off "OpenSSL support"

PCNTL=off "pcntl support (CLI only)"

PDF=off "PDFlib support (implies GD)"

PDO=on "PHP Data Objects Interface (PDO)"

PDO_SQLITE=on "PDO sqlite driver"

PGSQL=off "PostgreSQL database support"

POSIX=on "POSIX-like functions"

PSPELL=off "pspell support"

READLINE=off "readline support (CLI only)"

RECODE=off "recode support"

SESSION=on "session support"

SHMOP=off "shmop support"

SIMPLEXML=on "simplexml support"

SNMP=off "SNMP support"

SOAP=off "SOAP support"

SOCKETS=off "sockets support"

SPL=on "Standard PHP Library"

SQLITE=on "sqlite support"

SYBASE_CT=off "Sybase database support"

SYSVMSG=off "System V message support"

SYSVSEM=off "System V semaphore support"

SYSVSHM=off "System V shared memory support"

TIDY=off "TIDY support"

TOKENIZER=on "tokenizer support"

WDDX=off "WDDX support (implies XML)"

XML=on "XML support"

XMLREADER=on "XMLReader support"

XMLRPC=off "XMLRPC-EPI support"

XMLWRITER=on "XMLWriter support"

XSL=off "XSL support (Implies DOM)"

YAZ=off "YAZ support (ANSI/NISO Z39.50)"

ZIP=on "ZIP support"

ZLIB=off "ZLIB support"

===> Use 'make config' to modify these settings


Создаем файл /usr/local/www/apache22/data/info.php такого содержания.

cat /usr/local/www/apache22/data/info.php

<?

phpinfo();

?>


Добавляем в /etc/rc.conf

apache22_enable="YES"

mysql_enable="YES"


Стартуем апач

/usr/local/etc/rc.d/apache22 start


проверяем работу апача с PHP. Входим на страницу http://IP-сервера/info.php. Должны увидеть страницу с информацией об установленом PHP.
Скачиваем Zoneminder, распаковываем и переносим в /usr/ports/multimedia/

media# cd /tmp/media

# fetch http://matrix.gatewaynet.com/panix/zoneminder.tar.gz

media# tar zxvf zoneminder.tar.gz

zoneminder/x

zoneminder/files/x

zoneminder/files/patch-configurex

zoneminder/files/zm_fbsd_camera.cppx

zoneminder/files/videodev.h

...

media# mv zoneminder /usr/ports/multimedia/

media# cd /usr/ports/multimedia/zoneminder/


Правим Makefile
т.к. стоит Апач2 исправим mod_perl на mod_perl2, mysql50-server на mysql51-server, p5-DBD-mysql50 на p5-DBD-mysql51. Правим строку WEBBASE= ${LOCALBASE}/www/apache22
выбрал такой конфиг для ffmpeg (снял галки на счет аудиокодеков)

make showconfig

===> The following configuration options are available for ffmpeg-2008.07.27_7:

AMR_NB=off "AMR narrowband encoder"

AMR_WB=off "AMR wideband encoder"

FAAC=off "FAAC mp4/aac audio encoder"

FAAD=off "FAAD mp4/aac audio decoder"

GSM=off "gsm audio codec"

IPV6=off "IPV6 network support"

LAME=off "lame MP3 codec"

LIBA52=on "liba52 support"

OPTIMIZED_CFLAGS=off "Additional optimizations"

SDL=off "SDL support (build ffplay)"

THEORA=on "libtheora support (implies OGG)"

VORBIS=on "libvorbisenc support (implies OGG)"

X264=on "X.264 codec"

XVID=off "XVID codec"

===> Use 'make config' to modify these settings


после установки ffmpeg вывалилась ошибка

aclocal-1.10: not found

WARNING: `aclocal-1.10' is missing on your system. You should only need it if

you modified `acinclude.m4' or `configure.in'. You might want

to install the `Automake' and `Perl' packages. Grab them from

any GNU archive site.

cd . && /bin/sh /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3/missing --run automake-1.10 --gnu

automake-1.10: not found

WARNING: `automake-1.10' is missing on your system.

You should only need it if

you modified `Makefile.am', `acinclude.m4' or `configure.in'.

You might want to install the `Automake' and `Perl' packages.

Grab them from any GNU archive site.

cd . && /bin/sh /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3/missing --run autoconf

aclocal.m4:14: error: this file was generated for autoconf 2.61.

You have another version of autoconf. If you want to use that,

you should regenerate the build system entirely.

aclocal.m4:14: the top level

autom4te-2.62: /usr/local/bin/gm4 failed with exit status: 63

*** Error code 1

Stop in /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3.

*** Error code 1

Stop in /usr/ports/multimedia/zoneminder.


Проблема в том что порт был построен с использованием autoconf 2.61 и автор порта не хочет его переделывать. Предложили следующее решение. Скачать файлы aclocal.m4 и acinclude.m4 в каталог /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3/src, добавить в Makefile строчки

m4

файл

скачан

размер

размещён

примечание

947

10.9kb

2009-01-29

m4


MAKE_ARGS= ACLOCAL="${TRUE}" AUTOCONF="${TRUE}" AUTOMAKE="${TRUE}"

USE_AUTOTOOLS= autoconf:262:env

USE_AUTOTOOLS= aclocal:110 /usr/local/bin/autoheader:262



media# make clean


У кого-то прокатило и без этих файлов, только правкой Makefile.
и заново

media# make


опять ошибка

zm_mpeg.cpp: In destructor 'VideoStream::~VideoStream()':

zm_mpeg.cpp:281: error: cannot convert 'ByteIOContext**'

to 'ByteIOContext*' for argument '1' to 'int url_fclose(ByteIOContext*)'

*** Error code 1


в /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3/src/zm_mpeg.cpp на 281 и 283 строках вносим изменения:

за место url_fclose(&ofc->pb);

url_fclose(ofc->pb);


media# make install
В этот раз у меня все прошло без ошибок.
добавляем в /etc/rc.conf zm_enable="YES".
Стартуем mysql, входим и создаем БД.

media# /usr/local/etc/rc.d/mysql-server start

Starting mysql.

media# mysql -h localhost -u root -p

mysql: Команда не найдена.

media# rehash

media# mysql -h localhost -u root -p

Enter password:

mysql> source /usr/ports/multimedia/zoneminder/work/ZoneMinder-1.23.3/db/zm_create.sql;

mysql> grant select,insert,update,delete on zm.* to 'zmuser'@localhost identified by 'zmpass'; flush privileges;

mysql> quit

media# ee /usr/local/etc/apache22/httpd.conf


добавляем

<VirtualHost *:80>

DocumentRoot /usr/local/www/apache22/data/zm

DirectoryIndex index.php

</VirtualHost>


Теперь нужно пересобрать ядро с параметрами (эти параметры работали у меня с 3 камерами axis206)

options SHMMAXPGS=65536

options SHMMNI=384

options SHMSEG=256


у меня после перезагрузки ZM не стартовал, т.к. не видел базу, пришлось в раскомментировать /usr/local/etc/rc.d/zm sleep 10
несколько правок.
Это чтобы работал экпорт видео.

media# cd /usr/local/bin/

media# fetch http://www.hamsterleymill.co.uk/zmvideo.patch

media# patch < zmvideo.patch

Hmm... Looks like a new-style context diff to me...

The text leading up to this was:

--------------------------

|*** ./zmvideo.pl Mon Dec 29 02:01:13 2008

|--- ./zmvideo2.pl Mon Dec 29 01:53:19 2008

--------------------------

Patching file ./zmvideo.pl using Plan A...

Hunk #1 succeeded at 319.done

media#



zmvideo.patch

файл

скачан

размер

размещён

примечание

866

0.9kb

2009-03-17

zmvideo.patch

Это чтоб показывалось видео а не картинки в браузере.

media# pwd

/root

media# fetch http://www.charliemouse.com:8080/code/cambozola/cambozola-latest.tar.gz

media# tar zxvf cambozola-latest.tar.gz

cambozola-0.70/

cambozola-0.70/bldsrc/

cambozola-0.70/bldsrc/com/

cambozola-0.70/bldsrc/com/charliemouse/

cambozola-0.70/bldsrc/com/charliemouse/embed/

...

media# cp cambozola-0.70/dist/cambozola.jar /usr/local/www/apache22/data/zm/


перезапускаем апач

free# /usr/local/etc/rc.d/apache22 restart


и пробуем войти http://ip-сервера
Нажимаем на кнопку Add New Monitor открывается окно



В Zoneminder уже есть несколько шаблонов для камер. Нажимаем Presets и выбираем камеру



я выбрал Axis IP, 640x480,jpeg. Заполняем поля



Пояснение по режимам: None (и так понятно), Monitor (только просмотр), Modetect (запись только движения что я использую), Record (постоянная запись), Mocord (тоже что и Record, но дополнительно выделяются те области где было замечено движение).



Если доступ к просмотру камеры ограничен по логину/паролю, то в Remote Host Name пишем login:password@IP.
Параметры Remote Image Colors, Capture Width (pixels), Capture Height (pixels) должны быть поставлены те, что на камере.Сохраняем. Делаем это для всех камер.
Теперь сделаем чтоб вход был по логину паролю.
Щелкаем по Options в ZM_OPT_USE_AUTH ставим галку. Нажимаем Save. Обновляем страницу, входим по логину/паролю admin/admin. Заходим в Options - появилась новая вкладка Users. Меняем пароль для админа, заводим при необходимости новых пользователей. Сохраняем.
Чтобы события новын были в списке событий первыми ставим WEB-ZM_WEB_EVENT_SORT_ORDER-desc.
Для просмотра видео-потока с IE ставим



При этом на компьютере должна быть установлена
Java
По умолчанию ZM пишет события в каталог events в папке в моем случае /usr/local/www/apache22/data/zm. Я перенес этут папку на отдельный HDD, создал симлинк. Если вы планируете писать большое количество событий, то дабы избежать лимита на 32К подкаталогов на UFS (http://forum.lissyara.su/viewtopic.php?f=8&t=13701&p=126748#p126748) или используйте ZFS либо используйте Paths-ZM_USE_DEEP_STORAGE которая пока в ZM еще в стадии беты.
Т.к. видеонаблюдения я ставил в офисе, чтобы избежать ложных срабатываний посчитал нужным ограничить активные зоны - зоны, движение в которых записывается.
Для этого на главной странице на против нужной камеры в стобце Zone щелкаем на 1. Откроется окно в котором щелкаем на All и добавляя и передвигая точки контура делаем нужную вам активную зону



Сохраняем. При записи будут записываться посетители и не будут телодвижения секретаря руководителя и мелькания на экране монитора.


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования