尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

海康视频设备onvif 快照数据获取

海康视频设备onvif 快照数据获取
📅 发布时间:2026/6/19 13:35:21

海康视频设备onvif 快照数据获取

当前因为一些历史原因,不少onvif 的包都比较老,同时不少设备因为安全问题对于部分数据的处理进行了调整,造成实际处理上不太兼容, 或者不能使用

onvif 快照问题

默认支持的路径类似如下onvif-http/snapshot?Profile_1 实际上还有一个ISAPI 协议的ISAPI/Streaming/channels/1/picture 但是安全处理上并不是简单的basic auth,而是digest 模式的

解决方法

可以自己基于digest 模式进行数据处理,或者就是通过一些不错的三方包解决,比如digest-fetch

参考使用

  • 示例代码
const DigestClient = require("digest-fetch");
const fs = require("fs");const client = new DigestClient("xxxx", "xxxxxxx");client.fetch("http://xxxxxx/onvif-http/snapshot?Profile_1").then((res) => res.buffer()).then((buffer) =>fs.writeFile("./demo.jpg", buffer, (err) => {if (err) throw err;console.log("File saved!");}));
  • onvif 包装

如果使用的node-onvif ,一个简单的在ptz 之后然后进行快照获取

const onvif = require('node-onvif');
const DigestClient = require("digest-fetch");
const fs = require("fs");
// Create an OnvifDevice object
let device = new onvif.OnvifDevice({xaddr: 'http://xxxxxx/onvif/device_service',user : 'xxxxxx',pass : 'xxxxxxxx'
});device.init().then(() => {return device.ptzMove({'speed': {x: 0, // Speed of pan (in the range of -1.0 to 1.0)y: 0, // Speed of tilt (in the range of -1.0 to 1.0)z: 0.0 // Speed of zoom (in the range of -1.0 to 1.0)},'timeout': 3 // seconds});
}).then(() => {console.log('Done!');// 获取profile 的snapshot 地址,然后使用DigestClientlet snapshot_url = device.getCurrentProfile().snapshot;console.log("snapshot_url",snapshot_url);const client = new DigestClient("fengshuo", "111...aaa");client.fetch(snapshot_url).then((res) => res.buffer()).then((buffer) =>fs.writeFile("./demov1.jpg", buffer, (err) => {if (err) throw err;console.log("File saved!");})).catch((error) => {console.error(error);});
}).catch((error) => {console.error(error);
});

说明

当前onvif 的不少协议版本sdk 都比较老了,对于一些包推荐还是自己处理下,或者自己fork 修复

参考资料

https://github.com/devfans/digest-fetch

https://github.com/sxiii/node-onvif

相关新闻

  • 平臺問我,你真的有命可以曬嗎?
  • 如何把英國 GiffGaff 從 ESIM 轉 SIM
  • 2025.10.28——1蓝

最新新闻

  • 1-4 从零搭建深层神经网络:吴恩达课程核心实践指南
  • 【毕业设计】基于 Django 的用户偏好全屋定制智能推送系统的设计与实现 基于推荐算法的家装全屋定制服务平台(源码+文档+远程调试,全bao定制等)
  • StegOnline:浏览器端图像隐写分析与数据隐藏的终极实战指南
  • 如何永久保存你的微信聊天记录?三步搞定完整导出与备份方案
  • 如何通过Qwerty Learner提升英语打字速度:终极肌肉记忆训练指南
  • 上海奢侈品回收实测:江诗丹顿、欧米茄海马当场估价秒结全款 - 逸程

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号