You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
const onvif = require('onvif');
// Extract command-line arguments
const args = process.argv.slice(2); // Skip the first two elements
const HOST_PORT = args[0]; // IP address and port (optional)
const USERNAME = args[1]; // Username
const PASSWORD = args[2]; // Password
// Split HOST_PORT by ':' to separate IP and port
const [HOST, PORT] = HOST_PORT.split(':');
// Default ONVIF port if not specified
const DEFAULT_PORT = 80;
// Validate input arguments
if (!HOST || !USERNAME || !PASSWORD) {
console.error('Usage: node getRtspUrls.js <ip_address[:port]> <username> <password>');
process.exit(1);
}
// Connect to the ONVIF camera
const camera = new onvif.Cam({
hostname: HOST,
username: USERNAME,
password: PASSWORD,
port: PORT || DEFAULT_PORT, // Use the specified port or default if not provided
}, function(err) {
if (err) {
return console.error(err);
}
// Get all the available media profiles
this.getProfiles((err, profiles) => {
if (err) {
return console.error(err);
}
// Fetch and output RTSP URLs for each profile
const rtspUrls = profiles.map(profile => {
return new Promise((resolve, reject) => {
this.getStreamUri({protocol: 'RTSP', profileToken: profile.token}, (err, stream) => {
if (err) {
reject(err);
} else {
resolve({profileName: profile.name, rtspUri: stream.uri});
}
});
});
});
Promise.all(rtspUrls)
.then(urls => {
console.log(JSON.stringify(urls, null, 2));
})
.catch(error => console.error(error));
});
});
andrey-utkin
added a commit
to andrey-utkin/bluecherry-apps
that referenced
this issue
Feb 29, 2024
We need to use the new onvif (nodejs) function to pull json, the old onvif_tool binary no longer functions with most newer onvif standards:
https://github.com/bluecherrydvr/bluecherry-apps/blob/31fdffcd61fc178c05da566cc66887937cf004f8/www/ajax/addip.php#L72C15-L95
The text was updated successfully, but these errors were encountered: