Node-ONVIF 开源项目教程
1. 项目的目录结构及介绍
Node-ONVIF 项目的目录结构如下:
node-onvif/
├── examples/
│ ├── discovery.js
│ ├── get_capabilities.js
│ ├── get_device_info.js
│ ├── get_profiles.js
│ ├── get_stream_uri.js
│ ├── main.js
│ ├── ptz_continuous_move.js
│ ├── ptz_relative_move.js
│ ├── ptz_status.js
│ ├── ptz_stop.js
│ └── snapshot.js
├── lib/
│ ├── onvif.js
│ ├── onvif_device.js
│ ├── onvif_discovery.js
│ ├── onvif_ptz.js
│ ├── onvif_utils.js
│ └── soap.js
├── node_modules/
├── test/
│ ├── discovery.test.js
│ ├── onvif.test.js
│ ├── onvif_device.test.js
│ ├── onvif_discovery.test.js
│ ├── onvif_ptz.test.js
│ └── soap.test.js
├── .gitignore
├── .npmignore
├── LICENSE
├── README.md
├── package-lock.json
└── package.json
目录结构介绍
- examples/: 包含多个示例脚本,展示了如何使用 Node-ONVIF 进行设备发现、获取设备信息、获取流 URI 等操作。
- lib/: 包含项目的主要库文件,如
onvif.js
、onvif_device.js
等,这些文件实现了 ONVIF 协议的主要功能。 - node_modules/: 包含项目依赖的第三方模块。
- test/: 包含项目的测试文件,用于确保代码的正确性。
- .gitignore: 指定 Git 版本控制系统忽略的文件和目录。
- .npmignore: 指定 npm 包发布时忽略的文件和目录。
- LICENSE: 项目的许可证文件。
- README.md: 项目的说明文档。
- package-lock.json: 锁定项目依赖的版本。
- package.json: 项目的配置文件,包含项目的基本信息和依赖。
2. 项目的启动文件介绍
Node-ONVIF 项目的启动文件通常是 examples/
目录下的示例脚本。以下是一些关键的启动文件介绍:
- examples/discovery.js: 用于发现网络中的 ONVIF 设备。
- examples/get_device_info.js: 用于获取 ONVIF 设备的详细信息。
- examples/get_stream_uri.js: 用于获取 ONVIF 设备的视频流 URI。
- examples/main.js: 一个综合示例,展示了如何使用多个功能。
启动文件示例
以 examples/discovery.js
为例,展示如何启动和使用:
const ONVIF = require('../lib/onvif');
ONVIF.Discovery.on('device', device => {
console.log('Found device:', device.urn);
});
ONVIF.Discovery.start();
3. 项目的配置文件介绍
Node-ONVIF 项目的配置文件主要是 package.json
,它包含了项目的基本信息和依赖。以下是 package.json
的主要内容:
{
"name": "node-onvif",
"version": "1.0.0",
"description": "A Node.js library for ONVIF protocol",
"main": "lib/onvif.js",
"scripts": {
"test": "mocha"
},
"keywords": [
"ONVIF",
"IP Camera",
"PTZ"
],
"author": "GuilhermeC18",
"license": "MIT",
"dependencies": {
"async": "^3.2.0",
"lodash": "^4.17.21",
"request": "^2.88.2",
"soap": "^0.35.0",
"xml2js": "^0.4.2