Наложение информации на поток IP- камеры c ардуино
- Войдите на сайт для отправки комментариев
Чт, 29/08/2019 - 02:13
В камерах HIKVISION можно выводить текстовую информацию на видеопотом, например, информацию с датчиков.
С компьютера делается это следующим образом:
1.формируем XML файл со следующим содержимым
<?xml version="1.0" encoding="UTF-8"?> <TextOverlay version="1.0" xmlns="http://www.hikvision.com/ver10/XMLSchema"> <id>1</id> <enabled>true</enabled> <posX>20</posX> <posY>20</posY> <message>text_for_test</message> </TextOverlay>
2.при помощи утилиты CURL, из командной строки windows(в десятке эта утилита уже встроена) отправляем содержимое файла на камеру
curl -T c:\_\1.xml http://admin:admin@192.168.1.245/Video/inputs/channels/1/overlays/text
Получаем ответ, что все хорошо, и на видео потоке накладывается нужный текст
<?xml version="1.0" encoding="UTF-8"?> <ResponseStatus version="1.0" xmlns="http://www.hikvision.com/ver10/XMLSchema"> <requestURL>/Video/inputs/channels/1/overlays/text</requestURL> <statusCode>1</statusCode> <statusString>OK</statusString> </ResponseStatus>
Все работает земечательно. Как то же самое реализовать с помощью ардуино и Ethernet shield?
пробовал что-то типа такого, но ничего не вышло
client.connect("admin:admin@192.168.1.245/Video/inputs/channels/1/overlays/text", 80)) client.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); client.println("<TextOverlay version=\"1.0\" xmlns=\"http://www.hikvision.com/ver10/XMLSchema\">"); client.println("<id>1</id>"); client.println("<enabled>true</enabled>"); client.println("<posX>200</posX>"); client.println("<posY>200</posY>"); client.println("<message>2222</message>"); client.println("</TextOverlay>");
так как же это все-таки сделать правильно?
посниффить обмен между устройствами, а то гадание какое то получится.
запрос, если с компа отправляешь, выглядит так
Ответ выглядит так:
Подозреваю, что это очень просто, но пока не допер, как :(
В особенности- кусок, где авторизация... как его заслать?
Ключ - это обычный base64( "user:password" );
не, нифига не выходит.
Есть кто-нибудь, кто
за вознаграждение
может подсказать, как с ардуино можно отправить то же самое, что и отправляет команда
curl -T c:\_\1.xml http://admin:admin@192.168.1.245/Video/inputs/channels/1/overlays/text
содержимое 1.xml написано выше.
Ибо я зашел в тупик.....
Могу, но задорого.
каков бюджет?
Писните на wrk.sadman@gmail.com
Хотя, я, конечно не особо понимаю, в чём затруднения...
На тестовом скетче всё закидывается, камера говорит "ОК". Картину с камеры постить не буду - она непубличная.
Сам уже нашел ошибку. Спасибо всем откликнувшимся.
Ничеси. Самое интересное в этой теме )
Код бы запостили - может пригодится кому то.
Так чего там постить... С вайршарка дёрнул дамп реквеста и всё. Не знаю, что вызывало затруднения. Основной труд был бы в том, чтобы боди сформировать на лету, проверить код ответа и пр.
Дайте пожалуйста рабочий код.
Второй день пытаюсь повторить ваш опыт, но всё без успешно. Кто может подскажите что не так делаю.
@artemmaster1, такое впечатление,что вы не представляете что делаете, для чего нужен Ethernet.begin и как его использовать, что такое EthernetClient и что он можем выполнять.
Кроме транспортного уровня tcp, есть еще протокольный уровень http, у которого есть различные методы.
На скриншоте видно что выполнялся метод PUT, кроме этого протокол предусматривает аутентификацию клиента, там-же на скриншоте видно, что выполнялась базовая аутентификация.
Таким образом, необходимо кроме передаваемого xml содержимого, сформировать http заголовки, обязательно включить в них заголовок Authorization, иначе получите 401-й код Unauthorized
Подробно о протоколе изложено в rfc2616
вы правы, знания мои малы. не чего не понял что вы сказали но всё равно спасибо.
Я же правильно понимаю, arduino выступает в роли Web client?
Про webclient - правильно.
камера уже хотя бы меня посылает... уже прорыв) теперь понять как пройти авторизацию. её скармливать admin:admin@192.168.1.248 или как то в иной форме...
Алексей Н. написал про авторизацию.
Поделится кто рабочим решением? Тоже появились хиквижн, хотел бы с ESP температуру накладывать.
Всем доброго времени.
Кто нибудь решение выложит? Не жадничайте =)
или хотя бы ссылку куда смотреть
Привет,
Вы можете поделиться кодом?