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] ```~~~~
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden