问题标签 [python-onvif]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
742 浏览

php - 如何在python中对onvif进行密码加密?

使用onvif密码必须以某种方式加密。ONVIF Appicaltion Programmer's Guide on page 35中描述的方法。我还找到了如何在 PHP 中执行此操作,它看起来像这样:

主要问题是我不知道所有字节操作是如何工作的,所以我需要一些帮助才能将这个 PHP 代码传输到 python 中......

0 投票
1 回答
18434 浏览

ip-camera - Python-ONVIF PTZ 控制——绝对和相对移动

我正在用 Python 开发一个应用程序来控制兼容 ONVIF 的相机。

软件:Debian Wheezy、Python 2.7、Quatanium python-onvif 客户端

硬件:Raspberry Pi 2 B、本地路由器上的 IP 摄像头、用于开发的 wifi/VNC

所需的 PTZ 功能包括绝对移动、相对移动、连续移动、停止和使用预设位置。使用下面提取的测试代码,除了绝对和相对移动之外,我已经完成了所有这些工作。所有这些代码都执行没有任何错误,但相机不会移动绝对或相对移动。我希望有人可以提出这两个功能的问题。该示例有点长,但我尝试包含足够的代码来显示工作和非工作(带有大写注释)部分之间的对比,以供参考和测试。

测试草图:

引用的类:

@Ottavio,抱歉,我没有明确说明我用于此测试的摄像机是 Netcat PT-PTZ2084XM-A 通过 ONVIF 查询报告的,它确实支持绝对和相对移动。我随后通过 onvif.org 网站验证了这款相机尚未经过测试和验证符合 onvif 标准。我还验证了上述代码在 Amcrest IP2M-841B ptz 摄像机上可以正常工作。所有这一切的结果是永远不要相信相机未经测试就兼容 ONVIF 2.x 的说法。即使是 Amcrest 也存在用于缩放的 ONVIF 和 cgi 命令的问题。Netcat 和 Amcrest 对解决这些技术问题都没有太大帮助。

0 投票
1 回答
6323 浏览

python - ONVIF 相机更改快照分辨率 (getSnaphotUri)

我正在使用 python-onvif 查找相机的 URI 以获取静态快照。它工作正常,我可以得到快照。

但是分辨率不是我的相机可以达到的“完整”720。并且在流式传输时确实得到。快照只有 640x352 之类的。

如何告诉 ONVIF 以全分辨率拍摄快照?

我尝试使用 getSnapshotUri(token) 生成 URI 并放入具有最高分辨率的主配置文件的令牌,但我得到了相同的 URI 和相同的分辨率。

有没有办法获得全分辨率快照?

文档说它将使用“来自配置文件”的 jpeg 设置,但我不知道如何告诉它使用哪个配置文件或使用什么分辨率设置。

我不确定在这种情况下是否真的需要代码,但这就是我正在做的事情。以防它帮助某人

*****更新20160412

以下是要求提供的更多信息。

我跑了以下

我得到了以下打印出来的很长的东西,所以我把它放在了一个粘贴箱里。

http://pastebin.com/Wfe4CPLy

没有关于 JPEG 的信息。H264 分辨率在那里,所以我知道相机可以拍摄更高分辨率的视频。但是getsnapshot uri仍然只有较低的分辨率。

0 投票
1 回答
2561 浏览

python - 如何在 Python 上获取 Onvif 媒体配置文件令牌

我一直在尝试请求 Onvif 快照,但 GetSnapshotUri() 函数将“配置文件令牌”作为参数。

我调用了函数 GetProfiles(),它的结果是一个配置文件列表,其中一个有a _token = "MediaProfile000".

如果我只是在 GetSnapshotUri() 函数中输入这个标记,它会说:

所以我尝试了这种方式:

但猜猜怎么了?

请帮忙

0 投票
0 回答
1021 浏览

python-2.x - 使用 python-onvif,有什么方法可以获取错误响应的文本?

我正在尝试使用 python-onvif 库和命令行客户端来使用我拥有的网络摄像机。

当一切正常时,它很好,但如果我有一个错误,我几乎没有得到任何有用的信息。

例如,如果我使用错误的 cli 密码,我最终会得到:

这是 Exception 导致它从 suds 上升到 python-onvif 并由 onvif-cli 工具打印的结果。

使用wireshark 进行跟踪显示,实际上返回的400 响应带有正确的SOAP 消息,表明身份验证失败。

使用 pdb 进行一点调试表明,底层的“suds”库似乎只是在吃掉该文本并抛出异常。我试图在 suds 客户端对象中使用“last_received()”来获取消息,但它没有 400 的内容 - 它具有正确接收到的最后一条消息。

