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] ```~~~~
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login