прошу совета по IP камере

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Aven
Сообщения: 529
Зарегистрирован: Сб мар 12, 2016 6:33 pm
Откуда: Ухта, Россия
Благодарил (а): 3 раза
Поблагодарили: 154 раза

Re: прошу совета по IP камере

Сообщение Aven » Пн сен 18, 2017 5:32 pm

Ну решение на виндовс со сторонним ПО, извините....
Я сделал так:

Код: Выделить всё

# cat rtsp2jpeg.sh
ffmpeg -ss 2 -i rtsp://admin:password@172.16.3.46/stream_url -f image2 -y -qscale 0 -frames 1 /tmp/1.jpeg 
TheForum
Сообщения: 146
Зарегистрирован: Сб авг 06, 2016 2:11 am
Откуда: Рига
Благодарил (а): 13 раз
Поблагодарили: 18 раз

Re: прошу совета по IP камере

Сообщение TheForum » Пн сен 18, 2017 10:06 pm

Да если просто картинку получить - так с Hikом вобще все на раз-два:

http://login:pass@Cam_IP/Streaming/channels/1/picture - и вот вам текущий скриншот....

SDK тут:

http://overseas.hikvision.com/en/download_83.html

На их портале ( http://www.hikvisioneurope.com/portal/) почему то закрыли доступ к API и документации - но у меня есть если что :)

nick7zmail, вопрос на верное больше к тебе -на хик можно накладывать инфу на стрим камеры - т.е. скажем смотрите удаленно видео и видите заодно температуру котла, в помещении итд.. Спрашивал как то у Сергея - он сказал можно сделать только на Линуксе - ну и я как то забросил эту идею..Хотя видел как работает в живую..

Пример вывода нескольких данных на видеопоток:

1.xml - пример XML, который генерируется автоматически при запросе к post.php

php file:

<?php

$CONNSTRING = "http://api:api@192.168.68.31/Video/inpu ... lays/text/";
$CONNSTRING2 = "http://api:api@192.168.68.32/Video/inpu ... lays/text/";

if ($_GET['position'] == '1')
{
$xml='
<?xml version="1.0" encoding="UTF-8" ?>
<TextOverlay xmlns="http://www.hikvision.com/ver10/XMLSchema" version="1.0">
<id>1</id>
<enabled>true</enabled>
<posX>16</posX>
<posY>460</posY>
<message>'.$_POST["sensor"].': '.round($_POST["value"],2).'°</message>
</TextOverlay>
';

file_put_contents('1.xml', $xml);
exec('curl -T 1.xml '.$CONNSTRING.'1');
}

if ($_GET['position'] == '2')
{
$xml='
<?xml version="1.0" encoding="UTF-8" ?>
<TextOverlay xmlns="http://www.hikvision.com/ver10/XMLSchema" version="1.0">
<id>2</id>
<enabled>true</enabled>
<posX>16</posX>
<posY>490</posY>
<message>'.$_POST["sensor"].': '.round($_POST["value"],2).'°</message>
</TextOverlay>
';

file_put_contents('2.xml', $xml);
exec('curl -T 2.xml '.$CONNSTRING.'2');
exec('curl -T 2.xml '.$CONNSTRING2.'2');
}

if ($_GET['position'] == '3')
{
$xml='
<?xml version="1.0" encoding="UTF-8" ?>
<TextOverlay xmlns="http://www.hikvision.com/ver10/XMLSchema" version="1.0">
<id>3</id>
<enabled>true</enabled>
<posX>16</posX>
<posY>520</posY>
<message>'.$_POST["sensor"].' - '.round($_POST["value"],2).'°</message>
</TextOverlay>
';

file_put_contents('3.xml', $xml);
exec('curl -T 3.xml '.$CONNSTRING.'3');
}

if ($_GET['position'] == '4')
{
$xml='
<?xml version="1.0" encoding="UTF-8" ?>
<TextOverlay xmlns="http://www.hikvision.com/ver10/XMLSchema" version="1.0">
<id>4</id>
<enabled>true</enabled>
<posX>16</posX>
<posY>550</posY>
<message>'.$_POST["sensor"].': '.round($_POST["value"],2).'W</message>
</TextOverlay>
';

file_put_contents('4.xml', $xml);
exec('curl -T 4.xml '.$CONNSTRING.'4');
}
if ($_GET['reset'] == 'yes')
{
$xml='
<?xml version="1.0" encoding="UTF-8" ?>
<TextOverlay xmlns="http://www.hikvision.com/ver10/XMLSchema" version="1.0">
<id>1</id>
<enabled>false</enabled>
</TextOverlay>
';
file_put_contents('reset.xml', $xml);
exec('curl -T reset.xml '.$CONNSTRING.'1');

$xml='
<?xml version="1.0" encoding="UTF-8" ?>
<TextOverlay xmlns="http://www.hikvision.com/ver10/XMLSchema" version="1.0">
<id>2</id>
<enabled>false</enabled>
</TextOverlay>
';
file_put_contents('reset.xml', $xml);
exec('curl -T reset.xml '.$CONNSTRING.'2');

$xml='
<?xml version="1.0" encoding="UTF-8" ?>
<TextOverlay xmlns="http://www.hikvision.com/ver10/XMLSchema" version="1.0">
<id>3</id>
<enabled>false</enabled>
</TextOverlay>
';
file_put_contents('reset.xml', $xml);
exec('curl -T reset.xml '.$CONNSTRING.'3');

$xml='
<?xml version="1.0" encoding="UTF-8" ?>
<TextOverlay xmlns="http://www.hikvision.com/ver10/XMLSchema" version="1.0">
<id>4</id>
<enabled>false</enabled>
</TextOverlay>
';
file_put_contents('reset.xml', $xml);
exec('curl -T reset.xml '.$CONNSTRING.'4');
}

//exec('curl -T test.xml http://api:api@192.168.88.252/Video/inp ... meOverlay');

?>

xml fail:


<?xml version="1.0" encoding="UTF-8" ?>
<TextOverlay xmlns="http://www.hikvision.com/ver10/XMLSchema" version="1.0">
<id>1</id>
<enabled>true</enabled>
<posX>16</posX>
<posY>460</posY>
<message>: 0°</message>
</TextOverlay>

Примерный вариант Сергея - не проверенный:

$CONNSTRING = "http://api:api@192.168.68.31/Video/inpu ... lays/text/";

$value=getGlobal('Object.Property');

$xml='
<?xml version="1.0" encoding="UTF-8" ?>
<TextOverlay xmlns="http://www.hikvision.com/ver10/XMLSchema" version="1.0">
<id>1</id>
<enabled>true</enabled>
<posX>16</posX>
<posY>460</posY>
<message>Data: '.$value.'°</message>
</TextOverlay>
';

file_put_contents('1.xml', $xml);
exec('curl -T 1.xml '.$CONNSTRING.'1');

Может как то прикрутим к Mажорику?
За это сообщение автора TheForum поблагодарил:
nik1948 (Пн сен 25, 2017 12:26 pm)
Рейтинг: 1.16%
Немного желания, терпения и времени - и все получится :)
Aven
Сообщения: 529
Зарегистрирован: Сб мар 12, 2016 6:33 pm
Откуда: Ухта, Россия
Благодарил (а): 3 раза
Поблагодарили: 154 раза

