是否可以从IP摄像机流(ONVIF)中获取单个图像?

时间:2018-01-14 08:35:55

标签: php ip-camera onvif

我有一个需要从网络中的IP摄像头抓取图像的Web应用程序。这可能使用PHP吗?或者至少是JS?只需要Web应用程序从IP摄像头抓取并保存图像。我已经能够使用WEBCAMS(通过USB网络摄像头)这样做但不知道如何使用实际的IP摄像头来做到这一点。如果有一个已经可用的脚本(免费或付费)来做这件事,也会喜欢它。

真的很感激任何帮助!

PS 相机也有RSTP支持...如果这样可以更容易实现相同的结果......

2 个答案:

答案 0 :(得分:1)

更简单的解决方案可能是切换到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' />中作为示例

答案 1 :(得分:0)

如果您的相机支持FTP并且您可以在需要时使用FTP图像,那么您可以尝试我正在开发的IP Camera FTP和远程查看服务:

运行演示或在https://app.comsci.co.uk/camac

创建帐户

此服务能够通过网址(通过设置 - >共享启用)从每个相机共享最新图像,例如对于喂鸟器模拟账户:

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

您还将获得可能感兴趣的图像的历史记录。

与简单的FTP服务器相比,在开发过程中目前免费的许多优点。如果该服务证明是可行的并且商业订购的定价将与24x7运行录像机的电费成本相当