@2bad/onvif
v1.0.0-beta.2
Published
[![NPM version](https://img.shields.io/npm/v/@2bad/onvif.svg)](https://www.npmjs.com/package/@2bad/onvif) [![License](https://img.shields.io/npm/l/@2bad/onvif)](https://opensource.org/license/MIT) [![GitHub Build Status](https://img.shields.io/github/acti
Downloads
1,291
Readme
@2bad/onvif
A TypeScript implementation of the ONVIF Client protocol supporting Profile S (Live Streaming) and Profile G (Replay). This is a stable, typed fork of the original onvif package.
Features
This library provides a wrapper for the ONVIF protocol, allowing you to:
- Get information about your NVT (Network Video Transmitter) devices
- Access media sources
- Control PTZ (Pan-Tilt-Zoom) movements
- Manage presets
- Detect devices in your network
- Control device events
- Get information about NVR (Network Video Recorder) Profile G devices
- Obtain recordings lists
Installation
npm install @2bad/onvif
Key Improvements
- Full TypeScript support with interfaces describing ONVIF data structures
- Stable npm package with regular maintenance
- Improved error handling and stability fixes
- Maintained type definitions
- Compatible with the original API structure
Usage
import { Onvif } from '@2bad/onvif';
// Connect to a device
const device = new Onvif({
hostname: '192.168.1.123',
username: 'admin',
password: 'password',
port: 80
});
await device.connect()
// Get snapshot URI
const snapshotUri = await device.media.getSnapshotUri({ profileToken: 'profile1' })
Compatibility
This package maintains compatibility with code written for the original onvif package (v0.6.x) through a compatibility layer. If you're migrating from the original package, your existing code should work with minimal changes.
Documentation
For detailed API documentation and supported ONVIF commands, please visit our GitHub repository.
Acknowledgments
This package is based on the excellent work done by agsh and the ONVIF community. We've built upon their foundation to provide a stable, typed implementation for the Node.js ecosystem.
Contributing
Contributions are welcome! Feel free to submit issues and pull requests.
License
This project is licensed under the MIT License - see the LICENSE file for details.