20.07.2015, 14:30 | #1 |
Member
|
DIR-620 и OpenWRT,3G,VPN, WEB камера и т.д.
Есть у меня D-Link Dir-620 ревизия D1. Верой и правдой служил много лет, но недавно поменял его на Keenetic Giga II. (Стыдно перед старым другом, но функционал не много не тот). Тут я и нашел рессурс : "Прошивка DIR-620 OpenWRT" , и понял , что не все так уж и плохо для него. Он может еще послужить мне. Есть у меня дача, расположена от города в 30 км. Кроме поливной воды и канала, в котором можно купаться, нет ни чего (света, нормальной дороги, газа, ну и самого главного инета). С электричеством проблему решил, благо солнышко еще не кто не отменял, а соответственно информационный вакуум был решен с помощью телевизора. Но как хочется общаться с друзьями, близкими и т.д. Вот тут и всплыл Dir-620, USB модем Huawey E-173u, оператор Beelin (это не реклама, но у нас только он здесь работает нормально, все остальные проиграли после долгих проверок).
Ну поехали! Буду описывать последовательность действий, как делаю сам и что получилось. Ссылки на статьи буду вкладывать в текст. Переворачиваем роутер и смотрим ревизию прошивки. У меня она: D1. Если у Вас тоже, то качаем прошивку : Ревизия D1 Если у Вас ревизия А1, тоже не беда качаем: Ревизия A1 Сразу скажу, что решение прошивать принимаете Вы сами! Так , что меня не пинать. Скажу, что это: " Не я!" Начинаем: Подключаем роутер через один из четырех портов LAN к компьютеру. Выключаем роутер, зажимаем на передней панели кнопку , включаем роутер не отпуская кнопку, считаем до 30, отпускаем кнопку. Настраиваем сетевую карту в компьютере так: Набираем в браузере: 192.168.0.1. Видим: Выбираем файл прошивки, для Вашей ревизии: Нажимаем отправить и ждем пока прошьется, это порядка 5 минут. Он перезагрузится. Светодиод питания должен перестать моргать, а сетевой линк должен мигать в стандартном режиме. Настройки сетевой меняем на авто получения адреса, или вот так: Набираем в браузере: 192.168.1.1 Прекрасно. Логинимся, просто нажимаем: "Login" и попадем на страницу ввода своего пароля: Вводим свой пароль и не Забываем внизу нажать кнопочку:"Сохранить и применить"(там по аглицки). Пытаемся куда нибудь зайти, нам предлагается авторизоваться. Вводим свой, только, что введенный пароль и мы вошли в Luci. Подключаем роутер через порт Wan к интернету. Переходим в : System/Software: Жмем кнопку: "Обновить пакеты" Пакеты обновились, прекрасно. Набираем в строке "Filter" : luci. На закладке : Available packages (luci) находим файл: luci-i18n-russian и устанавливаем его. И о чудо! Великий и могучий. Теперь надо подключить внешний FLASH накопитель как системный диск. Памяти то, мало. Статьи: Умный Дом Сообщество EasyElectronics Подключаемся через PUTTY Устанавлиаем пакеты. Код:
opkg update opkg install kmod-usb2 insmod ehci-hcd opkg install kmod-usb-core kmod-usb-storage kmod-fs-ext4 kmod-scsi-core block-mount e2fsprogs fdisk fdisk -l USB Flash-диск должен определится как sda Сначала создаем на USB Flash разделы: fdisk /dev/sda Выполняем следующие команды: Command (m for help): d Partition number (1-4): 1 Command (m for help): d Partition number (1-4): 2 Command (m for help): d Partition number (1-4): 3 Command (m for help): d No partition is defined yet! Если появилось сообщение No partition is defined yet! тогда идем дальше Создаем сначала третий раздел для Swap: Command (m for help): n Command action e extended p primary partition (1-4) p [B] Partition number (1-4): 3 First cylinder (xx-xxx, default xx): жмем Enter Using default value xx Last cylinder or +size or +sizeM or +sizeK (xx-xxx, default xxx): +128M Создаем два раздела : системный и домашний: Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (xx-xxx, default xx): жмем Enter Using default value xx Last cylinder or +size or +sizeM or +sizeK (xx-xxx, default xxx): +5G Создаем домашний раздел, используем для него все оставшееся пространство на флешке: Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (xx-xxx, default xx): жмем Enter Using default value xx Last cylinder or +size or +sizeM or +sizeK (xx-xxx, default xxx): жмем Enter Третий раздел у нас должен быть Swap, меняем тип для него: Command (m for help): t Partition number (1-4): 3 Hex code (type L to list codes): 82 Changed system type of partition 1 to 82 (Linux swap / Solaris) Command (m for help): a Partition number (1-4): 1 Смотрим, что получилось: Command (m for help): p Выходим: Command (m for help): w Разделы созданы, форматируем их, одновременно присваивая им метки: Код:
mkswap -L CyberSwap /dev/sda3 mkfs.ext4 -L CyberWrt /dev/sda1 mkfs.ext4 -L CyberHome /dev/sda2 reboot Смотрим как флешка определась системой: fdisk -l Код:
Disk /dev/sda: 14.9 GiB, 15931539456 bytes, 31116288 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xe1a8e1a8 Device Boot Start End Blocks Id System /dev/sda1 * 264192 10749951 5242880 83 Linux /dev/sda2 10749952 31116287 10183168 83 Linux /dev/sda3 2048 264191 131072 82 Linux swap / Solaris Заходим на роутер SSH-клиентом, используя логин root и пароль, установленный через веб-админку. Редактируем файл /etc/config/fstab. vi /etc/config/fstab Для начала включим автомонтирование swap-раздела на USB-HDD/USB-флешке. Для этого в блоке global присвоим опции auto_swap значение 1. А так же в блоке swap опции enabled значение 1. Редактируем первую секцию «mount» для монтирования раздела накопителя поверх основной файловой системы. Узнать UID диска можно с помощью программы blkid, установив ее: Код:
opkg update opkg install blkid Результат: Код:
root@OpenWrt:~# blkid /dev/mtdblock4: TYPE="squashfs" /dev/sda1: LABEL="CyberWrt" UUID="91054dc0-88de-4e99-bd92-2151ee729de7" TYPE="ext4" PARTUUID="e1a8e1a8-01" /dev/sda2: LABEL="CyberHome" UUID="af62f232-d026-4c21-996b-0ad89b7dd29d" TYPE="ext4" PARTUUID="e1a8e1a8-02" /dev/sda3: LABEL="CyberSwap" TYPE="swap" PARTUUID="e1a8e1a8-03" Она поможет создать файл /etc/config/fstab с нуля и все UID уже будут стоять на месте. Есть два варианта: Очистить полностью файл fstab или использовать готовый, в этом случае в нем создадутся два практически одинаковых варианта настроек, вернее новые допишутся в конец файла. Поэтому верхние настройки (дубликаты)надо убрать. block detect >> /etc/config/fstab Для монтирования других разделов, будет использоваться файл fstab, хранящийся на внешнем накопителе: Код:
config 'global' option auto_swap '1' config 'mount' option target '/overlay' option uuid 'UID диска SDA1' option enabled '1' config 'swap' option device '/dev/sda1' option enabled '1' Монтируем новый диск и копируем на него все необходимое: Код:
mkdir -p /mnt mount -t ext4 /dev/sda1 /mnt -o rw,sync tar -C /overlay -cvf - . | tar -C /mnt -xvf - Проверяем смонтировался ли диск? df -h код Код:
root@OpenWrt:~# df -h Filesystem Size Used Available Use% Mounted on rootfs 4.8G 17.5M 4.5G 0% / /dev/root 2.3M 2.3M 0 100% /rom tmpfs 14.3M 348.0K 14.0M 2% /tmp /dev/sda1 4.8G 17.5M 4.5G 0% /overlay overlayfs:/overlay 4.8G 17.5M 4.5G 0% / tmpfs 512.0K 0 512.0K 0% /dev /dev/sda2 9.4G 21.9M 8.9G 0% /home mkdir /home Редактируем файл /etc/config/fstab. vi /etc/config/fstab В конечном итоге, он должен выглядеть вот так: код: Код:
config 'global' option anon_swap '0' option anon_mount '0' option auto_swap '1' option auto_mount '1' option delay_root '5' option check_fs '0' config 'mount' option target '/overlay' option uuid 'UID диска SDA1' option enabled '1' config 'mount' option target '/home' option uuid 'UID диска SDA2' option options 'noatime, async' option enabled '1' config 'swap' option device '/dev/sda3' option enabled '1' Или делаем тоже самое зайдя в LUCI: Система/Точки монтирования Перезагружаемся! Смотрим как примонтировались системный и домашний диск: df -h код: Код:
root@OpenWrt:~# df -h Filesystem Size Used Available Use% Mounted on rootfs 4.8G 13.6M 4.5G 0% / /dev/root 2.3M 2.3M 0 100% /rom tmpfs 14.3M 464.0K 13.9M 3% /tmp /dev/sda1 4.8G 13.6M 4.5G 0% /overlay overlayfs:/overlay 4.8G 13.6M 4.5G 0% / tmpfs 512.0K 0 512.0K 0% /dev /dev/sda2 9.4G 21.9M 8.9G 0% /home Проверяем SWAP раздел: free код: Код:
root@OpenWrt:~# free total used free shared buffers Mem: 29372 25688 3684 0 3548 -/+ buffers: 22140 7232 Swap: 131068 0 131068 Устанавливаем поддержку кодировок Код:
opkg update opkg install kmod-nls-cp1251 kmod-nls-koi8r kmod-nls-utf8 kmod-nls-cp866 kmod-nls-cp437 Код:
opkg install kmod-input-core kmod-video-core kmod-video-uvc Устанавливаем Midnight Commander Ссылки на статьи: Умный дом Код:
opkg update opkg install mc Код:
export TERMINFO="/usr/share/terminfo" export TERM="xterm" mc vi /etc/profile Код:
export TERMINFO=/usr/share/terminfo export TERM=xterm Логинимся: root, Ваш пароль. Копируем весь этот код и вставляем в окно Putty: Код:
opkg update opkg install comgt opkg install kmod-usb-core opkg install kmod-usb-serial opkg install kmod-usb-serial-option opkg install kmod-usb-uhci opkg install usb-modeswitch opkg install usb-modeswitch-data opkg install kmod-usb2 opkg install kmod-usb-ohci opkg install kmod-usb-serial-wwan opkg install kmod-usb-acm opkg install sdparm opkg install luci-proto-3g opkg install kmod-usb-serial-ipw opkg install chat opkg install ppp opkg install libusb-1.0 opkg install firewall opkg install luci-proto-ppp opkg install luci-app-firewall Перезагружаемся. Заходим в Сеть/Интерфейсы: Жмем кнопку: Интерфейс WAN/редактировать этот интерфейс. (это, чтобы не заморачиваться потом с настройками firewall и т.д., все равно у меня на даче кабельного инета нет и долго еще ( читай никогда) не будет) и меняем протокол Выбираем протокол: UMTS/GPRS/EV-DO, не забываем нажать кнопку "Изменить протокол". Сохраняем, заходим в настройки только, что измененного интерфейса WAN. Выбираем модем: USB0 Тип службы, на рисунке только: 3G. APN: точка доступа ОПСОСа PIN: если включена проверка PIN кода на сим карте. Имя пользователя и пароль. Все согласно рекомендациям сотового оператора. Нажимаем: "Сохранить и применить" Заходим в Сеть/Интерфейсы и через некоторое время видим, что 3G модем достучался до оператора. Ну, что ж в инет я вышел. Настраиваем локальную сеть, настраиваем WiFi. Через LUCI это быстро(ну окошки больше привычны). Вот конфиги (это секции которые надо настроить, остальное не менять) Это для любителей работать с конфигами, а не с окошками :-) : NETWORK: Код:
config interface 'loopback' option ifname 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' config interface 'lan' option ifname 'eth0.1' option force_link '1' option type 'bridge' option proto 'static' option netmask '255.255.255.0' option ip6assign '60' option macaddr '90:94:e4:ed:a5:58' option ipaddr '192.168.2.254' #это адрес Вашего роутера Код:
config dnsmasq option domainneeded '1' option boguspriv '1' option localise_queries '1' option rebind_protection '1' option rebind_localhost '1' option local '/lan/' option domain 'lan' option expandhosts '1' option authoritative '1' option readethers '1' option leasefile '/tmp/dhcp.leases' option resolvfile '/tmp/resolv.conf.auto' config dhcp 'lan' option interface 'lan' option leasetime '12h' option dhcpv6 'server' option ra 'server' option start '11' # это с какого и по какой адрес option limit '60'# DHCP будет раздавать option ra_management '1' config dhcp 'wan' option interface 'wan' option ignore '1' Код:
config wifi-device 'radio0' option type 'mac80211' option channel '11' option hwmode '11g' option path '10180000.wmac' option htmode 'HT20' option txpower '20' option country '00' config wifi-iface option device 'radio0' option network 'lan' option mode 'ap' option ssid 'Имя Вашей Сети' option encryption 'psk-mixed' option key 'ПарольСети' Все это здорово конечно! Но вопрос ведь не только выходить в Инет, но еще хотелось бы и иметь возможность подключаться удаленно к даче и вершить всякие магические действия, внушая страх моей любимой теще, живущей там. Ну и всяким супостатам пытающимся совершить противоправные действия. И тут полный облом. Оказывается, доблестный Beeline, в нашей зоне не раздает простым смертным белые IP адреса (даже динамические) и мы все находимся за серой стеной NATа. Поэтому про такой прекрасный сервис как DDNS надо забыть. Но мы не лыком шиты. Тут то на помощь и пришел Kenetic. На нем легко поднимается PPtP VPN сервер, а наш DIR-620 прекрасно к нему логинится. Ну что же, поехали: Используем: PPTP client Запускаем Putty? подключаемся и логинимся к роутеру. Вставляем следующий код: Код:
opkg update opkg install ppp-mod-pptp opkg install kmod-gre opkg install kmod-mppe opkg install kmod-pppoe opkg install kmod-pppox opkg install kmod-pptp opkg install luci-proto-ppp opkg install ppp opkg install ppp-mod-pppoe Не забываем в конце установки нажать один раз ENTER. Заходим через браузер на наш DIR-620, логинимся. Далее : Сеть/Интерфейсы Добавиь новый интерфейс. Обзовем например: VPN_HOME. Выбираем протокол: PPTP/ Сохраняем с применением. Заходим в настройки. Прописываем адрес PPTP сервера,логин и пароль пользователя заведенного на PPTP сервере. Заходим на закладку "Расширенные настройки". Ставим птичку:" Запустить при загрузке" и убираем птички : "Использовать шлюз по умолчанию" и "Использовать обьявляемые узлом DNS-серверы". Иначе наш DIR-620 будет ломиться в интернет через домашний роутер, а оно нам надо? Сохраняем с применением. Далее смотрим файл:/etc/ppp/options.pptp Спасибо Shai27 ! Без него долго не мог понять почему не получается. Код:
noipdefault noauth nobsdcomp nodeflate idle 0 maxfail 0 mppe required,no40,no56,stateless refuse-eap А это, что будет в конфиге: NETWORK Код:
config interface 'VPN_HOME' option proto 'pptp' option username 'Da4a' # Логин клиента option delegate '0' option defaultroute '0' option peerdns '0' option server '*******.ddns.net' #адрес (ip или URL) Вашего PPtP VPN сервера option buffering '1' option password 'password' # Пароль клиента У нас их три: 192.168.1.0/24 Это домашняя, за роутером Keenetic. 192.168.2.0/24 Дачная- за DIR-620. 172.168.1.0/24 Это наша сеть VPN. Если мы сейчас попытаемся пингануть с DIR-320 две другие сети , то в ответ получим полный отлуп. Проблема в маршрутах. Надо их прописать. Наш DIR-320 просто не знает где они находятся, он пытается их найти на маршруте по умолчанию, а у нас это Итернет. Нам надо ему явно указать, что сети 192.168.1.0/24 и 172.16.1.0/24 находятся за интерфейсом "VPN_HOME" и искать их надо там. Идем: Сеть/Статические маршруты. При добавлении маршрута рассуждаем так: "Чтобы попасть в сеть 172.16.1.0 с маской 255.255.255.0 надо отправиться через интерфейс VPN_HOME." Добавляем точно так же статический маршрут и для сети 192.168.1.0/24. Сохраняем, применяем. Конфиг NETWORK Код:
config route option interface 'VPN_HOME' option target '172.16.1.0' option netmask '255.255.255.0' config route option interface 'VPN_HOME' option netmask '255.255.255.0' option target '192.168.1.0' Как видим пингуются: VPN-шлюз, компьютер из сети шлюза и второй клиент подключенный по VPN каналу. Так же ping идет к самому DIR-620 от домашнего компа. (продолжение следует...) Последний раз редактировалось Parashutik; 24.05.2017 в 09:24. |
27.07.2015, 08:54 | #2 |
Member
|
Re: DIR-620 и OpenWRT,3G,VPN, WEB камера и т.д.
Устанавливаем FTP-сервер
Статьи: Умный дом Сообщество EasyElectronics Вообще-то у меня в домашней сети стоит NAS сервер на базе DNS-320 и данные буду скидывать туда, но и на DIR-620 тоже надо иметь возможность оперировать файлами. Создадим группу админов сервера: Код:
echo web:x:101: >> /etc/group Код:
echo ftpadmin:*:102:101:ftpadmin:/home/srv/ftp:/bin/ash >> /etc/passwd mkdir -p /home/srv/ftp chgrp -R web /home/srv chown ftpadmin /home/srv/ftp Код:
passwd ftpadmin Код:
opkg update opkg install pure-ftpd Настройки сервера находятся в файле /etc/config/pure-ftpd. выберем отдельный лог отредактировав следующие строки: Код:
option syslogfacility 'none' option altlog 'stats:/home/srv/log/ftp/pureftpd.log' option enabled '1' Запустим сервер: Код:
/etc/init.d/pure-ftpd start /etc/init.d/pure-ftpd enable Логинимся. Видим пустой каталог. Для более удобного использования настраиваем или Total Comander, или FileZilla Client. Последний раз редактировалось Parashutik; 27.07.2015 в 09:30. |
28.07.2015, 12:40 | #3 |
Member
|
Re: DIR-620 и OpenWRT,3G,VPN, WEB камера и т.д.
Подключаем WEB камеру.
Ну и вот и самое главное, собственно из-за чего все и затевалось. Камера Logitech C270. На счастье есть она. (Просто ее часто рекомендуют). Подключена вместе с модемом и Flash через USB hub, пока без внешнего питания. Подключаемся через PUTTY. Вводим : ls /dev/vid* Видим: /dev/video0 Значит камера подключена. Встал вопрос о программном обеспечении: mjpg-streamer или Motion mjpg-streamer уже ставил и она прекрасно справляется со своей работой. Motion привлекла огромным конфигом, а так же она способна контролировать сигнал, полученный с одной или нескольких видеокамер, и обнаруживать наличие изменений на картинке. На выходе получаем фотки в форматах jpeg, ppm или mpeg видеопоток, который может транслироваться в сеть или записываться в файл. Проект целиком и полностью свободный, сама программа существует только в виде демона что обеспечивает низкое ресурсо-потребление, имеет встроенный мини http-server (это позволяет смотреть видео в реальном времени в браузере на локальном компьютере или же другом компьютере в сети, интернете) и может работать с СУБД MsSQL, настраивается через конфиг-файлы. В свое время в журнале " ][akep" была статья в №111 , март, 2008 г. о настройках этой программы. К сожалению ссылка на статью не действует, но я нашел ее в кэше GOOGLE. Статья журнала Хакер: Настройки по журналу Хакер.zip Устанавливаем саму программу: Код:
opkg update opkg install motion opkg install ffmpeg Видим: Код:
root@CyberWrt:~# opkg install motion Installing motion (20110826-051001-2) to root... Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ramips/rt305x/packages/packages/motion_20110826-051001-2_ramips_24kec.ipk. Installing libjpeg (6b-1) to root... Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ramips/rt305x/packages/packages/libjpeg_6b-1_ramips_24kec.ipk. Configuring libjpeg. Configuring motion. opkg install ffmpeg Installing ffmpeg (0.11.5-5) to root... Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ramips/rt305x/packages/packages/ffmpeg_0.11.5-5_ramips_24kec.ipk. Installing libffmpeg-full (0.11.5-5) to root... Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ramips/rt305x/packages/packages/libffmpeg-full_0.11.5-5_ramips_24kec.ipk. Installing libbz2 (1.0.6-1) to root... Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ramips/rt305x/packages/packages/libbz2_1.0.6-1_ramips_24kec.ipk. Installing alsa-lib (1.0.27.2-1) to root... Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ramips/rt305x/packages/packages/alsa-lib_1.0.27.2-1_ramips_24kec.ipk. Installing kmod-sound-core (3.10.49-1) to root... Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ramips/rt305x/packages/base/kmod-sound-core_3.10.49-1_ramips_24kec.ipk. Configuring kmod-sound-core. kmod: failed to insert /lib/modules/3.10.49/snd-pcm.ko kmod: failed to insert /lib/modules/3.10.49/snd-pcm-oss.ko Configuring alsa-lib. Configuring libbz2. Configuring libffmpeg-full. Configuring ffmpeg. vi /etc/motion.conf Впечатляет! Сначало укажем куда сохранять файлы. Найдем строку: target_dir и пропишем путь к каталогу сохранения. Конечно предварительно создав эти каталоги. target_dir /home/srv/ftp/Da4a/Camera Далее создадим каталог: mkdir /home/srv/log/motion/ и в файле motion.conf раскоментируем строку ";logfile", т.е. уберем спереди ; и изменим на : logfile /home/srv/log/motion/motion.log Это, чтобы за "Daemon" следить, что он там творит и что ему не нравится.(потом возможно отключим или уровень лога снизим). Это, чтобы за "Daemon" следить, что он там творит и что ему не нравится.(потом возможно отключим или уровень лога снизим). Пока уровни лога оставим по умолчанию. (Правда растет как бешеный). Вот попытался перевести : motion_config.zip Запустим, вернее попытаемся запустить программу: motion на всякий случай остановим (картинки шлепает с бешенной скоростью): killall motion посмотрим запущенные процессы: ps Нет motion и ***** богу. Откроем: vi home/srv/log/motion.log Что-то написано. Ищем строки: [1] [NTC] [VID] v4l2_set_pix_format: (0) YUYV (YUV 4:2:2 (YUYV)) [1] [NTC] [VID] v4l2_set_pix_format: (1) MJPG (MJPEG) Т.е. программа сообщает, что наша камера поддерживает паллитры вывода: YUYV и MJPG. Также можно поставить утилиту: uvcdynctrl Код:
opkg update opkg install uvcdynctrl uvcdynctrl -d /dev/video0 --formats И она нам покажет все вкусности нашей камеры: Код:
Listing available frame formats for device /dev/video0: Pixel format: YUYV (YUV 4:2:2 (YUYV); MIME type: video/x-raw-yuv) Frame size: 640x480 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 160x120 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 176x144 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 320x176 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 320x240 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 352x288 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 432x240 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 544x288 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 640x360 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 752x416 Frame rates: 25, 20, 15, 10, 5 Frame size: 800x448 Frame rates: 25, 20, 15, 10, 5 Frame size: 800x600 Frame rates: 20, 15, 10, 5 Frame size: 864x480 Frame rates: 20, 15, 10, 5 Frame size: 960x544 Frame rates: 15, 10, 5 Frame size: 960x720 Frame rates: 10, 5 Frame size: 1024x576 Frame rates: 10, 5 Frame size: 1184x656 Frame rates: 10, 5 Frame size: 1280x720 Frame rates: 10, 5 Frame size: 1280x960 Frame intervals: 2/15, 1/5 Pixel format: MJPG (MJPEG; MIME type: image/jpeg) Frame size: 640x480 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 160x120 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 176x144 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 320x176 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 320x240 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 352x288 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 432x240 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 544x288 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 640x360 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 752x416 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 800x448 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 800x600 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 864x480 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 960x544 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 960x720 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 1024x576 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 1184x656 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 1280x720 Frame rates: 30, 25, 20, 15, 10, 5 Frame size: 1280x960 Frame rates: 30, 25, 20, 15, 10, 5 Код:
#mszerg #v4l2_palette 15 v4l2_palette 17 Далее ставим разрешение картинки: Код:
# Image width (pixels). Valid range: Camera dependent, default: 352 #mszerg #width 320 width 544 # Image height (pixels). Valid range: Camera dependent, default: 288 #mszerg #height 240 height 288 Код:
# Use ffmpeg to encode movies in realtime (default: off) #mszerg #ffmpeg_output_movies on ffmpeg_output_movies off Код:
# Restrict stream connections to localhost only (default: on) #mszerg #stream_localhost on stream_localhost off Код:
# Set the authentication method (default: 0) # 0 = disabled # 1 = Basic authentication # 2 = MD5 digest (the safer authentication) #mszerg #stream_auth_method 0 stream_auth_method 1 Код:
# Authentication for the stream. Syntax username:password # Default: not defined (Disabled) #mszerg ; stream_authentication username:password stream_authentication admin:admin Код:
# Restrict control connections to localhost only (default: on) #mszerg #webcontrol_localhost on webcontrol_localhost off # Authentication for the http based control. Syntax username:password # Default: not defined (Disabled) #mszerg ; webcontrol_authentication username:password webcontrol_authentication admin:admin motion Код:
root@CyberWrt:~# motion [0] [NTC] [ALL] conf_load: Processing thread 0 - config file /etc/motion.conf [0] [ALR] [ALL] conf_cmdparse: Unknown config option "ffmpeg_output_movies" [0] [ALR] [ALL] conf_cmdparse: Unknown config option "ffmpeg_output_debug_movies" [0] [ALR] [ALL] conf_cmdparse: Unknown config option "ffmpeg_timelapse" [0] [ALR] [ALL] conf_cmdparse: Unknown config option "ffmpeg_timelapse_mode" [0] [ALR] [ALL] conf_cmdparse: Unknown config option "ffmpeg_bps" [0] [ALR] [ALL] conf_cmdparse: Unknown config option "ffmpeg_variable_bitrate" [0] [ALR] [ALL] conf_cmdparse: Unknown config option "ffmpeg_video_codec" [0] [ALR] [ALL] conf_cmdparse: Unknown config option "ffmpeg_deinterlace" [0] [ALR] [ALL] conf_cmdparse: Unknown config option "sdl_threadnr" [0] [ALR] [ALL] conf_cmdparse: Unknown config option "movie_filename" [0] [ALR] [ALL] conf_cmdparse: Unknown config option "timelapse_filename" [0] [NTC] [ALL] motion_startup: Motion trunkREV528 Started [0] [NTC] [ALL] motion_startup: Logging to syslog [0] [NTC] [ALL] motion_startup: Using log type (ALL) log level (NTC) [0] [NTC] [ALL] become_daemon: Motion going to daemon mode Логинимся 172.16.1.11:8081 (не забываем, что работаем через VPN). И видим практически видео,смену картинок. Заходим по адресу: 172.16.1.11:8080 Логинимся и мы в настройках программы. Времени катастрофически не хватает! Вот рабочий на сейчас motion.config: motion.zip Не забудьте прописать свою директорию сохранения файлов и поменять логин и пароли на доступ к просмотру и настройкам. Что мы с ним имеем: Потоковое видео, жаль нельзя показать. Но есть одно но. Прекрасно работает через LAN и Wi-Fi, но не хочет через VPN. Скорее всего слишком медленный канал. Далее вот, что с процессором и памятью: И это наводит на грустные мысли. Это, что видно через FTP в папке сохранения файлов: Видно, что каждую минуту (я изменил параметр сохранения snapshot с 600 сек на 60 сек) сохраняется snapshot. Вопрос, что за файлы через кадые пять snapshot-ов сохраняются. Будем разбираться. И где все таки видео. Ну и лог: Код:
[0] [NTC] [ALL] [Jul 29 13:54:58] motion_startup: Using log type (ALL) log level (NTC) [0] [NTC] [ALL] [Jul 29 13:54:58] become_daemon: Motion going to daemon mode [0] [NTC] [ALL] [Jul 29 13:54:58] become_daemon: Created process id file /var/run/motion/motion.pid. Process ID is 3969 [0] [NTC] [ALL] [Jul 29 13:54:58] motion_startup: Motion running as daemon process [0] [NTC] [ALL] [Jul 29 13:54:58] main: Thread 1 is from /etc/motion.conf [0] [NTC] [ALL] [Jul 29 13:54:58] main: Thread 1 is device: /dev/video0 input -1 [0] [NTC] [ALL] [Jul 29 13:54:58] main: Stream port 8081 [0] [NTC] [ALL] [Jul 29 13:54:58] main: Waiting for threads to finish, pid: 3969 [0] [NTC] [STR] [Jul 29 13:54:58] httpd_run: motion-httpd testing : IPV4 addr: 0.0.0.0 port: 8080 [0] [NTC] [STR] [Jul 29 13:54:58] httpd_run: motion-httpd Bound : IPV4 addr: 0.0.0.0 port: 8080 [0] [NTC] [STR] [Jul 29 13:54:58] httpd_run: motion-httpd/trunkREV528 running, accepting connections [0] [NTC] [STR] [Jul 29 13:54:58] httpd_run: motion-httpd: waiting for data on 0.0.0.0 port TCP 8080 [1] [NTC] [ALL] [Jul 29 13:54:58] motion_init: Thread 1 started [1] [NTC] [VID] [Jul 29 13:54:58] vid_v4lx_start: Using videodevice /dev/video0 and input -1 [1] [NTC] [VID] [Jul 29 13:54:58] v4l2_get_capability: ------------------------ cap.driver: "uvcvideo" cap.card: "UVC Camera (046d:0825)" cap.bus_info: "usb-101c0000.ehci-2.4" cap.capabilities=0x84000001 ------------------------ [1] [NTC] [VID] [Jul 29 13:54:58] v4l2_get_capability: - VIDEO_CAPTURE [1] [NTC] [VID] [Jul 29 13:54:58] v4l2_get_capability: - STREAMING [1] [NTC] [VID] [Jul 29 13:54:58] v4l2_select_input: name = "Camera 1", type 0x00000002, status 00000000 [1] [NTC] [VID] [Jul 29 13:54:58] v4l2_select_input: - CAMERA [1] [WRN] [VID] [Jul 29 13:54:58] v4l2_select_input: Device doesn't support VIDIOC_G_STD [1] [NTC] [VID] [Jul 29 13:54:58] v4l2_do_set_pix_format: Testing palette YUYV (544x288) [1] [NTC] [VID] [Jul 29 13:54:58] v4l2_do_set_pix_format: Using palette YUYV (544x288) bytesperlines 1088 sizeimage 313344 colorspace 00000008 [1] [NTC] [VID] [Jul 29 13:54:58] v4l2_scan_controls: found control 0x00980900, "Brightness", range 0,255 [1] [NTC] [VID] [Jul 29 13:54:58] v4l2_scan_controls: "Brightness", default 128, current 128 [1] [NTC] [VID] [Jul 29 13:54:58] v4l2_scan_controls: found control 0x00980901, "Contrast", range 0,255 [1] [NTC] [VID] [Jul 29 13:54:58] v4l2_scan_controls: "Contrast", default 32, current 32 [1] [NTC] [VID] [Jul 29 13:54:58] v4l2_scan_controls: found control 0x00980902, "Saturation", range 0,255 [1] [NTC] [VID] [Jul 29 13:54:58] v4l2_scan_controls: "Saturation", default 32, current 32 [1] [NTC] [VID] [Jul 29 13:54:58] v4l2_scan_controls: found control 0x00980913, "Gain", range 0,255 [1] [NTC] [VID] [Jul 29 13:54:58] v4l2_scan_controls: "Gain", default 0, current 0 [1] [NTC] [VID] [Jul 29 13:54:58] vid_v4lx_start: Using V4L2 [1] [NTC] [ALL] [Jul 29 13:54:58] image_ring_resize: Resizing pre_capture buffer to 1 items [1] [NTC] [STR] [Jul 29 13:54:59] http_bindsock: motion-stream testing : IPV4 addr: 0.0.0.0 port: 8081 [1] [NTC] [STR] [Jul 29 13:54:59] http_bindsock: motion-stream Bound : IPV4 addr: 0.0.0.0 port: 8081 [1] [NTC] [ALL] [Jul 29 13:54:59] motion_init: Started motion-stream server in port 8081 [1] [NTC] [ALL] [Jul 29 13:54:59] image_ring_resize: Resizing pre_capture buffer to 6 items [1] [NTC] [EVT] [Jul 29 13:55:00] event_newfile: File of type 2 saved to: /home/srv/ftp/Da4a/Camera/01-20150729135500-snapshot.jpg [1] [NTC] [EVT] [Jul 29 13:55:03] event_new_video FPS 12 [1] [NTC] [ALL] [Jul 29 13:55:03] motion_detected: Motion detected - starting event 1 [1] [NTC] [EVT] [Jul 29 13:56:00] event_newfile: File of type 2 saved to: /home/srv/ftp/Da4a/Camera/01-20150729135600-snapshot.jpg [1] [NTC] [EVT] [Jul 29 13:57:00] event_newfile: File of type 2 saved to: /home/srv/ftp/Da4a/Camera/01-20150729135700-snapshot.jpg [1] [NTC] [EVT] [Jul 29 13:58:00] event_newfile: File of type 2 saved to: /home/srv/ftp/Da4a/Camera/01-20150729135800-snapshot.jpg [0] [NTC] [STR] [Jul 29 13:58:54] httpd_run: motion-httpd - Read from client [0] [NTC] [STR] [Jul 29 13:58:55] httpd_run: motion-httpd - Read from client [0] [NTC] [STR] [Jul 29 13:58:55] httpd_run: motion-httpd - Read from client [0] [NTC] [STR] [Jul 29 13:58:55] httpd_run: motion-httpd - Read from client [0] [NTC] [STR] [Jul 29 13:58:59] httpd_run: motion-httpd - Read from client [1] [NTC] [EVT] [Jul 29 13:59:00] event_newfile: File of type 2 saved to: /home/srv/ftp/Da4a/Camera/01-20150729135900-snapshot.jpg [1] [NTC] [EVT] [Jul 29 14:00:00] event_newfile: File of type 2 saved to: /home/srv/ftp/Da4a/Camera/01-20150729140000-snapshot.jpg [1] [NTC] [ALL] [Jul 29 14:00:03] preview_save: different filename or picture only! [1] [NTC] [EVT] [Jul 29 14:00:03] event_newfile: File of type 1 saved to: /home/srv/ftp/Da4a/Camera/01-20150729135835-05.jpg [1] [NTC] [EVT] [Jul 29 14:00:03] event_new_video FPS 9 [1] [NTC] [ALL] [Jul 29 14:00:03] motion_detected: Motion detected - starting event 2 [1] [NTC] [EVT] [Jul 29 14:01:00] event_newfile: File of type 2 saved to: /home/srv/ftp/Da4a/Camera/02-20150729140100-snapshot.jpg [1] [NTC] [EVT] [Jul 29 14:02:00] event_newfile: File of type 2 saved to: /home/srv/ftp/Da4a/Camera/02-20150729140200-snapshot.jpg [1] [NTC] [EVT] [Jul 29 14:03:00] event_newfile: File of type 2 saved to: /home/srv/ftp/Da4a/Camera/02-20150729140300-snapshot.jpg [1] [NTC] [EVT] [Jul 29 14:04:00] event_newfile: File of type 2 saved to: /home/srv/ftp/Da4a/Camera/02-20150729140400-snapshot.jpg [1] [NTC] [EVT] [Jul 29 14:05:00] event_newfile: File of type 2 saved to: /home/srv/ftp/Da4a/Camera/02-20150729140500-snapshot.jpg [1] [NTC] [ALL] [Jul 29 14:05:03] preview_save: different filename or picture only! [1] [NTC] [EVT] [Jul 29 14:05:03] event_newfile: File of type 1 saved to: /home/srv/ftp/Da4a/Camera/02-20150729140253-05.jpg [1] [NTC] [EVT] [Jul 29 14:05:03] event_new_video FPS 9 [1] [NTC] [ALL] [Jul 29 14:05:03] motion_detected: Motion detected - starting event 3 [1] [NTC] [EVT] [Jul 29 14:06:00] event_newfile: File of type 2 saved to: /home/srv/ftp/Da4a/Camera/03-20150729140600-snapshot.jpg [1] [NTC] [EVT] [Jul 29 14:07:00] event_newfile: File of type 2 saved to: /home/srv/ftp/Da4a/Camera/03-20150729140700-snapshot.jpg [1] [NTC] [EVT] [Jul 29 14:08:00] event_newfile: File of type 2 saved to: /home/srv/ftp/Da4a/Camera/03-20150729140800-snapshot.jpg [1] [NTC] [EVT] [Jul 29 14:09:00] event_newfile: File of type 2 saved to: /home/srv/ftp/Da4a/Camera/03-20150729140900-snapshot.jpg [1] [NTC] [EVT] [Jul 29 14:10:00] event_newfile: File of type 2 saved to: /home/srv/ftp/Da4a/Camera/03-20150729141000-snapshot.jpg [1] [NTC] [ALL] [Jul 29 14:10:03] preview_save: different filename or picture only! [1] [NTC] [EVT] [Jul 29 14:10:03] event_newfile: File of type 1 saved to: /home/srv/ftp/Da4a/Camera/03-20150729140508-08.jpg [1] [NTC] [EVT] [Jul 29 14:10:05] event_new_video FPS 10 [1] [NTC] [ALL] [Jul 29 14:10:05] motion_detected: Motion detected - starting event 4 [1] [NTC] [ALL] [Jul 29 14:10:20] preview_save: different filename or picture only! [1] [NTC] [EVT] [Jul 29 14:10:20] event_newfile: File of type 1 saved to: /home/srv/ftp/Da4a/Camera/04-20150729141013-01.jpg [1] [NTC] [ALL] [Jul 29 14:10:21] motion_loop: Thread exiting [1] [NTC] [STR] [Jul 29 14:10:21] stream_stop: Closing motion-stream listen socket & active motion-stream sockets [1] [NTC] [STR] [Jul 29 14:10:21] stream_stop: Closed motion-stream listen socket & active motion-stream sockets [1] [NTC] [VID] [Jul 29 14:10:21] vid_close: Closing video device /dev/video0 [0] [NTC] [ALL] [Jul 29 14:10:21] main: Threads finished [0] [NTC] [STR] [Jul 29 14:10:22] httpd_run: motion-httpd - Finishing [0] [NTC] [STR] [Jul 29 14:10:22] httpd_run: motion-httpd Closing [0] [NTC] [STR] [Jul 29 14:10:22] motion_web_control: motion-httpd thread exit [0] [NTC] [ALL] [Jul 29 14:10:22] main: Motion terminating [0] [NTC] [ALL] [Jul 29 14:10:22] motion_remove_pid: Removed process id file (pid file). [0] [NTC] [ALL] [Jul 29 14:10:22] motion_remove_pid: Closing logfile (/home/srv/log/motion/motion.log). Разобрался почему не хочет через VPN показывать, трафик кончился. :-) С левыми рисунками тоже, поставил параметр: output_pictures off И все стало в порядке. В папку стабильно каждую минуту ложатся snapshot-ы. Т.е. на данный момент вопрос для подключения к проекту Народный монитор уже решен, фото с камеры ,с интервалом 10 минут(если увеличить время сохранения snapshot до 600 секунд), мы уже получаем. А вот видео так и нет, хотя потоковое катит как по маслу. Есть подозрение , что проблема с программой ffmpeg, а точнее с кодеками. Сегодня решил проверить работает ли ffmpeg на DIR-620. Запустил: motion Запустил ffmpeg, в таком виде: Код:
ffmpeg -f mjpeg -i http://admin:admin@localhost:8081 /home/srv/ftp/Da4a/Camera/proba.avi Код:
root@CyberWrt:~# ffmpeg -f mjpeg -i http://admin:admin@localhost:8081 /home/srv/ ftp/Da4a/Camera/proba.avi ffmpeg version 0.11.5 Copyright (c) 2000-2014 the FFmpeg developers built on Sep 24 2014 11:46:15 with gcc 4.8.3 configuration: --enable-cross-compile --cross-prefix=mipsel-openwrt-linux-uclibc- --arch=mipsel --target-os=linux --prefix=/usr --enable-shared --enable-static --disable-debug --pkg-config=pkg-config --enable-gpl --enable-version3 --disable-altivec --disable-asm --disable-doc --disable-dxva2 --enable-pthreads --disable-optimizations --enable-small --disable-stripping --enable-zlib --disable-outdevs libavutil 51. 54.100 / 51. 54.100 libavcodec 54. 23.100 / 54. 23.100 libavformat 54. 6.100 / 54. 6.100 libavdevice 54. 0.100 / 54. 0.100 libavfilter 2. 77.100 / 2. 77.100 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 [mjpeg @ 0x727540] max_analyze_duration 5000000 reached at 5000000 [mjpeg @ 0x727540] Estimating duration from bitrate, this may be inaccurate Input #0, mjpeg, from 'http://admin:admin@localhost:8081': Duration: N/A, bitrate: N/A Stream #0:0: Video: mjpeg, yuvj420p, 544x288 [SAR 1:1 DAR 17:9], 25 fps, 25 tbr, 1200k tbn, 25 tbc [buffer @ 0x7379b0] w:544 h:288 pixfmt:yuvj420p tb:1/1200000 sar:1/1 sws_param:flags=2 [buffersink @ 0x859600] No opaque field provided [format @ 0x859bd0] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'format' [scale @ 0x8598e0] w:544 h:288 fmt:yuvj420p sar:1/1 -> w:544 h:288 fmt:yuv420p sar:1/1 flags:0x4 Output #0, avi, to '/home/srv/ftp/Da4a/Camera/proba.avi': Metadata: ISFT : Lavf54.6.100 Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 544x288 [SAR 1:1 DAR 17:9], q=2-31, 200 kb/s, 25 tbn, 25 tbc Stream mapping: Stream #0:0 -> #0:0 (mjpeg -> mpeg4) Press [q] to stop, [?] for help frame= 2 fps=0.2 q=2.0 size= 21kB time=00:00:00.08 bitrate=2112.8kbits/sframe= 3 fps=0.1 q=2.0 size= 25kB time=00:00:00.12 bitrate=1729.2kbits/sframe= 4 fps=0.2 q=2.0 size= 30kB time=00:00:00.16 bitrate=1532.7kbits/sframe= 5 fps=0.1 q=2.0 size= 34kB time=00:00:00.20 bitrate=1394.6kbits/sframe= 6 fps=0.1 q=2.5 size= 37kB time=00:00:00.24 bitrate=1256.2kbits/sframe= 7 fps=0.2 q=3.5 size= 40kB time=00:00:00.28 bitrate=1163.9kbits/sframe= 8 fps=0.2 q=4.8 size= 41kB time=00:00:00.32 bitrate=1061.2kbits/sframe= 9 fps=0.2 q=5.0 size= 43kB time=00:00:00.36 bitrate= 974.4kbits/sframe= 10 fps=0.2 q=5.3 size= 44kB time=00:00:00.40 bitrate= 907.6kbits/sframe= 11 fps=0.2 q=4.9 size= 46kB time=00:00:00.44 bitrate= 849.1kbits/sframe= 12 fps=0.2 q=5.5 size= 47kB time=00:00:00.48 bitrate= 802.9kbits/sframe= 13 fps=0.2 q=4.8 size= 56kB time=00:00:00.52 bitrate= 878.9kbits/sframe= 14 fps=0.2 q=5.3 size= 58kB time=00:00:00.56 bitrate= 843.6kbits/sframe= 15 fps=0.2 q=5.8 size= 59kB time=00:00:00.60 bitrate= 805.4kbits/sframe= 16 fps=0.3 q=6.3 size= 60kB time=00:00:00.64 bitrate= 770.8kbits/sframe= 17 fps=0.3 q=6.3 size= 61kB time=00:00:00.68 bitrate= 740.1kbits/s video:279kB audio:0kB global headers:0kB muxing overhead 3.488967% И видим , что в папке кроме снапшотов появился файл proba.avi. Запускаем и вполне приличное видео получилось: proba.zip Правда пока вид в кабинете. :-) Да и кадры выхвачены, секунды как бешеные. В общем поиски по инету привели только к одному, что motion под OpenWRT собрана без поддержки ffmpeg! Т.е. потоковое видео работает, сбор снимков работает, а непосредсвенное создание видеороликов не работает Я конечно не программист и тем более не Линуксоид (ZX-Spectrumисты мы, кто знает тот поймет, ну и Windowsятники немного), а тем более с моим знанием английского языка, но есть подозрения, что motion не имеет связки с библиотеками ffmpeg . Есть две статьи: Эта и эта В них , как я понял , вроде надо все это счастье пересобрать. Но для меня make файлы это темный лес. Если кто поможет, все скажут спасибо. Ну а нет , тогда будем думать дальше. И как поется в песне: "Нормальные герои всегда идут в обход!" Сама motion нам и поможет обойти эту беду. Есть в ней несколько директив обеспечивающих запуск каких либо действий при обнаружении движения. Создадим директорию: mkdir /home/scripts В ней создадим два скрипта: vi /home/scripts/recordstart.sh В него вложим следующее: Код:
dt=`date +%Y%m%d%H%M%S` FILENAME="${dt}.avi" echo $FILENAME ffmpeg -f mjpeg -i http://admin:admin@localhost:8081 /home/srv/ftp/Da4a/Camera/$FILENAME И второй скрипт: vi /home/scripts/recordstop.sh В нем напишем: Код:
MPID=`pidof ffmpeg` `kill -15 $MPID` vi /etc/motion.conf Найдем и изменим параметры на: Код:
on_event_start "sh /home/scripts/recordstart.sh" on_event_end "sh /home/scripts/recordstop.sh" Вводим : PS и видим, что у нас работает motion и запустился от движения ffmpeg Код:
1655 root 1700 S /usr/sbin/pppd nodetach ipparam VPN_HOME ifname pptp 1657 root 13628 S motion 1660 root 0 SW [kworker/0:1] 1662 root 1480 S sh -c sh /home/scripts/recordstart.sh & 1663 root 1480 S sh /home/scripts/recordstart.sh 1665 root 15864 S ffmpeg -f mjpeg -i http://admin:admin@localhost:8081 1668 root 1480 R ps Что же, основную задачу выполнил. Правда не совсем корректно, но работает. В этой ситуации не учитываются параметры, которые мы задали для видео в motion.config. Проблему я описал чуть выше. Господа умельцы Линуксоиды, попробуйте пересобрать программу. Чтобы она запускала ffmpeg правильно. Тут я не помошник. Что дальше? А дальше надо удалять старые файлы(дней так за тридцать) и самой главное сохранять их не на flash, которая хоть и 16Гб , но не безразмерная, а через VPN канал (благо мы его настроили и он пингуется) на NAS сервер на базе DNS-320, который стоит дома. Это чтобы злодеи, если flash и уведут, все равно от видеофакта не отвертелись. Создадим скрипт: vi /home/scripts/recordclear.sh Внесем в него следующий текст (цифра кол-во дней): Код:
/home/srv/ftp/Da4a/Camera -name "*.*" -mtime +30 -delete crontab -e В редакторе vi откроется план заданий запишем задание, одна строка-одно задание: Код:
1*0* * *1-7 /home/scripts/recordclear.sh Тоже самое можно сделать и в Luci : Система/Запланированные задания. При записи мешают деревья, программа на них реагирует и начинает писать и не отключает ffmpeg, т.к. считает, что есть движение. Возьмем один из снапшотов и отредактируем его в Photoshope. Ненужное полностью закрасим черным, а зону за которой надо следить закрасим белым. Было так: Стало так: Зайдем на сайт On-Line конвертер рисунков Укажем путь к нашему рисунку: maska.jpg Внизу выберем формат: PGM, нажмем CONVERT дождемся появления ссылки для скачивания. Сохраним рисунок на компе, переименуем его в maska.pgm. Скопируем на роутер в папку /home/scripts/ Откроем : vi /etc/motion.conf И исправим параметр: Код:
mask_file "/home/scripts/maska.pgm" Ну и два видео: Без маски, видно как программа реагирует на машущие ветки: Без маски.zip И с маской. Видно, что motion реагирует только на людей в зоне выделенной маской: C маской.zip Красный прямоугольник можно потом отключить, но он очень помогает при настройке motion. Подключим сетевой диск Есть NAS сервер на базе DNS-320. По VPN он пингуется как 192.168.1.10 и на самом деле он стоит дома мирно на полке и тихо шуршит своим вентилятором. На нем много чего крутится: торент клиент, ftp, lighttpd вместо WEB сервера. Так же он выполняет свою функцию как MediaCenter и всё Smart оборудование на нем висит. Но это отдельный разговор. 3Tб места , даже учитывая весь контент , который на нем находится, более чем достаточно. Вот сюда мы наше видео и будем сохранять. Побережем место на flash. И не люблю когда мое лежит у кого то в шкафу, поэтому Yandex диск не будем использовать. Папки уже расшарены, по сети прекрасно видны. Вход только по авторизации, лучше перебдеть, чем недобдеть. Никаких анонимов. Спасибо Admin-у за сообщение(не пришлось искать): CIFS - Общая файловая система для Интернет, позволяет подключать сетевые диски. Вам потребуется подключение к интернету для загрузки пакетов и компьютер являющийся CIFS/SAMBA сервером с расшареными папками (в качестве компьютера-сервера может выступать обычный компьютер с ОС Windows). Установим: Код:
opkg update opkg install kmod-fs-cifs kmod-crypto-hmac kmod-crypto-md5 kmod-crypto-misc opkg install kmod-nls-utf8 kmod-nls-base cifsmount mkdir /home/Xaza И подключимся: Код:
mount -t cifs //192.168.1.10/Da4a /home/Xaza -o user=username,password=password Файл видно и можно его редактировать. Не забыть в motion.conf прописать новый путь сохранения файлов: target_dir /home/Xaza Итог: Запись ведется при обнаружении движения. Видео и снапшоты сохраняются с завидной регулярностью, устаревшие файлы удаляются(поставил в скрипте 1 день). Параметры ffmpeg надо вставлять в строку в скрипте recordstart.sh. Так же если поменяли в motion.conf порт вывода видеопотока с 8081 на свой обязательно поменяйте его и в скрипте запуска ffmpeg (Это для парашютистов, после неудачного приземления. ). Не забудьте поменять пароль для доступа к видео и настройкам motion и впишите свой путь сохранения файлов. Из минусов если выбрать палитру YUYV ,то запускается с максимальным разрешением 544х288, а если выбрать палитру MJPEG то максимальное разрешение 320х176. С большими разрешениями просто не хочет запускаться. Пишет на экране: "error capturing first image". Важно! В motion.conf тщательно подбирать параметры определяющие наличие движения и его отсутствия. Иначе ffmpeg будет запускаться несколькими процессами! И, небольшая идея. Не запускать создание видео, а сохранять во время движения картинки(за весь день). Потом ночью запускать, через скрипт и cron, ffmpeg и из этих картинок создавать один видеоролик за весь день, а картинки так же удалять. Что это дает: Во первых, освобождает процессорное время.(ffmpeg +motion- это хлопотно) Делать это скорее всего будем ночью, когда мало кто кинется смотреть,что у нас там делается. Во вторых, сразу получим склееный видеоролик за весь день. И не надо потом несколько видео клеить в одно. И скорее всего ffmpeg буду запускать на DNS-320L, а то бедный роутер и так напрягается от motion. Как то так. Продолжение следует!.... Последний раз редактировалось Parashutik; 22.03.2016 в 14:29. Причина: Продолжение |
28.07.2015, 13:50 | #4 | |
Senior Member
Регистрация: 15.07.2014
Сообщений: 939
Вес репутации: 989 |
Re: DIR-620 и OpenWRT,3G,VPN, WEB камера и т.д.
Цитата:
Последний раз редактировалось sakatgg; 28.07.2015 в 13:55. |
|
28.07.2015, 14:08 | #5 |
Member
|
Re: DIR-620 и OpenWRT,3G,VPN, WEB камера и т.д.
А я попробую, все таки. Для начала переведу конфиг на русский, а там видно будет.
Последний раз редактировалось Parashutik; 28.07.2015 в 20:06. |
28.07.2015, 21:53 | #6 |
Member
|
Re: DIR-620 и OpenWRT,3G,VPN, WEB камера и т.д.
А как вставить здесь спойлер.
|
28.07.2015, 22:15 | #7 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
Re: DIR-620 и OpenWRT,3G,VPN, WEB камера и т.д.
Спойлера в этом движке форума нету
|
02.08.2015, 21:19 | #8 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1604 |
Re: DIR-620 и OpenWRT,3G,VPN, WEB камера и т.д.
Круто! Просто супер
|
24.09.2015, 19:46 | #9 |
Junior Member
Регистрация: 18.11.2014
Адрес: Минеральные Воды
Сообщений: 10
Вес репутации: 0 |
Re: DIR-620 и OpenWRT,3G,VPN, WEB камера и т.д.
что то видео ну никак не хочет запускаться
|
26.10.2015, 18:02 | #10 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600 |
Re: DIR-620 и OpenWRT,3G,VPN, WEB камера и т.д.
Parashutik
Коллега, Вы здесь еще появляетесь. Предлагаю Вам совместно "допилить" ffmpeg для motion. Подробности здесь: http://cyber-place.ru/showpost.php?p=28370&postcount=3 Насколько я помню году в 10-м был "костыль". Собирался старый ffmpeg Код:
cd /usr/local/ffmpeg ./configure --enable-shared make make install cd /usr/lib && ls У меня свежий ffmpeg 2.6.2. и там сейчас современные : libavcodec.so.56 libavcodec.so.56.26.100 libavformat.so.56 libavformat.so.56.25.101 |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|