Re: прошу совета по IP камере

Сообщение Aven » Пн сен 18, 2017 10:20 pm

TheForum класс! работает побыстрее ffmpeg! Выложите куда-нибудь документацию на API пожалуйста.
Насчет текста, можно его выводить на HTML5 Canvas, будет работать кросплатформенно.
TheForum
Сообщения: 146
Зарегистрирован: Сб авг 06, 2016 2:11 am
Откуда: Рига
Благодарил (а): 13 раз
Поблагодарили: 18 раз

Re: прошу совета по IP камере

Сообщение TheForum » Пн сен 18, 2017 10:27 pm

КАК??? Попробуйте потестить!! Да, если знаете HTML5 - может поиграете с выводом аудиопотока (наверное лучше пилить под хром - так как используют плагин с голосовыми командами) ?? У меня броузер телека поддерживает HTML5 открываю страницу мажорика - все ОК но звука нет :(

API и все что есть по HIKvision интересного попозже куда нить в DROPBOX выложу и оставлю тут линк
За это сообщение автора TheForum поблагодарил:
nik1948 (Пн сен 25, 2017 12:24 pm)
Рейтинг: 1.16%
Немного желания, терпения и времени - и все получится :)
Aven
Сообщения: 529
Зарегистрирован: Сб мар 12, 2016 6:33 pm
Откуда: Ухта, Россия
Благодарил (а): 3 раза
Поблагодарили: 154 раза

Re: прошу совета по IP камере

Сообщение Aven » Вт сен 19, 2017 8:49 am

Про аудиопоток речи не было, я думал вы картинку на веб-страничке рефрешите :)))

Тогда наверно WebRTC, но что бы наложить туда OSD возможно понадобится сначала декодировать поток, а после наложения закодировать обратно.
Хотя возможно прокатит отрисовать поверх видео WebRTC.
За это сообщение автора Aven поблагодарил:
nik1948 (Пн сен 25, 2017 12:24 pm)
Рейтинг: 1.16%
TheForum
Сообщения: 146
Зарегистрирован: Сб авг 06, 2016 2:11 am
Откуда: Рига
Благодарил (а): 13 раз
Поблагодарили: 18 раз

