clean up ONVIF Scanner Snapshot error handling
parent
fd4d228046
commit
d78b17169f
|
@ -95,6 +95,19 @@ module.exports = (s,config,lang) => {
|
|||
resolve(null);
|
||||
return
|
||||
}
|
||||
const completeRequest = () => {
|
||||
fs.readFile(temporaryImageFile,(err,imageBuffer) => {
|
||||
fs.unlink(temporaryImageFile,(err) => {
|
||||
if(err){
|
||||
s.debugLog(err)
|
||||
}
|
||||
})
|
||||
if(err){
|
||||
s.debugLog(err)
|
||||
}
|
||||
resolve(imageBuffer)
|
||||
})
|
||||
}
|
||||
const temporaryImageFile = streamDir + s.gid(5) + '.jpg'
|
||||
const ffmpegCmd = s.splitForFFPMEG(`-loglevel warning -re -probesize 100000 -analyzeduration 100000 ${inputOptions.join(' ')} -i "${url}" ${outputOptions.join(' ')} -f image2 -an -vf "fps=1" -vframes 1 "${temporaryImageFile}"`)
|
||||
const snapProcess = spawn('ffmpeg',ffmpegCmd,{detached: true})
|
||||
|
@ -103,17 +116,7 @@ module.exports = (s,config,lang) => {
|
|||
})
|
||||
snapProcess.on('close',async function(data){
|
||||
clearTimeout(snapProcessTimeout)
|
||||
fs.readFile(temporaryImageFile,(err,imageBuffer) => {
|
||||
try{
|
||||
s.file('delete',temporaryImageFile)
|
||||
}catch(err){
|
||||
|
||||
}
|
||||
if(err){
|
||||
s.debugLog(err)
|
||||
}
|
||||
resolve(imageBuffer)
|
||||
})
|
||||
completeRequest()
|
||||
})
|
||||
var snapProcessTimeout = setTimeout(function(){
|
||||
var pid = snapProcess.pid
|
||||
|
@ -128,17 +131,7 @@ module.exports = (s,config,lang) => {
|
|||
}else{
|
||||
snapProcess.kill()
|
||||
}
|
||||
fs.readFile(temporaryImageFile,(err,imageBuffer) => {
|
||||
try{
|
||||
s.file('delete',temporaryImageFile)
|
||||
}catch(err){
|
||||
|
||||
}
|
||||
if(err){
|
||||
s.debugLog(err)
|
||||
}
|
||||
resolve(imageBuffer)
|
||||
})
|
||||
completeRequest()
|
||||
},10000)
|
||||
},30000)
|
||||
})
|
||||
|
|
|
@ -118,14 +118,21 @@ module.exports = function(s,config,lang,app,io){
|
|||
uri: stream.data.GetStreamUriResponse.MediaUri.Uri
|
||||
}
|
||||
responseList.push(cameraResponse)
|
||||
const imageSnap = (await createSnapshot({
|
||||
output: ['-s 400x400'],
|
||||
url: addCredentialsToStreamLink({
|
||||
username: onvifUsername,
|
||||
password: onvifPassword,
|
||||
url: stream.data.GetStreamUriResponse.MediaUri.Uri
|
||||
}),
|
||||
})).toString('base64');
|
||||
var imageSnap
|
||||
if(cameraResponse.uri){
|
||||
try{
|
||||
imageSnap = (await createSnapshot({
|
||||
output: ['-s 400x400'],
|
||||
url: addCredentialsToStreamLink({
|
||||
username: onvifUsername,
|
||||
password: onvifPassword,
|
||||
url: cameraResponse.uri
|
||||
}),
|
||||
})).toString('base64');
|
||||
}catch(err){
|
||||
// s.debugLog(err)
|
||||
}
|
||||
}
|
||||
if(foundCameraCallback)foundCameraCallback(Object.assign(cameraResponse,{f: 'onvif', snapShot: imageSnap}))
|
||||
}catch(err){
|
||||
const searchError = (find) => {
|
||||
|
@ -156,7 +163,7 @@ module.exports = function(s,config,lang,app,io){
|
|||
port: camera.port,
|
||||
error: errorMessage
|
||||
});
|
||||
s.debugLog(err)
|
||||
// s.debugLog(err)
|
||||
}
|
||||
})
|
||||
return responseList
|
||||
|
|
|
@ -5,9 +5,11 @@
|
|||
<a href="#" class="btn btn-default" restart="system">
|
||||
<i class="fa fa-retweet"></i> <%- lang['Restart Core'] %>
|
||||
</a>
|
||||
<a href="#" class="btn btn-default" system="update">
|
||||
<i class="fa fa-retweet"></i> <%- lang['Update'] %>
|
||||
</a>
|
||||
<% if(!config.thisIsDocker){ %>
|
||||
<a href="#" class="btn btn-default" system="update">
|
||||
<i class="fa fa-retweet"></i> <%- lang['Update'] %>
|
||||
</a>
|
||||
<% } %>
|
||||
<a href="#" class="btn btn-default" restart="cron">
|
||||
<i class="fa fa-retweet"></i> <%- lang['Restart CRON'] %>
|
||||
</a>
|
||||
|
|
Loading…
Reference in New Issue