https://github.com/2bad/onvif
A TypeScript implementation of the ONVIF Client protocol supporting Profile S (Live Streaming) and Profile G (Replay)
https://github.com/2bad/onvif
Last synced: 2 months ago
JSON representation
A TypeScript implementation of the ONVIF Client protocol supporting Profile S (Live Streaming) and Profile G (Replay)
- Host: GitHub
- URL: https://github.com/2bad/onvif
- Owner: 2BAD
- License: mit
- Created: 2024-03-23T00:59:19.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2025-05-12T12:30:06.000Z (about 1 year ago)
- Last Synced: 2025-05-12T13:39:35.961Z (about 1 year ago)
- Language: TypeScript
- Homepage:
- Size: 993 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# @2bad/onvif
[](https://www.npmjs.com/package/@2bad/onvif)
[](https://opensource.org/license/MIT)
[](https://github.com/2BAD/onvif/actions/workflows/build.yml)
[](https://codecov.io/gh/2BAD/onvif)
[](https://www.typescriptlang.org/)
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](https://github.com/agsh/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
```bash
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
```typescript
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](https://github.com/2bad/onvif).
## Acknowledgments
This package is based on the excellent work done by [agsh](https://github.com/agsh/onvif) and the ONVIF community. We've built upon their foundation to provide a stable, typed implementation for the Node.js ecosystem.
[](http://onvif.org)
## 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.