我正在用Java 开发一个ONVIF相机应用程序.谁能建议我测试网络服务的方法?有没有可用的模拟器?
谢谢你的帮助.
我打算做一个java onvif应用程序.我创建了一个新项目并从devicemgmt.wsdl生成了源.还从远程discovery.wsdl生成了类.如何使用生成的类发现网络中的设备?谢谢你的帮助.
我有下一个海康威视 IP 摄像机http://www.hikvision.com/es/Products_accessries_161_i11969.html我在我的本地网络中配置了它并且我与浏览器连接,我可以看到摄像机工作正常。我在不同的帖子中搜索过像这样在相机中获取帧,但我做不到。这里我放了我用来尝试的代码和响应。我想获得一个框架并将其保存在我的去库存中以进行处理。
import cv2
import requests
import numpy as np
import urllib
import hikvision.api
import requests
import shutil
#Donwload from: https://github.com/fbradyirl/hikvision/archive/master.zip
hik_camera = hikvision.api.CreateDevice('192.168.1.64', username='admin', password=contrasenia)
"""
INFO:hikvision.api:Initialising new hikvision camera client
INFO:hikvision.api:motion_url: http://192.168.1.64/MotionDetection/1
INFO:hikvision.api:ElementTree.register_namespace: http://www.hikvision.com/ver10/XMLSchema
INFO:hikvision.api:Going to probe device to test connection
INFO:hikvision.api:url: http://192.168.1.64/System/deviceInfo
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): 192.168.1.64
DEBUG:requests.packages.urllib3.connectionpool:"GET /System/deviceInfo HTTP/1.1" 200 696
DEBUG:hikvision.api:response: <Response [200]>
DEBUG:hikvision.api:status_code 200
DEBUG:hikvision.api:element_to_query: .//{http://www.hikvision.com/ver10/XMLSchema}firmwareVersion result: <Element '{http://www.hikvision.com/ver10/XMLSchema}firmwareVersion' at 0x7fb090b76cc8>
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): 192.168.1.64
DEBUG:requests.packages.urllib3.connectionpool:"GET /MotionDetection/1 HTTP/1.1" …Run Code Online (Sandbox Code Playgroud) 无法访问视频流.任何人都可以帮助我获取视频流.我在谷歌搜索了解决方案并在堆栈溢出中发布了另一个问题,但遗憾的是没有什么不能解决问题.
import cv2
cap = cv2.VideoCapture()
cap.open('http://192.168.4.133:80/videostream.cgi?user=admin&pwd=admin')
while(cap.isOpened()):
ret, frame = cap.read()
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud) 我想在使用 ReactJS 构建的网页上显示网络摄像机的实时镜头。
我在互联网上找到了一些解决方案,但提供了使用 http url 的解决方案。但是我的相机有用户名和密码,我不知道如何将用户名/密码嵌入到 http url 中。
我有一个带有用户名/密码的有效 rtsp url。
我想在 React 应用程序中有一个视频元素,如下所示:
render() {
return (
<div>
<video
....
/>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
我的功能 rtsp url 是这样的:rtsp://username:password@172.16.3.18:554
我有一台海康威视 IP 摄像机,正在对其进行安全研究。(型号DFI6257E,貌似是台湾独家型号。)
从闪存中转储固件并使用 binwalk 对其进行分析后,我发现很难理解其工作原理。几乎就像他们试图隐藏一些事情。
转储固件:https://drive.google.com/file/d/1x9JiVbnZo4zNNnX8V8JS1MGsK4wmHFM6/view ?usp=sharing
这是 binwalk 的输出:
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
36392 0x8E28 LZMA compressed data, properties: 0x5D, dictionary size: 16777216 bytes, uncompressed size: -1 bytes
10092544 0x9A0000 JFFS2 filesystem, little endian
16318544 0xF90050 Zlib compressed data, compressed
16318764 0xF9012C Zlib compressed data, compressed
16319000 0xF90218 Zlib compressed data, compressed
16319136 0xF902A0 Zlib compressed data, compressed
16319592 0xF90468 Zlib compressed data, compressed
16320424 0xF907A8 Zlib compressed data, compressed
16320864 0xF90960 Zlib compressed data, compressed
16321796 …Run Code Online (Sandbox Code Playgroud) 我已经做了一个快速的谷歌,但我想知道这是否可能?我已经在我们的路由器上打开了端口,所以它可以从任何地方访问,但我可以使用PHP或类似的方式获取实时流媒体并在某个网站上显示它吗?
我正在尝试找到一台允许我通过UPnP操作的IP摄像头.UPnP论坛提供数字安全摄像头配置文件:
http://upnp.org/specs/ha/digitalsecuritycamera/
但是,我无法找到实现此配置文件的IP摄像机,这将允许统一控制不同IP摄像机的方法.大多数IP摄像机似乎仅为了发现目的而实现UPnP,用户必须检索设备的演示URL,然后通过制造商的Web UI控制摄像机.
UPnP论坛认证产品列表中不包含任何此类设备,大多数IP摄像机制造商的网站对其提供的UPnP服务(如果没有明确声明它们仅支持设备发现)含糊不清.
有没有人遇到任何支持数字安全摄像头配置文件及其相关服务的IP摄像头?
尝试使用 waveOutWrite() 实现流畅的音频播放时遇到问题。我的数据包括许多从相机获取的 adpcmdata 块,在解码每个 adpcm 块后,我使用 waveOutWrite() 播放它。第一个块成功播放(至少我能听到),但是当我播放下一个块时遇到问题,这些块之间存在间隙。我尝试在使用 waveOutWrite() 后调用 sleep() 但它不行。谁能告诉我在这种情况下我如何变得顺利?我播放音频的方式有问题吗?
for (i = 0, i < MaxBlockData, i++)
BYTE * pcmBuff = new BYTE[length*8];
memset(pcmBuff, 0, length*8);
G726 g726;
int pcmDataSize = 0;
g726.SetRate(g726.Rate32kBits);
g726.SetLaw(g726.PCM16);
pcmDataSize = g726.Decode(pcmBuff, adpcmData[i], 0, length*8); /decode adcmData PCM 16
if(pcmDataSize > 0)
{
int sampleRate = 8000;
CHAR* waveIn = new CHAR[pcmDataSize];
HWAVEIN hWaveIn;
WAVEHDR WaveInHdr;
MMRESULT result;
HWAVEOUT hWaveOut;
WAVEFORMATEX pFormat;
pFormat.wFormatTag = WAVE_FORMAT_PCM;
pFormat.nChannels = 1;
pFormat.nSamplesPerSec = sampleRate; …Run Code Online (Sandbox Code Playgroud) 我有一个带运动按钮和 PIR 运动传感器的门鸟视频门铃。摄像机还可以提供连续馈送,我通过 Synology Surveillance Station 作为通用 ONVIF 摄像机进行录制。此 ONVIF 摄像机未将运动传感器或铃铛按钮定义为数字输入,这是在 Surveillance Station 中与它们交互的正常方式。但是,DoorBird 可以触发 GET 请求(至少在按下按钮时,可能用于 PIR 传感器),因此我希望使用此 GET 请求功能而不是正确的 ONVIF 事件支持。
使用可从 WEB UI 获得的 Surveillance Station 'Action Rules',我希望将其与动作事件联系起来。我使用“外部设备”(网络请求调用)添加了一个新事件。
“外部事件”将生成这样的链接。
http://192.168.1.5:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&method= "触发器"&version=1&eventId=1&eventName="这是外部事件1"&account="doorbird"&password="changeme"
这有效,我得到了一个“成功”的 json 响应和一个它注册的事件。问题是我想注册一个正常出现在相机时间轴中的相机运动事件。
这里的问题是无法将此事件用作 Surveillance Station 内的“运动”检测事件。您只能打开和关闭家庭模式或调用音频输出。我希望触发运动事件,以便在我连续录制相机时显示在相机时间线中。
获取 Surveillance Station 的当前版本。
http://192.168.1.5:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.Info&method=GetInfo&version=1&account= "doorbird"&password="changeme"
获取当前相机信息。请注意,'basic=true' 发送附加的基本数据,它不是'只是'基本数据。例如,除非basic=true,否则不会发送相机 ID 。
http://192.168.1.5:5000/webapi/entry.cgi?privCamType=1&version= “8” &基本=真streamInfo =真API = “SYNO.SurveillanceStation.Camera” &camStm = 1&方法= “列表” &帐户= “doorbird” &密码= “改变我自己”
所以我有相机 ID,但此时我被卡住了。我不确定是否可以针对相机馈送触发等效的运动事件。