我的代码有什么方法可以获取 400 消息的内容吗?我很高兴只得到原始字节——我只需要记录一些东西,这样当现场出现问题时,我至少可以知道相机认为正在发生什么。

我确实尝试在创建 suds.client.Client 时将“错误”选项设置为 False,但这只是让我将 (400, Bad Request) 作为元组返回 - 它仍然没有解码内容。

系统是CentOS 6.6,suds版本是0.4,python-onvif 0.1.3,python 2.6.6,摄像头是索尼EP580最新固件。

0 投票
0 回答
1148 浏览

ip-camera - Onvif IP 摄像机的 PTZ

我有一个在 Android 上运行的应用程序来连接和查看 IP 摄像机。现在我正在尝试将 PTZ 支持添加到应用程序。

以下是 PTZ 的要求。

1) 当用户将屏幕拖动到应用程序上的任何坐标时,IP Camera 应该相应地移动(平移/倾斜)。

2) 当用户放大/缩小应用程序的特定区域时,IP Camera 应该放大该区域。

我面临的问题是。

1) 我无法将用户操作的 x、y 坐标映射到 Onvif 平移/倾斜矢量。因为 Onvif 平移/倾斜矢量 X 和 Y 值范围是 -1 到 1,我不知道如何覆盖 IP 摄像机的整个区域(360 度水平 70 度垂直)

2)如何放大/缩小特定区域,因为 Onvif 缩放矢量不提供指定区域的方法(要缩放的 X 和 Y 坐标)。

0 投票
2 回答
1298 浏览

soap - 将 OnVif PullPoint 服务与 Zeep 一起使用

我在尝试订阅标准 IP 摄像机中的 OnVif 拉点服务时遇到了困难。

我使用的 SOAP 客户端是 Zeep https://python-zeep.readthedocs.io/en/master/index.html

似乎 Zeep 构造了错误的 xml 数据,但我可能是错的(由于我对 SOAP 的了解有限)。让我们看看这个例子:

根据相机的不同,这总是会导致“远程结束关闭连接而没有响应”,否则,服务器会发送一条消息,指出该值无效。

当将 Zeep 置于详细模式并检查 SOAP 消息体(也已通过 Wireshark 确认)时,它看起来像这样:

因此,字符串“PT1S”似乎没有进入消息正文,但仍然存在“P%P”!

如何说服 Zeep 在适当的位置插入正确的时间?

PS 请不要告诉我使用“python-onvif-zeep”。当然,我首先这样做了,然后以这个问题结束(用于 pullpoint 服务的“python-onvif-zeep”示例不起作用)

0 投票
2 回答
1883 浏览

onvif - 从 bash 或 REST 在海康威视相机中设置日期和时间?

如何从 linux 命令行在海康威视摄像机中设置日期和时间?或者从某种语言,如 Python、PHP 等... 我有一台连接到相机的计算机,我想在不访问浏览器的情况下更改相机中的日期和时间,只能从终端。谢谢

0 投票
1 回答
1179 浏览

python - 使用 python-onvif-zeep 禁用 IP PTZ 摄像机自动对焦

我的 PTZ 摄像机自动对焦并调整平移倾斜变焦和某些物体上出现在摄像机中的图像。我想禁用这些功能。

我正在使用 python-onvif-zeep 库https://github.com/FalkTannhaeuser/python-onvif-zeep.git

onvif 的操作指南在这里 https://www.onvif.org/onvif/ver20/util/operationIndex.html

我要发送请求的具体功能是 SetImagingSettings https://www.onvif.org/onvif/ver20/imaging/wsdl/imaging.wsdl#op.SetImagingSettings

我尝试如下创建请求

如果没有“焦点”部分,代码可以很好地更新亮度值。

我的期望:成像设置会更新,禁用自动对焦。

但我得到一个一般错误说“zeep.exceptions.Fault:请求的设置不正确”谢谢大家!

0 投票
1 回答
214 浏览

soap - 在测试用例中从 DUT 向 Onvif Device 测试工具提出故障时出错

在测试用例中从 DUT 引发故障时出错。 ==================================================== ========

在测试用例 EventProperties>RealTimePullPointNotification Interface>EVENT-3-1-17-v14.12 REAL TIME PULL POINT SUBSCRIPTION-INVALID MESSAGE CONTENT FILTER 中,DUT 向客户端发送故障消息。

在验证客户端中的故障时(Onvif Device Test Tool Ver 6.12),我从命名空间 Addressing10(http://www.w3.org/2005/08/addressing)收到错误 No Action 元素。

我将 wsa:Action 元素设置为http://www.w3.org/2005/08/addressing/soap/fault然后我也收到上述错误。

onvif 设备测试工具的输出如下:

我从 DUT 向客户端发送错误的 XML 如下: ===================================== ====================