Re: прошу совета по IP камере

Сообщение TheForum » Вт сен 19, 2017 10:42 am

Извиняюсь если немного спутал - про аудиопоток - немного другая опера :) Просто HTML5 вроде бы как имеет поддержку аудио, только вот ее реализация в разных броузерах разная...
За это сообщение автора TheForum поблагодарил:
nik1948 (Пн сен 25, 2017 12:23 pm)
Рейтинг: 1.16%
Немного желания, терпения и времени - и все получится :)
TheForum
Сообщения: 146
Зарегистрирован: Сб авг 06, 2016 2:11 am
Откуда: Рига
Благодарил (а): 13 раз
Поблагодарили: 18 раз

Re: прошу совета по IP камере

Сообщение TheForum » Чт сен 21, 2017 9:34 pm

Получилось вывести данные на видеопоток камеры!!! Т.е. при просмотре удаленно вы увидите вместе с видео и ваши данные, скажем температуру котла итд... В записи (ну если конечно она есть :)) вы сможете посмотреть во сколько произошло то или инное событие.. Моя камера - Hikvision DS-2CD2032..

$CONNSTRING = "http://login:pass@camera_IP/Video/inputs/channels/1/overlays/text/";

//$value=getGlobal('Object.Property'); образец. ниже вывод температуры
$value=getGlobal('Mainsity.Today_temp ');
//echo $value;
$xml='
<?xml version="1.0" encoding="UTF-8" ?>
<TextOverlay xmlns="http://www.hikvision.com/ver10/XMLSchema" version="1.0">
<id>1</id>
<enabled>true</enabled>
<posX>16</posX>
<posY>16</posY>
<message>Temp: '.$value.'°</message>
</TextOverlay>
';

file_put_contents('C:\_majordomo\apps\1.xml', $xml);
//exec('curl -T 1.xml '.$CONNSTRING.'1');
exec('C:\_majordomo\apps\curl.exe -T C:\_majordomo\apps\1.xml '.$CONNSTRING.'1');


Из минусов - русский текст почему то отображается с пробелами после каждой буквы;
$value в xml файле не должно содержать каких то лишних сиволов или данных, иначе не выводится на видеопоток камеры;
В коммандной строке винды получаю обратно статус и код состояния, как его получить в Мажорике не знаю :(
Позже выложу API вроде можно менять размер и цвет выводимого на камеру текста...
Не получилось сразу писать данные в xml фаил - пришлось указать путь к файлу - надо немного попилить :)
За это сообщение автора TheForum поблагодарил:
nik1948 (Пн сен 25, 2017 12:23 pm)
Рейтинг: 1.16%
Немного желания, терпения и времени - и все получится :)
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: прошу совета по IP камере

Сообщение nick7zmail » Чт сен 21, 2017 9:43 pm

Да, сори...забыл отписаться)) Хотел сразу предложить, чтобы пути использовал полные....
А кстати без промежуточного xml-файла не работает?
exec('C:\_majordomo\apps\curl.exe -T $xml '.$CONNSTRING.'1');
А в МД обратно данные получить как то так...
$answer=exec('C:\_majordomo\apps\curl.exe -T C:\_majordomo\apps\1.xml '.$CONNSTRING.'1');
За это сообщение автора nick7zmail поблагодарил:
nik1948 (Пн сен 25, 2017 12:24 pm)
Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
TheForum
Сообщения: 146
Зарегистрирован: Сб авг 06, 2016 2:11 am
Откуда: Рига
Благодарил (а): 13 раз
Поблагодарили: 18 раз

Re: прошу совета по IP камере

Сообщение TheForum » Чт сен 21, 2017 9:51 pm

Спасибо, завтра потестю :) Закинул новую тему в Сценарии и алгоритмы.
За это сообщение автора TheForum поблагодарил:
nik1948 (Пн сен 25, 2017 12:25 pm)
Рейтинг: 1.16%
Немного желания, терпения и времени - и все получится :)
TheForum
Сообщения: 146
Зарегистрирован: Сб авг 06, 2016 2:11 am
Откуда: Рига
Благодарил (а): 13 раз
Поблагодарили: 18 раз

Re: прошу совета по IP камере

Сообщение TheForum » Чт сен 21, 2017 10:01 pm

уже потестил :) Без промежуточного файла НЕ работает чего то не хватает. Ответа не вижу.

exec('C:\_majordomo\apps\curl.exe -T $xml '.$CONNSTRING.'1');
$answer=exec('C:\_majordomo\apps\curl.exe -T $xml '.$CONNSTRING.'1');
echo $answer;
За это сообщение автора TheForum поблагодарил:
nik1948 (Пн сен 25, 2017 12:25 pm)
Рейтинг: 1.16%
Немного желания, терпения и времени - и все получится :)
Ответить