Можно ли получить одно изображение из потока IP-камеры (ONVIF)?

У меня есть веб-приложение, которому нужно получить изображение с IP-камеры в сети. возможно ли это с помощью PHP? или хотя бы JS? Просто нужно веб-приложение для захвата и сохранения изображений с IP-камеры. Я смог сделать это с помощью ВЕБ-КАМЕР (через веб-камеру USB), но не знаю, как это сделать с помощью реальной IP-камеры. Было бы также здорово, если бы для этого уже был доступен скрипт (бесплатный или платный).

Любая помощь будет действительно оценена!

Камера PS также имеет поддержку RSTP... если это облегчает достижение того же результата...


person BrownChiLD    schedule 14.01.2018    source источник
comment
Вы можете использовать ffmpeg и взять один кадр потока rtsp, однако он должен быть доступен.   -  person Lawrence Cherone    schedule 14.01.2018


Ответы (2)


Более простым решением может быть переход на python и opencv. Легко получить любой поток с IP-камеры, а с помощью opencv вы можете сохранить видео или серию изображений менее чем за 3 минуты.

import cv2
import time

cap = cv2.VideoCapture(stream_url) # it can be rtsp or http stream
ret, frame = cap.read()
while ret:
    cv2.imwrite('images/{}.jpg'.format(time.time()), frame)
    ret, frame = cap.read()

Кроме того, ищите API камеры, многие IP-камеры имеют адрес одного снимка, поэтому вы можете извлечь его и сохранить:

import numpy as np
import cv2
import urllib

resp = urllib.urlopen(url)
image = np.asarray(bytearray(resp.read()), dtype="uint8")
image = cv2.imdecode(image, cv2.IMREAD_COLOR)
# image is in memory, we can save it, send it etc...

И, наконец, в большинстве случаев IP-камеры имеют поток mjpeg, который можно встроить непосредственно в тег img html <img href='http://ip_address/video.mjpg' /> в качестве примера.

person Aleksandar    schedule 14.01.2018

Если ваша камера имеет поддержку FTP и вы можете при желании передавать изображения по FTP, вы можете попробовать службу FTP и удаленного просмотра IP-камеры, которую я сейчас разрабатываю:

Запустите демоверсии или создайте учетную запись на странице https://app.comsci.co.uk/camac

Эта служба имеет возможность делиться последним изображением с каждой камеры через веб-адрес (включено в настройках -> поделиться), например. Для демо-счета кормушки для птиц:

https://app.comsci.co.uk/imageserver/CC/0123456789abcdef/bird/latest

У вас также будет историческая запись изображений, которые могут представлять интерес.

Много преимуществ по сравнению с простым FTP-сервером и в настоящее время бесплатен, пока находится в разработке. Если услуга окажется жизнеспособной и станет коммерческой, стоимость подписки будет сопоставима со стоимостью электроэнергии при круглосуточной работе рекордера.

person Comsci    schedule 14.01.2018
comment
Спасибо. да, у камер есть функция FTP, и я делаю это на данный момент, но проблема в том, что камеры не отправляют изображения с интервалом, а скорее срабатывают по движению. Короче говоря, веб-приложение, которое я делаю, нуждается в скриншоте изображений с нескольких ip-камер, основанных на срабатывании некоторых датчиков умного дома и т. д., независимо от того, есть движение или нет.. при срабатывании датчика захватывайте и профилируйте изображения с разных камер. это в основном то, что я пытаюсь получить. - person BrownChiLD; 14.01.2018