Страница 3 из 4

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

Добавлено: Пн сен 18, 2017 5:32 pm
Aven
Ну решение на виндовс со сторонним ПО, извините....
Я сделал так:

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

# 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 

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

Добавлено: Пн сен 18, 2017 10:06 pm
TheForum
Да если просто картинку получить - так с 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ажорику?

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

Добавлено: Пн сен 18, 2017 10:20 pm
Aven
TheForum класс! работает побыстрее ffmpeg! Выложите куда-нибудь документацию на API пожалуйста.
Насчет текста, можно его выводить на HTML5 Canvas, будет работать кросплатформенно.

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

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

API и все что есть по HIKvision интересного попозже куда нить в DROPBOX выложу и оставлю тут линк

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

Добавлено: Вт сен 19, 2017 8:49 am
Aven
Про аудиопоток речи не было, я думал вы картинку на веб-страничке рефрешите :)))

Тогда наверно WebRTC, но что бы наложить туда OSD возможно понадобится сначала декодировать поток, а после наложения закодировать обратно.
Хотя возможно прокатит отрисовать поверх видео WebRTC.

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

Добавлено: Вт сен 19, 2017 10:42 am
TheForum
Извиняюсь если немного спутал - про аудиопоток - немного другая опера :) Просто HTML5 вроде бы как имеет поддержку аудио, только вот ее реализация в разных броузерах разная...

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

Добавлено: Чт сен 21, 2017 9:34 pm
TheForum
Получилось вывести данные на видеопоток камеры!!! Т.е. при просмотре удаленно вы увидите вместе с видео и ваши данные, скажем температуру котла итд... В записи (ну если конечно она есть :)) вы сможете посмотреть во сколько произошло то или инное событие.. Моя камера - 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 фаил - пришлось указать путь к файлу - надо немного попилить :)

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

Добавлено: Чт сен 21, 2017 9:43 pm
nick7zmail
Да, сори...забыл отписаться)) Хотел сразу предложить, чтобы пути использовал полные....
А кстати без промежуточного 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');

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

Добавлено: Чт сен 21, 2017 9:51 pm
TheForum
Спасибо, завтра потестю :) Закинул новую тему в Сценарии и алгоритмы.

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

Добавлено: Чт сен 21, 2017 10:01 pm
TheForum
уже потестил :) Без промежуточного файла НЕ работает чего то не хватает. Ответа не вижу.

exec('C:\_majordomo\apps\curl.exe -T $xml '.$CONNSTRING.'1');
$answer=exec('C:\_majordomo\apps\curl.exe -T $xml '.$CONNSTRING.'1');
echo $answer;