homebridge-unifi-protect 6.5.1 → 6.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -12
- package/config.schema.json +24 -3
- package/dist/protect-camera.d.ts +1 -2
- package/dist/protect-camera.js +21 -8
- package/dist/protect-camera.js.map +1 -1
- package/dist/protect-device.d.ts +1 -0
- package/dist/protect-device.js +33 -2
- package/dist/protect-device.js.map +1 -1
- package/dist/protect-ffmpeg-codecs.d.ts +19 -0
- package/dist/protect-ffmpeg-codecs.js +141 -0
- package/dist/protect-ffmpeg-codecs.js.map +1 -0
- package/dist/protect-ffmpeg-options.d.ts +20 -0
- package/dist/protect-ffmpeg-options.js +468 -0
- package/dist/protect-ffmpeg-options.js.map +1 -0
- package/dist/protect-ffmpeg-record.js +21 -24
- package/dist/protect-ffmpeg-record.js.map +1 -1
- package/dist/protect-ffmpeg-stream.d.ts +5 -2
- package/dist/protect-ffmpeg-stream.js +8 -11
- package/dist/protect-ffmpeg-stream.js.map +1 -1
- package/dist/protect-ffmpeg.d.ts +1 -4
- package/dist/protect-ffmpeg.js +23 -10
- package/dist/protect-ffmpeg.js.map +1 -1
- package/dist/protect-nvr-events.d.ts +0 -2
- package/dist/protect-nvr-events.js +36 -6
- package/dist/protect-nvr-events.js.map +1 -1
- package/dist/protect-nvr.js +17 -3
- package/dist/protect-nvr.js.map +1 -1
- package/dist/protect-options.d.ts +2 -0
- package/dist/protect-options.js +2 -1
- package/dist/protect-options.js.map +1 -1
- package/dist/protect-platform.d.ts +2 -3
- package/dist/protect-platform.js +11 -50
- package/dist/protect-platform.js.map +1 -1
- package/dist/protect-record.js +1 -1
- package/dist/protect-record.js.map +1 -1
- package/dist/protect-rtp.js +3 -1
- package/dist/protect-rtp.js.map +1 -1
- package/dist/protect-stream.d.ts +3 -8
- package/dist/protect-stream.js +14 -248
- package/dist/protect-stream.js.map +1 -1
- package/dist/protect-types.d.ts +0 -23
- package/dist/protect-types.js.map +1 -1
- package/dist/settings.d.ts +2 -0
- package/dist/settings.js +4 -0
- package/dist/settings.js.map +1 -1
- package/homebridge-ui/public/index.html +45 -10
- package/homebridge-ui/server.js +2 -0
- package/package.json +7 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protect-ffmpeg-options.js","sourceRoot":"","sources":["../src/protect-ffmpeg-options.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { FfmpegProcess } from "./protect-ffmpeg.js";
|
|
2
|
-
import { PROTECT_HOMEKIT_STREAMING_HEADROOM } from "./settings.js";
|
|
3
2
|
import { once } from "node:events";
|
|
4
3
|
// FFmpeg HomeKit Streaming Video recording process management.
|
|
5
4
|
export class FfmpegRecordingProcess extends FfmpegProcess {
|
|
@@ -15,44 +14,42 @@ export class FfmpegRecordingProcess extends FfmpegProcess {
|
|
|
15
14
|
// -nostats Suppress printing progress reports while encoding in FFmpeg.
|
|
16
15
|
this.commandLineArgs = [
|
|
17
16
|
"-hide_banner",
|
|
18
|
-
"-nostats"
|
|
17
|
+
"-nostats",
|
|
18
|
+
"-fflags", "+discardcorrupt+genpts"
|
|
19
19
|
];
|
|
20
20
|
// If we're timeshifting, read from the timeshift buffer.
|
|
21
21
|
if (protectCamera.hints.timeshift) {
|
|
22
22
|
// Configure our video parameters for our input:
|
|
23
23
|
//
|
|
24
|
-
// -fflags flags
|
|
25
|
-
// -r fps
|
|
26
|
-
// -f mp4
|
|
27
|
-
// -i pipe:0
|
|
28
|
-
this.commandLineArgs.push("-
|
|
24
|
+
// -fflags flags Set the format flags to generate a presentation timestamp if it's missing and discard any corrupt packets rather than exit.
|
|
25
|
+
// -r fps Set the input frame rate for the video stream.
|
|
26
|
+
// -f mp4 Tell ffmpeg that it should expect an MP4-encoded input stream.
|
|
27
|
+
// -i pipe:0 Use standard input to get video data.
|
|
28
|
+
this.commandLineArgs.push("-f", "mp4", "-r", rtspEntry.channel.fps.toString(), "-i", "pipe:0");
|
|
29
29
|
}
|
|
30
30
|
else {
|
|
31
31
|
// We're not using the timeshift buffer, so let's use the RTSP stream as the input to HKSV.
|
|
32
32
|
//
|
|
33
|
-
// -probesize amount
|
|
34
|
-
//
|
|
35
|
-
// -max_delay 500000
|
|
36
|
-
// -r fps
|
|
37
|
-
// -rtsp_transport tcp
|
|
38
|
-
// -i this.rtspEntry.url
|
|
39
|
-
this.commandLineArgs.push(...this.protectCamera.stream.
|
|
33
|
+
// -probesize amount How many bytes should be analyzed for stream information. We default to to analyze time should be spent analyzing
|
|
34
|
+
// the input stream.
|
|
35
|
+
// -max_delay 500000 Set an upper limit on how much time FFmpeg can take in demuxing packets.
|
|
36
|
+
// -r fps Set the input frame rate for the video stream.
|
|
37
|
+
// -rtsp_transport tcp Tell the RTSP stream handler that we're looking for a TCP connection.
|
|
38
|
+
// -i this.rtspEntry.url RTSPS URL to get our input stream from.
|
|
39
|
+
this.commandLineArgs.push(...this.protectCamera.stream.ffmpegOptions.videoDecoder, "-probesize", this.protectCamera.stream.probesize.toString(), "-max_delay", "500000", "-r", rtspEntry.channel.fps.toString(), "-rtsp_transport", "tcp", "-i", rtspEntry.url);
|
|
40
40
|
}
|
|
41
|
+
// Configure our recording options for the video stream:
|
|
42
|
+
//
|
|
41
43
|
// -map 0:v:0 Selects the first available video track from the stream. Protect actually maps audio
|
|
42
44
|
// and video tracks in opposite locations from where FFmpeg typically expects them. This
|
|
43
45
|
// setting is a more general solution than naming the track locations directly in case
|
|
44
46
|
// Protect changes this in the future.
|
|
45
47
|
// Yes, we included these above as well: they need to be included for every I/O stream to
|
|
46
48
|
// maximize effectiveness it seems.
|
|
47
|
-
// -g:v Set the group of pictures to the number of frames per second * the interval in between keyframes as HKSV requests it to be.
|
|
48
|
-
// -bufsize size This is the decoder buffer size, which drives the variability / quality of the output bitrate.
|
|
49
|
-
// -maxrate bitrate The maximum bitrate tolerance, used with -bufsize. We set this to max_bit_rate to effectively
|
|
50
|
-
// create a constant bitrate.
|
|
51
|
-
// -fflags flags Set format flags to generate a presentation timestamp if it's missing and discard any corrupt packets rather than exit.
|
|
52
49
|
// -reset_timestamps Reset timestamps at the beginning of each segment.
|
|
53
50
|
// -movflags flags In the generated fMP4 stream: start a new fragment at each keyframe, write a blank MOOV box, and
|
|
54
51
|
// avoid writing absolute offsets
|
|
55
|
-
this.commandLineArgs.push("-map", "0:v:0", ...this.protectCamera.stream.
|
|
52
|
+
this.commandLineArgs.push("-map", "0:v:0", ...this.protectCamera.stream.ffmpegOptions.recordEncoder(recordingConfig.videoCodec.resolution[0], recordingConfig.videoCodec.resolution[1], rtspEntry.channel.fps, recordingConfig.videoCodec.parameters.bitRate, recordingConfig.videoCodec.parameters.profile, recordingConfig.videoCodec.parameters.level, recordingConfig.videoCodec.parameters.iFrameInterval / 1000), "-reset_timestamps", "1", "-movflags", "frag_keyframe+empty_moov+default_base_moof");
|
|
56
53
|
if (isAudioActive) {
|
|
57
54
|
// Configure the audio portion of the command line. Options we use are:
|
|
58
55
|
//
|
|
@@ -68,7 +65,7 @@ export class FfmpegRecordingProcess extends FfmpegProcess {
|
|
|
68
65
|
// pipe:1 Output the stream to standard output.
|
|
69
66
|
this.commandLineArgs.push("-f", "mp4", "pipe:1");
|
|
70
67
|
// Additional logging, but only if we're debugging.
|
|
71
|
-
if (protectCamera.platform.verboseFfmpeg) {
|
|
68
|
+
if (this.protectCamera.platform.verboseFfmpeg) {
|
|
72
69
|
this.commandLineArgs.unshift("-loglevel", "level+verbose");
|
|
73
70
|
}
|
|
74
71
|
// Start the FFmpeg session.
|
|
@@ -85,7 +82,7 @@ export class FfmpegRecordingProcess extends FfmpegProcess {
|
|
|
85
82
|
let dataLength = 0;
|
|
86
83
|
let type = "";
|
|
87
84
|
// Process FFmpeg output and parse out the fMP4 stream it's generating for HomeKit Secure Video.
|
|
88
|
-
this.process?.stdout
|
|
85
|
+
this.process?.stdout.on("data", dataListener = (buffer) => {
|
|
89
86
|
// If we have anything left from the last buffer we processed, prepend it to this buffer.
|
|
90
87
|
if (bufferRemaining.length > 0) {
|
|
91
88
|
buffer = Buffer.concat([bufferRemaining, buffer]);
|
|
@@ -167,10 +164,10 @@ export class FfmpegRecordingProcess extends FfmpegProcess {
|
|
|
167
164
|
// Log errors.
|
|
168
165
|
logFfmpegError(exitCode, signal) {
|
|
169
166
|
// Known HKSV-related errors due to occasional inconsistencies in the Protect livestream API.
|
|
170
|
-
const ffmpegKnownHksvError = new RegExp("(Invalid data found when processing input)|(Could not write header for output file #0)");
|
|
167
|
+
const ffmpegKnownHksvError = new RegExp("(Invalid data found when processing input)|(Error splitting the input into NAL units\\.)|(Could not write header for output file #0)");
|
|
171
168
|
// See if we know about this error.
|
|
172
169
|
if (this.stderrLog.some(x => ffmpegKnownHksvError.test(x))) {
|
|
173
|
-
this.log.error("FFmpeg ended unexpectedly due to issues
|
|
170
|
+
this.log.error("FFmpeg ended unexpectedly due to issues processing the media stream provided by the UniFi Protect livestream API. " +
|
|
174
171
|
"This error can be safely ignored - they will occur occasionally.");
|
|
175
172
|
return;
|
|
176
173
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protect-ffmpeg-record.js","sourceRoot":"","sources":["../src/protect-ffmpeg-record.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"protect-ffmpeg-record.js","sourceRoot":"","sources":["../src/protect-ffmpeg-record.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,+DAA+D;AAC/D,MAAM,OAAO,sBAAuB,SAAQ,aAAa;IAKvD,wCAAwC;IACxC,YAAY,aAA4B,EAAE,eAA6C,EAAE,SAAoB,EAAE,aAAsB;QAEnI,yBAAyB;QACzB,KAAK,CAAC,aAAa,CAAC,CAAC;QAErB,yCAAyC;QACzC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAE5B,mCAAmC;QACnC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAE1B,mEAAmE;QACnE,gFAAgF;QAChF,IAAI,CAAC,eAAe,GAAG;YAErB,cAAc;YACd,UAAU;YACV,SAAS,EAAE,wBAAwB;SACpC,CAAC;QAEF,yDAAyD;QACzD,IAAG,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE;YAEhC,gDAAgD;YAChD,EAAE;YACF,0JAA0J;YAC1J,6EAA6E;YAC7E,6FAA6F;YAC7F,oEAAoE;YACpE,IAAI,CAAC,eAAe,CAAC,IAAI,CAEvB,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EACtC,IAAI,EAAE,QAAQ,CACf,CAAC;SAEH;aAAM;YAEL,2FAA2F;YAC3F,EAAE;YACF,gJAAgJ;YAChJ,gDAAgD;YAChD,uGAAuG;YACvG,6EAA6E;YAC7E,oGAAoG;YACpG,sEAAsE;YACtE,IAAI,CAAC,eAAe,CAAC,IAAI,CAEvB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,EACvD,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAC5D,YAAY,EAAE,QAAQ,EACtB,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EACtC,iBAAiB,EAAE,KAAK,EACxB,IAAI,EAAE,SAAS,CAAC,GAAG,CACpB,CAAC;SAEH;QAED,wDAAwD;QACxD,EAAE;QACF,qHAAqH;QACrH,sHAAsH;QACtH,oHAAoH;QACpH,oEAAoE;QACpE,uHAAuH;QACvH,iEAAiE;QACjE,mFAAmF;QACnF,iIAAiI;QACjI,+DAA+D;QAC/D,IAAI,CAAC,eAAe,CAAC,IAAI,CAEvB,MAAM,EAAE,OAAO,EACf,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EACzI,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,EACpE,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAC1F,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,EAC9D,mBAAmB,EAAE,GAAG,EACxB,WAAW,EAAE,4CAA4C,CAC1D,CAAC;QAEF,IAAG,aAAa,EAAE;YAEhB,uEAAuE;YACvE,EAAE;YACF,8JAA8J;YAC9J,mKAAmK;YACnK,0EAA0E;YAC1E,qEAAqE;YACrE,IAAI,CAAC,eAAe,CAAC,IAAI,CAEvB,MAAM,EAAE,QAAQ,EAChB,SAAS,EAAE,MAAM,CAClB,CAAC;SACH;QAED,kEAAkE;QAClE,EAAE;QACF,0EAA0E;QAC1E,gDAAgD;QAChD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEjD,mDAAmD;QACnD,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,EAAE;YAE5C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SAC5D;QAED,4BAA4B;QAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,wCAAwC;IAC9B,gBAAgB;QAExB,IAAI,YAAsC,CAAC;QAE3C,kCAAkC;QAClC,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAEzB,4EAA4E;QAC5E,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,gGAAgG;QAChG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,GAAG,CAAC,MAAc,EAAQ,EAAE;YAEtE,yFAAyF;YACzF,IAAG,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;gBAE7B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;gBAClD,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACnC;YAED,IAAI,MAAM,GAAG,CAAC,CAAC;YAEf,uGAAuG;YACvG,4GAA4G;YAC5G,6GAA6G;YAC7G,qDAAqD;YACrD,SAAQ;gBAEN,IAAI,IAAI,CAAC;gBAET,+GAA+G;gBAC/G,4HAA4H;gBAC5H,cAAc;gBAEd,6CAA6C;gBAC7C,IAAG,CAAC,MAAM,CAAC,MAAM,EAAE;oBAEjB,2HAA2H;oBAC3H,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAE5B,gIAAgI;oBAChI,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAExC,qHAAqH;oBACrH,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAElC,+CAA+C;oBAC/C,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;oBACvC,MAAM,GAAG,CAAC,CAAC;iBACZ;qBAAM;oBAEL,iCAAiC;oBACjC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;oBACnC,MAAM,GAAG,CAAC,CAAC;iBACZ;gBAED,iHAAiH;gBACjH,IAAG,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE;oBAE3B,eAAe,GAAG,IAAI,CAAC;oBACvB,MAAM;iBACP;gBAED,kFAAkF;gBAClF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1F,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEpB,6EAA6E;gBAC7E,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,GAAG,EAAE,CAAC;gBAEV,gFAAgF;gBAChF,IAAG,MAAM,CAAC,MAAM,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE;oBAE1C,UAAU,GAAG,CAAC,CAAC;oBACf,MAAM;iBACP;gBAED,2FAA2F;gBAC3F,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;gBAC3C,UAAU,GAAG,CAAC,CAAC;aAChB;QACH,CAAC,CAAC,CAAC;QAEH,sDAAsD;QACtD,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;YAE9B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uDAAuD;IAC7C,WAAW;QAEnB,kCAAkC;QAClC,KAAK,CAAC,WAAW,EAAE,CAAC;QAEpB,kFAAkF;QAClF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAED,sCAAsC;IAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe;QAE1C,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAE5C,wEAAwE;QACxE,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAEjC,qCAAqC;QACrC,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,sCAAsC;QACtC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IACxC,CAAC;IAED,cAAc;IACJ,cAAc,CAAC,QAAgB,EAAE,MAAsB;QAE/D,6FAA6F;QAC7F,MAAM,oBAAoB,GAAG,IAAI,MAAM,CACrC,sIAAsI,CACvI,CAAC;QAEF,mCAAmC;QACnC,IAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YAEzD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oHAAoH;gBACjI,kEAAkE,CAAC,CAAC;YACtE,OAAO;SACR;QAED,0DAA0D;QAC1D,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,iGAAiG;IAC1F,KAAK,CAAC,CAAC,gBAAgB;QAE5B,IAAI,OAAO,GAAa,EAAE,CAAC;QAE3B,uGAAuG;QACvG,SAAQ;YAEN,gDAAgD;YAChD,IAAG,IAAI,CAAC,OAAO,EAAE;gBAEf,OAAO;aACR;YAED,6EAA6E;YAC7E,IAAG,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;gBAE/B,4CAA4C;gBAC5C,MAAM,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aAC5B;YAED,0CAA0C;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAEzC,kCAAkC;YAClC,IAAG,CAAC,GAAG,EAAE;gBAEP,SAAS;aACV;YAED,kDAAkD;YAClD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAEnC,0FAA0F;YAC1F,EAAE;YACF,wFAAwF;YACxF,4FAA4F;YAC5F,UAAU;YACV,EAAE;YACF,gIAAgI;YAChI,4GAA4G;YAC5G,EAAE;YACF,uFAAuF;YACvF,IAAG,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE;gBAEjD,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC7B,OAAO,GAAG,EAAE,CAAC;aACd;SACF;IACH,CAAC;CACF"}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
|
-
import { FfmpegProcess, PortInterface } from "./protect-ffmpeg.js";
|
|
4
3
|
import { ChildProcessWithoutNullStreams } from "child_process";
|
|
4
|
+
import { FfmpegProcess } from "./protect-ffmpeg.js";
|
|
5
5
|
import { ProtectStreamingDelegate } from "./protect-stream.js";
|
|
6
6
|
import { StreamRequestCallback } from "homebridge";
|
|
7
7
|
export declare class FfmpegStreamingProcess extends FfmpegProcess {
|
|
8
8
|
private delegate;
|
|
9
9
|
private sessionId;
|
|
10
10
|
private streamTimeout?;
|
|
11
|
-
constructor(delegate: ProtectStreamingDelegate, sessionId: string, commandLineArgs: string[], returnPort?:
|
|
11
|
+
constructor(delegate: ProtectStreamingDelegate, sessionId: string, commandLineArgs: string[], returnPort?: {
|
|
12
|
+
addressVersion: string;
|
|
13
|
+
port: number;
|
|
14
|
+
}, callback?: StreamRequestCallback);
|
|
12
15
|
private createSocket;
|
|
13
16
|
get ffmpegProcess(): ChildProcessWithoutNullStreams | null;
|
|
14
17
|
protected logFfmpegError(exitCode: number, signal: NodeJS.Signals): void;
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/* Copyright(C) 2017-2023, HJD (https://github.com/hjdhjd). All rights reserved.
|
|
2
|
-
*
|
|
3
|
-
* protect-ffmpeg-stream.ts: Provide FFmpeg process control to support HomeKit livestreaming.
|
|
4
|
-
*
|
|
5
|
-
*/
|
|
6
1
|
import { FfmpegProcess } from "./protect-ffmpeg.js";
|
|
7
2
|
import { createSocket } from "node:dgram";
|
|
8
3
|
// FFmpeg streaming process management.
|
|
@@ -73,13 +68,15 @@ export class FfmpegStreamingProcess extends FfmpegProcess {
|
|
|
73
68
|
}
|
|
74
69
|
// Log errors.
|
|
75
70
|
logFfmpegError(exitCode, signal) {
|
|
71
|
+
const probesizeRegex = new RegExp("not enough frames to estimate rate; consider increasing probesize");
|
|
76
72
|
// Known streaming-related errors due to the performance and latency tweaks we've made to the FFmpeg command line.
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
73
|
+
for (const line of this.stderrLog) {
|
|
74
|
+
// Test for probesize errors.
|
|
75
|
+
if (probesizeRegex.test(line)) {
|
|
76
|
+
// Let the streaming delegate know to adjust it's parameters for the next run and inform the user.
|
|
77
|
+
this.delegate.adjustProbeSize();
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
83
80
|
}
|
|
84
81
|
// Otherwise, revert to our default logging in our parent.
|
|
85
82
|
super.logFfmpegError(exitCode, signal);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protect-ffmpeg-stream.js","sourceRoot":"","sources":["../src/protect-ffmpeg-stream.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"protect-ffmpeg-stream.js","sourceRoot":"","sources":["../src/protect-ffmpeg-stream.ts"],"names":[],"mappings":"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"}
|
package/dist/protect-ffmpeg.d.ts
CHANGED
|
@@ -9,10 +9,6 @@ import { EventEmitter } from "node:events";
|
|
|
9
9
|
import { ProtectLogging } from "./protect-types.js";
|
|
10
10
|
import { ProtectNvr } from "./protect-nvr.js";
|
|
11
11
|
import { StreamRequestCallback } from "homebridge";
|
|
12
|
-
export interface PortInterface {
|
|
13
|
-
addressVersion: string;
|
|
14
|
-
port: number;
|
|
15
|
-
}
|
|
16
12
|
export declare class FfmpegProcess extends EventEmitter {
|
|
17
13
|
protected callback: StreamRequestCallback | null;
|
|
18
14
|
protected commandLineArgs: string[];
|
|
@@ -27,6 +23,7 @@ export declare class FfmpegProcess extends EventEmitter {
|
|
|
27
23
|
protected readonly nvr: ProtectNvr;
|
|
28
24
|
protected process: ChildProcessWithoutNullStreams | null;
|
|
29
25
|
protected protectCamera: ProtectCamera | ProtectPackageCamera;
|
|
26
|
+
private stderrBuffer;
|
|
30
27
|
protected stderrLog: string[];
|
|
31
28
|
constructor(protectCamera: ProtectCamera | ProtectPackageCamera, commandLineArgs?: string[], callback?: StreamRequestCallback);
|
|
32
29
|
protected prepareProcess(commandLineArgs?: string[], callback?: StreamRequestCallback): void;
|
package/dist/protect-ffmpeg.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { spawn } from "node:child_process";
|
|
8
8
|
import { EventEmitter } from "node:events";
|
|
9
|
+
import os from "node:os";
|
|
9
10
|
import util from "node:util";
|
|
10
11
|
// Base class for all FFmpeg process management.
|
|
11
12
|
export class FfmpegProcess extends EventEmitter {
|
|
@@ -24,6 +25,7 @@ export class FfmpegProcess extends EventEmitter {
|
|
|
24
25
|
this.nvr = protectCamera.nvr;
|
|
25
26
|
this.process = null;
|
|
26
27
|
this.protectCamera = protectCamera;
|
|
28
|
+
this.stderrBuffer = "";
|
|
27
29
|
this.stderrLog = [];
|
|
28
30
|
// Toggle FFmpeg logging, if configured.
|
|
29
31
|
this.isVerbose = protectCamera.platform.verboseFfmpeg || protectCamera.stream.verboseFfmpeg;
|
|
@@ -117,17 +119,23 @@ export class FfmpegProcess extends EventEmitter {
|
|
|
117
119
|
this.callback = null;
|
|
118
120
|
}
|
|
119
121
|
}
|
|
122
|
+
// Append to the current line we've been buffering. We don't want to output not-printable characters to ensure the log output is readable.
|
|
123
|
+
this.stderrBuffer += data.toString().replace(/\p{C}+/gu, os.EOL);
|
|
120
124
|
// Debugging and additional logging collection.
|
|
121
|
-
for (
|
|
122
|
-
//
|
|
123
|
-
const
|
|
124
|
-
//
|
|
125
|
-
if (
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
125
|
+
for (;;) {
|
|
126
|
+
// Find the next newline.
|
|
127
|
+
const lineIndex = this.stderrBuffer.indexOf(os.EOL);
|
|
128
|
+
// If there's no newline, we're done until we get more data.
|
|
129
|
+
if (lineIndex === -1) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
// Grab the next complete line, and increment our buffer.
|
|
133
|
+
const line = this.stderrBuffer.slice(0, lineIndex);
|
|
134
|
+
this.stderrBuffer = this.stderrBuffer.slice(lineIndex + os.EOL.length);
|
|
135
|
+
this.stderrLog.push(line);
|
|
136
|
+
// Show it to the user if it's been requested.
|
|
137
|
+
if (this.isLogging || this.isVerbose || this.protectCamera.platform.config.debugAll) {
|
|
138
|
+
this.log.info(line);
|
|
131
139
|
}
|
|
132
140
|
}
|
|
133
141
|
});
|
|
@@ -152,6 +160,11 @@ export class FfmpegProcess extends EventEmitter {
|
|
|
152
160
|
else {
|
|
153
161
|
// Flag that we've run into an FFmpeg error.
|
|
154
162
|
this.hasError = true;
|
|
163
|
+
// Flush out any remaining output in our error buffer.
|
|
164
|
+
if (this.stderrBuffer.length) {
|
|
165
|
+
this.stderrLog.push(this.stderrBuffer + "\n");
|
|
166
|
+
this.stderrBuffer = "";
|
|
167
|
+
}
|
|
155
168
|
// Inform the user.
|
|
156
169
|
this.logFfmpegError(exitCode, signal);
|
|
157
170
|
// Execute our error handler, if one is provided.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protect-ffmpeg.js","sourceRoot":"","sources":["../src/protect-ffmpeg.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAkC,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"protect-ffmpeg.js","sourceRoot":"","sources":["../src/protect-ffmpeg.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAkC,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,gDAAgD;AAChD,MAAM,OAAO,aAAc,SAAQ,YAAY;IAkB7C,wCAAwC;IACxC,YAAY,aAAmD,EAAE,eAA0B,EAAE,QAAgC;QAE3H,yBAAyB;QACzB,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,wCAAwC;QACxC,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC;QAE5F,oEAAoE;QACpE,IAAG,eAAe,EAAE;YAElB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SACxC;QAED,IAAG,QAAQ,EAAE;YAEX,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC1B;IACH,CAAC;IAED,wCAAwC;IAC9B,cAAc,CAAC,eAA0B,EAAE,QAAgC;QAEnF,sEAAsE;QACtE,IAAG,eAAe,EAAE;YAElB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SACxC;QAED,0CAA0C;QAC1C,IAAG,CAAC,IAAI,CAAC,eAAe,EAAE;YAExB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACpD,OAAO;SACR;QAED,qCAAqC;QACrC,IAAG,QAAQ,EAAE;YAEX,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC1B;QAED,kDAAkD;QAClD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,0CAA0C;QAC1C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,2DAA2D;QAC3D,IAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE;YAEnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;QAED,iDAAiD;QACjD,IAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE;YAElF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SAC3H;aAAM;YAEL,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5H;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,4BAA4B;IAClB,KAAK,CAAC,eAA0B,EAAE,QAAgC,EAAE,YAAsD;QAElI,wDAAwD;QACxD,IAAG,CAAC,IAAI,CAAC,UAAU,EAAE;YAEnB,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;YAE/C,IAAG,CAAC,IAAI,CAAC,UAAU,EAAE;gBAEnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBACjD,OAAO;aACR;SACF;QAED,yDAAyD;QACzD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAE9F,yDAAyD;QACzD,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,8CAA8C;IACpC,gBAAgB,CAAC,YAAsD;QAE/E,IAAI,YAAoC,CAAC;QACzC,IAAI,aAAqC,CAAC;QAE1C,kFAAkF;QAClF,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YAE3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAE7D,iDAAiD;YACjD,IAAG,YAAY,EAAE;gBAEf,KAAK,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;aACtD;QACH,CAAC,CAAC,CAAC;QAEH,0BAA0B;QAC1B,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,aAAa,GAAG,CAAC,KAAY,EAAQ,EAAE;YAEtE,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBAEnC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;aACpD;QAEH,CAAC,CAAC,CAAC;QAEH,kDAAkD;QAClD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,YAAY,GAAG,CAAC,IAAY,EAAQ,EAAE;YAErE,iGAAiG;YACjG,kGAAkG;YAClG,gEAAgE;YAChE,IAAG,CAAC,IAAI,CAAC,SAAS,EAAE;gBAElB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAC5C,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAE3B,mGAAmG;gBACnG,IAAG,IAAI,CAAC,QAAQ,EAAE;oBAEhB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACtB;aACF;YAED,0IAA0I;YAC1I,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YAEjE,+CAA+C;YAC/C,SAAQ;gBAEN,yBAAyB;gBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBAEpD,4DAA4D;gBAC5D,IAAG,SAAS,KAAK,CAAC,CAAC,EAAE;oBAEnB,OAAO;iBACR;gBAED,yDAAyD;gBACzD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAEvE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAE1B,8CAA8C;gBAC9C,IAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE;oBAElF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACrB;aACF;QACH,CAAC,CAAC,CAAC;QAEH,kCAAkC;QAClC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAgB,EAAE,MAAsB,EAAE,EAAE;YAEtE,wBAAwB;YACxB,IAAG,IAAI,CAAC,aAAa,EAAE;gBAErB,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aAClC;YAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,uCAAuC;YACvC,MAAM,SAAS,GAAG,uBAAuB,CAAC;YAE1C,mFAAmF;YACnF,IAAG,IAAI,CAAC,aAAa,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAEvC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC;aACzC;iBAAM,IAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;gBAE7E,wGAAwG;gBACxG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;aAClF;iBAAM;gBAEL,4CAA4C;gBAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAErB,sDAAsD;gBACtD,IAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;oBAE3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;oBAC9C,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;iBACxB;gBAED,mBAAmB;gBACnB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAEtC,iDAAiD;gBACjD,IAAG,YAAY,EAAE;oBAEf,KAAK,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,gDAAgD,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;iBACjJ;aACF;YAED,2BAA2B;YAC3B,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAC5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC3D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+DAA+D;IACrD,WAAW;QAEnB,sFAAsF;QACtF,IAAG,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAE3C,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC9B;QAED,8BAA8B;QAC9B,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAE/B,sEAAsE;QACtE,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;YAEnC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,sBAAsB;QACtB,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,4BAA4B;IACrB,IAAI;QAET,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,6CAA6C;IACnC,cAAc,CAAC,QAAgB,EAAE,MAAsB;QAE/D,qEAAqE;QACrE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gDAAgD,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAClI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,uBAAuB,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAElG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iDAAiD,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACrJ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,8CAA8C;IAC9C,IAAW,KAAK;QAEd,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,+CAA+C;IAC/C,IAAW,MAAM;QAEf,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC;IACtC,CAAC;IAED,8CAA8C;IAC9C,IAAW,MAAM;QAEf,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC;IACtC,CAAC;CACF"}
|
|
@@ -9,14 +9,12 @@ export declare class ProtectNvrEvents extends EventEmitter {
|
|
|
9
9
|
private lastMotion;
|
|
10
10
|
private lastRing;
|
|
11
11
|
private log;
|
|
12
|
-
private motionDuration;
|
|
13
12
|
private mqttPublishTelemetry;
|
|
14
13
|
private nvr;
|
|
15
14
|
private readonly eventTimers;
|
|
16
15
|
private ufpApi;
|
|
17
16
|
private ufpDeviceState;
|
|
18
17
|
private platform;
|
|
19
|
-
private ringDuration;
|
|
20
18
|
private unsupportedDevices;
|
|
21
19
|
private eventsHandler;
|
|
22
20
|
private ufpUpdatesHandler;
|
|
@@ -14,9 +14,7 @@ export class ProtectNvrEvents extends EventEmitter {
|
|
|
14
14
|
this.nvr = nvr;
|
|
15
15
|
this.ufpApi = nvr.ufpApi;
|
|
16
16
|
this.ufpDeviceState = {};
|
|
17
|
-
this.motionDuration = nvr.platform.config.motionDuration;
|
|
18
17
|
this.platform = nvr.platform;
|
|
19
|
-
this.ringDuration = nvr.platform.config.ringDuration;
|
|
20
18
|
this.unsupportedDevices = {};
|
|
21
19
|
this.eventsHandler = null;
|
|
22
20
|
this.ufpUpdatesHandler = null;
|
|
@@ -215,7 +213,7 @@ export class ProtectNvrEvents extends EventEmitter {
|
|
|
215
213
|
this.nvr.mqtt?.publish(protectDevice.accessory, "motion", "false");
|
|
216
214
|
// Delete the timer from our motion event tracker.
|
|
217
215
|
delete this.eventTimers[protectDevice.ufp.mac];
|
|
218
|
-
}, this.motionDuration * 1000);
|
|
216
|
+
}, this.nvr.platform.config.motionDuration * 1000);
|
|
219
217
|
}
|
|
220
218
|
// Reset our smart motion contact sensors after motionDuration.
|
|
221
219
|
if (!this.eventTimers[protectDevice.ufp.mac + ".Motion.SmartDetect.ObjectSensors"]) {
|
|
@@ -232,7 +230,39 @@ export class ProtectNvrEvents extends EventEmitter {
|
|
|
232
230
|
}
|
|
233
231
|
// Delete the timer from our motion event tracker.
|
|
234
232
|
delete this.eventTimers[protectDevice.ufp.mac + ".Motion.SmartDetect.ObjectSensors"];
|
|
235
|
-
}, this.motionDuration * 1000);
|
|
233
|
+
}, this.nvr.platform.config.motionDuration * 1000);
|
|
234
|
+
}
|
|
235
|
+
// If we don't have smart motion detection enabled, or if we do have it enabled and we have a smart motion event that's detected a person,
|
|
236
|
+
// let's process our occupancy event updates.
|
|
237
|
+
if (!protectDevice.hints.smartDetect || (protectDevice.hints.smartDetect && detectedObjects.includes("person"))) {
|
|
238
|
+
// First, let's determine if the user has an occupancy sensor configured, before we process anything.
|
|
239
|
+
const occupancyService = protectDevice.accessory.getService(this.hap.Service.OccupancySensor);
|
|
240
|
+
if (occupancyService) {
|
|
241
|
+
// Kill any inflight reset timer.
|
|
242
|
+
if (this.eventTimers[protectDevice.ufp.mac + ".Motion.OccupancySensor"]) {
|
|
243
|
+
clearTimeout(this.eventTimers[protectDevice.ufp.mac + ".Motion.OccupancySensor"]);
|
|
244
|
+
}
|
|
245
|
+
// If the occupancy sensor isn't already triggered, let's do so now.
|
|
246
|
+
if (occupancyService.getCharacteristic(this.hap.Characteristic.OccupancyDetected).value !== true) {
|
|
247
|
+
// Trigger the occupancy event in HomeKit.
|
|
248
|
+
occupancyService.updateCharacteristic(this.hap.Characteristic.OccupancyDetected, true);
|
|
249
|
+
// Publish the occupancy event to MQTT, if the user has configured it.
|
|
250
|
+
this.nvr.mqtt?.publish(protectDevice.accessory, "occupancy", "true");
|
|
251
|
+
// Log the event, if configured to do so.
|
|
252
|
+
if (protectDevice.hints.logMotion) {
|
|
253
|
+
protectDevice.log.info("Occupancy detected.");
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
// Reset our occupancy state after occupancyDuration.
|
|
257
|
+
this.eventTimers[protectDevice.ufp.mac + ".Motion.OccupancySensor"] = setTimeout(() => {
|
|
258
|
+
// Reset the occupancy sensor.
|
|
259
|
+
occupancyService.updateCharacteristic(this.hap.Characteristic.OccupancyDetected, false);
|
|
260
|
+
// Publish to MQTT, if the user has configured it.
|
|
261
|
+
this.nvr.mqtt?.publish(protectDevice.accessory, "occupancy", "false");
|
|
262
|
+
// Delete the timer from our motion event tracker.
|
|
263
|
+
delete this.eventTimers[protectDevice.ufp.mac];
|
|
264
|
+
}, this.nvr.platform.config.occupancyDuration * 1000);
|
|
265
|
+
}
|
|
236
266
|
}
|
|
237
267
|
}
|
|
238
268
|
// Doorbell event processing from UniFi Protect and delivered to HomeKit.
|
|
@@ -277,7 +307,7 @@ export class ProtectNvrEvents extends EventEmitter {
|
|
|
277
307
|
this.log.debug("Resetting doorbell ring trigger.");
|
|
278
308
|
// Delete the timer from our motion event tracker.
|
|
279
309
|
delete this.eventTimers[protectDevice.ufp.mac + ".Doorbell.Ring.Trigger"];
|
|
280
|
-
}, this.ringDuration * 1000);
|
|
310
|
+
}, this.nvr.platform.config.ringDuration * 1000);
|
|
281
311
|
}
|
|
282
312
|
// Publish to MQTT, if the user has configured it.
|
|
283
313
|
this.nvr.mqtt?.publish(protectDevice.accessory, "doorbell", "true");
|
|
@@ -294,7 +324,7 @@ export class ProtectNvrEvents extends EventEmitter {
|
|
|
294
324
|
this.nvr.mqtt?.publish(protectDevice.accessory, "doorbell", "false");
|
|
295
325
|
// Delete the timer from our event tracker.
|
|
296
326
|
delete this.eventTimers[protectDevice.ufp.mac + ".Doorbell.Ring"];
|
|
297
|
-
}, this.ringDuration * 1000);
|
|
327
|
+
}, this.nvr.platform.config.ringDuration * 1000);
|
|
298
328
|
}
|
|
299
329
|
}
|
|
300
330
|
//# sourceMappingURL=protect-nvr-events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protect-nvr-events.js","sourceRoot":"","sources":["../src/protect-nvr-events.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"protect-nvr-events.js","sourceRoot":"","sources":["../src/protect-nvr-events.ts"],"names":[],"mappings":"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"}
|
package/dist/protect-nvr.js
CHANGED
|
@@ -328,7 +328,17 @@ export class ProtectNvr {
|
|
|
328
328
|
// We only store MAC addresses on devices that exist on the Protect controller. Any other accessories created are ones we created ourselves
|
|
329
329
|
// and are managed elsewhere.
|
|
330
330
|
if (!("mac" in accessory.context)) {
|
|
331
|
-
|
|
331
|
+
// If it's not a package camera, we're done.
|
|
332
|
+
if (!("packageCamera" in accessory.context)) {
|
|
333
|
+
continue;
|
|
334
|
+
}
|
|
335
|
+
if (accessory.context.packageCamera.length) {
|
|
336
|
+
const uuid = this.hap.uuid.generate(accessory.context.packageCamera);
|
|
337
|
+
// If we have a matching parent camera for the package camera, we're done here. Otherwise, this is an orphan that we need to remove.
|
|
338
|
+
if (this.platform.accessories.some(x => x.UUID === uuid)) {
|
|
339
|
+
continue;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
332
342
|
}
|
|
333
343
|
this.log.info("%s: Removing device from HomeKit.", accessory.displayName);
|
|
334
344
|
// Unregister the accessory and delete it's remnants from HomeKit.
|
|
@@ -376,7 +386,7 @@ export class ProtectNvr {
|
|
|
376
386
|
this.removeHomeKitDevice(this.configuredDevices[accessory.UUID]);
|
|
377
387
|
}
|
|
378
388
|
}
|
|
379
|
-
//
|
|
389
|
+
// Remove an individual Protect device from HomeKit.
|
|
380
390
|
removeHomeKitDevice(protectDevice) {
|
|
381
391
|
// Sanity check.
|
|
382
392
|
if (!protectDevice) {
|
|
@@ -388,7 +398,11 @@ export class ProtectNvr {
|
|
|
388
398
|
}
|
|
389
399
|
// Package cameras are handled elsewhere.
|
|
390
400
|
if ("packageCamera" in protectDevice.accessory.context) {
|
|
391
|
-
|
|
401
|
+
const uuid = this.hap.uuid.generate(protectDevice.accessory.context.packageCamera);
|
|
402
|
+
// If we have a matching parent camera, we're done here. Otherwise, this is an orphan that we need to remove.
|
|
403
|
+
if (this.platform.accessories.some(x => x.UUID === uuid)) {
|
|
404
|
+
return;
|
|
405
|
+
}
|
|
392
406
|
}
|
|
393
407
|
// The NVR system information accessory is handled elsewhere.
|
|
394
408
|
if ("systemInfo" in protectDevice.accessory.context) {
|