NEWS
Скрипт посылает видео mp4 с ip камер в Telegram
-
Особенности:
Камера(-ы) подключены к Synology, соответственно путь к файлам на диске динамический. Название папок и самих файлов привязано к дате создания этого видеофайла.
Я одну из камер назвал door_rtsp. (поток rtsp от домофонной камеры двери)
http://fastpic.ru/view/89/2017/0301/aa73d6599a313d565fdd19e9eed0d13b.png.html ~~Так как у меня сервер на Linux, то нужно командой:
sudo mount -t cifs //192.168.1.110/surveillance/door_rtsp /mnt/ -o username=admin,password=pass,iocharset=utf8,file_mode=0777,dir_mode=0777
смонтировать внешнюю сетевую папку где хранятся видеоизображения.
В результате получим на сервере iobroker каталог равный каталогу на Synology:
http://fastpic.ru/view/89/2017/0301/3b8c1f8c4de13d70e4f5f6c7d237338e.png.html ~~Применение:
Нижеуказанный код у меня используется внутри другого скрипта (кода). Скрипт отслеживает нажатие кнопки вызова видеодомофона и отправляет изображение с камеры видеодомофона, верхней камеры (показывает общую обстановку) и через определенно время видео.
Собственно сам код:
`var folder; var filepath; var last; // номер последний файл в директории setTimeout(getdate, 100); setTimeout(file, 200); setTimeout(sendMP4, 300); function getdate() { var date = new Date(); var time = date.getTime(); // Дата вида миллисекунд от 1970 года var year = date.getFullYear(); // Год var month = date.getMonth()+1; // Месяц var dd = date.getDate(); // Дата-число var hh = date.getHours(); // Часы var AMPM = 'PM'; if (hh < 12) AMPM = 'AM'; if (month < 10) month = '0'+(date.getMonth()+1); //Месяц добавляем 0 перед цифрой if (dd < 10) dd = '0'+date.getDate(); if (hh < 10) hh = '0'+date.getHours(); //Часы добавляем 0 перед цифрой folder = year+month+dd+AMPM log('folder = '+folder ); } //end getdate function file() { var fs = require('fs'); var path = '/mnt/door_rtsp/'+folder; //начальный путь, менять для другой камеры. if (path.length <= 2) { log("Usage: " + __filename + " path/to"); process.exit(-1); } /*Здесь мы используем метод readdir класса fs, который получает путь и функцию-коллбек в качестве параметров. Метод читает содержимое директории в память, а когда чтение завершено, то вызывает коллбек с двумя параметрами. */ fs.readdir(path, function(err, items) { log(items); last = items.length; // номер последнего файла директории log(last); for (var i=0; i<items.length; i++)/{/log(items[i]);/}/filepath="items[last-1];" log('filepath="+filepath); }); } //end file function sendMP4() { mp4 = " mnt/door_rtsp/'+folder+'/'+filepath;/log(mp4);/sendto('telegram.0',/{text:/mp4,/user:/'artem',/disable_notification:/true});/end/sendmp4/<e=""></items.length;>`[/i] ```~~~~