homebridge-unifi-protect 5.3.0 → 5.3.4

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.
@@ -76,31 +76,31 @@ class ProtectAccessory extends ProtectBase {
76
76
  // Configure the Protect motion sensor for HomeKit.
77
77
  configureMotionSensor(isEnabled = true) {
78
78
  var _a, _b;
79
- const accessory = this.accessory;
80
- const hap = this.hap;
81
79
  // Find the motion sensor service, if it exists.
82
- let motionService = accessory.getService(hap.Service.MotionSensor);
80
+ let motionService = this.accessory.getService(this.hap.Service.MotionSensor);
83
81
  // Have we disabled motion sensors?
84
- if (!isEnabled || !((_a = this.nvr) === null || _a === void 0 ? void 0 : _a.optionEnabled(accessory.context.device, "Motion.Sensor"))) {
82
+ if (!isEnabled || !((_a = this.nvr) === null || _a === void 0 ? void 0 : _a.optionEnabled(this.accessory.context.device, "Motion.Sensor"))) {
85
83
  if (motionService) {
86
- accessory.removeService(motionService);
87
- (_b = this.nvr.mqtt) === null || _b === void 0 ? void 0 : _b.unsubscribe(accessory, "motion/trigger");
84
+ this.accessory.removeService(motionService);
85
+ (_b = this.nvr.mqtt) === null || _b === void 0 ? void 0 : _b.unsubscribe(this.accessory, "motion/trigger");
88
86
  this.log.info("%s: Disabling motion sensor.", this.name());
89
87
  }
90
88
  return false;
91
89
  }
92
90
  // The motion sensor has already been configured.
93
91
  if (motionService) {
92
+ // Initialize the state of the motion sensor.
93
+ motionService.updateCharacteristic(this.hap.Characteristic.MotionDetected, false);
94
94
  this.configureMqttMotionTrigger();
95
95
  return true;
96
96
  }
97
97
  // We don't have it, add the motion sensor to the camera.
98
- motionService = new hap.Service.MotionSensor(accessory.displayName);
98
+ motionService = new this.hap.Service.MotionSensor(this.accessory.displayName);
99
99
  if (!motionService) {
100
100
  this.log.error("%s: Unable to add motion sensor.", this.name());
101
101
  return false;
102
102
  }
103
- accessory.addService(motionService);
103
+ this.accessory.addService(motionService);
104
104
  this.configureMqttMotionTrigger();
105
105
  this.log.info("%s: Enabling motion sensor.", this.name());
106
106
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"protect-accessory.js","sourceRoot":"","sources":["../src/protect-accessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protect-accessory.js","sourceRoot":"","sources":["../src/protect-accessory.ts"],"names":[],"mappings":"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"}
@@ -38,8 +38,8 @@ class ProtectCamera extends protect_accessory_1.ProtectAccessory {
38
38
  this.accessory.context.nvr = (_a = this.nvr.nvrApi.bootstrap) === null || _a === void 0 ? void 0 : _a.nvr.mac;
39
39
  this.accessory.context.detectMotion = detectMotion;
40
40
  this.accessory.context.hksvRecording = hksvRecording;
41
- // Inform the user if we have disabled dynamic bitrates.
42
- if ((_b = this.nvr) === null || _b === void 0 ? void 0 : _b.optionEnabled(this.accessory.context.device, "Video.Dynamic.Bitrates")) {
41
+ // Inform the user if we have enabled dynamic bitrates.
42
+ if ((_b = this.nvr) === null || _b === void 0 ? void 0 : _b.optionEnabled(this.accessory.context.device, "Video.Dynamic.Bitrates", false)) {
43
43
  this.log.info("%s: Dynamic adjustment of bitrates using the UniFi Protect controller enabled.", this.name());
44
44
  }
45
45
  // If the camera supports it, check to see if we have smart motion events enabled.
@@ -67,9 +67,9 @@ class ProtectCamera extends protect_accessory_1.ProtectAccessory {
67
67
  this.configureMotionSmartSensor();
68
68
  // Configure two-way audio support.
69
69
  this.configureTwoWayAudio();
70
- // Configure HomeKit Secure Video.
70
+ // Configure HomeKit Secure Video suport.
71
71
  this.configureHksv();
72
- this.configureHksvSwitch();
72
+ this.configureHksvRecordingSwitch();
73
73
  // Configure our video stream.
74
74
  await this.configureVideoStream();
75
75
  // Configure our camera details.
@@ -495,7 +495,7 @@ class ProtectCamera extends protect_accessory_1.ProtectAccessory {
495
495
  return true;
496
496
  }
497
497
  // Configure a switch to manually enable or disable HKSV recording for a camera.
498
- configureHksvSwitch() {
498
+ configureHksvRecordingSwitch() {
499
499
  var _a, _b, _c;
500
500
  // Find the switch service, if it exists.
501
501
  let switchService = this.accessory.getServiceById(this.hap.Service.Switch, protect_accessory_1.PROTECT_SWITCH_HKSV_RECORDING);
@@ -511,7 +511,7 @@ class ProtectCamera extends protect_accessory_1.ProtectAccessory {
511
511
  }
512
512
  // Add the switch to the camera, if needed.
513
513
  if (!switchService) {
514
- switchService = new this.hap.Service.Switch(this.accessory.displayName + " Recording", protect_accessory_1.PROTECT_SWITCH_HKSV_RECORDING);
514
+ switchService = new this.hap.Service.Switch(this.accessory.displayName + " HKSV Recording", protect_accessory_1.PROTECT_SWITCH_HKSV_RECORDING);
515
515
  if (!switchService) {
516
516
  this.log.error("%s: Unable to add the HomeKit Secure Video recording switch.", this.name());
517
517
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"protect-camera.js","sourceRoot":"","sources":["../src/protect-camera.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protect-camera.js","sourceRoot":"","sources":["../src/protect-camera.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FfmpegRecordingProcess = void 0;
4
+ const protect_ffmpeg_1 = require("./protect-ffmpeg");
5
+ // FFmpeg HomeKit Streaming Video recording process management.
6
+ class FfmpegRecordingProcess extends protect_ffmpeg_1.FfmpegProcess {
7
+ // Create a new FFmpeg process instance.
8
+ constructor(device, recordingConfig, isAudioActive) {
9
+ // Initialize our parent.
10
+ super(device);
11
+ // Initialize our recording buffer.
12
+ this.recordingBuffer = [];
13
+ // Determine which H.264 profile HomeKit is expecting from us.
14
+ const requestedProfile = (recordingConfig.videoCodec.parameters.profile === 2 /* HIGH */) ? "high"
15
+ : (recordingConfig.videoCodec.parameters.profile === 1 /* MAIN */) ? "main" : "baseline";
16
+ const requestedLevel = (recordingConfig.videoCodec.parameters.level === 2 /* LEVEL4_0 */) ? "4.0"
17
+ : (recordingConfig.videoCodec.parameters.level === 1 /* LEVEL3_2 */) ? "3.2" : "3.1";
18
+ // Configure our video parameters for transcoding:
19
+ //
20
+ // -hide_banner: Suppress printing the startup banner in FFmpeg.
21
+ // -f mp4 Tell ffmpeg that it should expect an MP4-encoded input stream.
22
+ // -i pipe:0 Use standard input to get video data.
23
+ // -map 0:v Selects the first available video track from the stream. Protect actually maps audio
24
+ // and video tracks in opposite locations from where FFmpeg typically expects them. This
25
+ // setting is a more general solution than naming the track locations directly in case
26
+ // Protect changes this in the future.
27
+ // -vcodec libx264 Copy the stream withour reencoding it.
28
+ // -pix_fmt yuvj420p Use the yuvj420p pixel format, which is what Protect uses.
29
+ // -profile:v high Use the H.264 high profile when encoding, which provides for better stream quality and size efficiency.
30
+ // -preset veryfast Use the veryfast encoding preset in libx264, which provides a good balance of encoding speed and quality.
31
+ // -b:v bitrate The average bitrate to use for this stream. This is specified by HomeKit Secure Video.
32
+ // -bufsize size This is the decoder buffer size, which drives the variability / quality of the output bitrate.
33
+ // -maxrate bitrate The maximum bitrate tolerance, used with -bufsize. We set this to effectively create a constant bitrate.
34
+ // -force_key_frames expr:gte(t, n_forced * 4) Force a specific keyframe interval in the fMP4 stream we are generating.
35
+ // -fflags +genpts Generate a presentation timestamp (PTS) if there's a valid decoding timestamp (DTS) and PTS is missing.
36
+ // -reset_timestamps 1 Reset timestamps at the beginning of each segment to make the generated segments easier to consume.
37
+ // -movflags frag_keyframe+empty_moov+default_base_moof Start a new fragment at each keyframe, send the MOOV box at the beginning of the stream, and avoid
38
+ // writing absolute byte positions for the segments we send.
39
+ this.commandLineArgs = [
40
+ "-hide_banner",
41
+ "-f", "mp4",
42
+ "-i", "pipe:0",
43
+ "-map", "0:v",
44
+ "-vcodec", this.protectCamera.stream.videoEncoder || "libx264",
45
+ "-pix_fmt", "yuvj420p",
46
+ "-profile:v", requestedProfile,
47
+ "-level:v", requestedLevel,
48
+ "-preset", "veryfast",
49
+ "-b:v", recordingConfig.videoCodec.parameters.bitRate.toString() + "k",
50
+ "-bufsize", (2 * recordingConfig.videoCodec.parameters.bitRate).toString() + "k",
51
+ "-maxrate", recordingConfig.videoCodec.parameters.bitRate.toString() + "k",
52
+ "-force_key_frames", "expr:gte(t, n_forced * " + (recordingConfig.videoCodec.parameters.iFrameInterval / 1000).toString() + ")",
53
+ "-fflags", "+genpts",
54
+ "-reset_timestamps", "1",
55
+ "-movflags", "frag_keyframe+empty_moov+default_base_moof"
56
+ ];
57
+ if (isAudioActive) {
58
+ // Configure the audio portion of the command line. Options we use are:
59
+ //
60
+ // -map 0:a Selects the first available audio track from the stream. Protect actually maps audio
61
+ // and video tracks in opposite locations from where FFmpeg typically expects them. This
62
+ // setting is a more general solution than naming the track locations directly in case
63
+ // Protect changes this in the future.
64
+ // -acodec copy Copy the stream withour reencoding it.
65
+ this.commandLineArgs.push("-map", "0:a", "-acodec", "copy");
66
+ }
67
+ // Configure our video parameters for outputting our final stream:
68
+ //
69
+ // -f mp4 Tell ffmpeg that it should create an MP4-encoded output stream.
70
+ // pipe:1 Output the stream to standard output.
71
+ this.commandLineArgs.push("-f", "mp4", "pipe:1");
72
+ // Additional logging, but only if we're debugging.
73
+ if (device.platform.verboseFfmpeg) {
74
+ this.commandLineArgs.unshift("-loglevel", "level+verbose");
75
+ }
76
+ // Start the FFmpeg session.
77
+ this.start();
78
+ }
79
+ // Prepare and start our FFmpeg process.
80
+ configureProcess() {
81
+ var _a, _b, _c;
82
+ let dataListener;
83
+ // Call our parent to get started.
84
+ super.configureProcess();
85
+ // Initialize our variables that we need to process incoming FFmpeg packets.
86
+ let header = Buffer.alloc(0);
87
+ let bufferRemaining = Buffer.alloc(0);
88
+ let dataLength = 0;
89
+ let type = "";
90
+ // Process FFmpeg output and parse out the fMP4 stream it's generating for HomeKit Secure Video.
91
+ (_b = (_a = this.process) === null || _a === void 0 ? void 0 : _a.stdout) === null || _b === void 0 ? void 0 : _b.on("data", dataListener = (buffer) => {
92
+ // If we have anything left from the last buffer we processed, prepend it to this buffer.
93
+ if (bufferRemaining.length > 0) {
94
+ buffer = Buffer.concat([bufferRemaining, buffer]);
95
+ bufferRemaining = Buffer.alloc(0);
96
+ }
97
+ let offset = 0;
98
+ // FFmpeg is outputting an fMP4 stream that's suitable for HomeKit Secure Video. However, we can't just
99
+ // pass this stream directly back to HomeKit since we're using a generator-based API to send packets back to
100
+ // HKSV. Here, we take on the task of parsing the fMP4 stream that's being generated and split it up into the
101
+ // MP4 boxes that HAP-NodeJS is ultimately expecting.
102
+ for (;;) {
103
+ let data;
104
+ // The MP4 container format is well-documented format that is based around the concept of boxes. A box (or atom as they
105
+ // used to be called), is at the center of the MP4 format. It's composed of an 8-byte header, followed by the data payload
106
+ // it carries.
107
+ // No existing header, let's start a new box.
108
+ if (!header.length) {
109
+ // Grab the header. The first four bytes represents the length of the entire box. Second four bytes represent the box type.
110
+ header = buffer.slice(0, 8);
111
+ // Now we retrieve the length of the box and subtract the length of the header to get the length of the data portion of the box.
112
+ dataLength = header.readUInt32BE(0) - 8;
113
+ // Get the type of the box. This is always a string and has a funky history to it that makes for an interesting read!
114
+ type = header.slice(4).toString();
115
+ // Finally, we get the data portion of the box.
116
+ data = buffer.slice(8, dataLength + 8);
117
+ offset = 8;
118
+ }
119
+ else {
120
+ // Grab the data from our buffer.
121
+ data = buffer.slice(0, dataLength);
122
+ offset = 0;
123
+ }
124
+ // If we don't have enough data in this buffer, save what we have for the next buffer we see and append it there.
125
+ if (data.length < (dataLength - offset)) {
126
+ bufferRemaining = data;
127
+ break;
128
+ }
129
+ // Add it to our queue to be eventually pushed out through our generator function.
130
+ this.recordingBuffer.push({ data: data, header: header, length: dataLength, type: type });
131
+ // Prepare to start a new box for the next buffer that we will be processing.
132
+ data = Buffer.alloc(0);
133
+ header = Buffer.alloc(0);
134
+ type = "";
135
+ // We've parsed an entire box, and there's no more data in this buffer to parse.
136
+ if (buffer.length === (offset + dataLength)) {
137
+ dataLength = 0;
138
+ break;
139
+ }
140
+ // If there's anything left in the buffer, move us to the new box and let's keep iterating.
141
+ buffer = buffer.slice(offset + dataLength);
142
+ dataLength = 0;
143
+ }
144
+ });
145
+ // Make sure we cleanup our listeners when we're done.
146
+ (_c = this.process) === null || _c === void 0 ? void 0 : _c.once("exit", () => {
147
+ var _a, _b;
148
+ (_b = (_a = this.process) === null || _a === void 0 ? void 0 : _a.stdout) === null || _b === void 0 ? void 0 : _b.removeListener("data", dataListener);
149
+ });
150
+ }
151
+ // Generate complete segments from an FFmpeg output stream that HomeKit Secure Video can process.
152
+ async *segmentGenerator() {
153
+ let segment = [];
154
+ // Loop forever, generating either FTYP/MOOV box pairs or MOOF/MDAT box pairs for HomeKit Secure Video.
155
+ for (;;) {
156
+ // FFmpeg has finished it's output - we're done.
157
+ if (this.isEnded) {
158
+ return;
159
+ }
160
+ // If we haven't seen any output from FFmpeg yet, sleep for a very short period of time to wait for it.
161
+ // You might think there should be a longer sleep interval here, given the typical HKSV-requested segment
162
+ // size, but since we have a several-second buffer that gets fed to FFmpeg on startup, FFmpeg is likely to
163
+ // generate output very quickly after startup.
164
+ if (!this.isStarted) {
165
+ // eslint-disable-next-line no-await-in-loop
166
+ await this.nvr.sleep(100);
167
+ continue;
168
+ }
169
+ // Grab the next fMP4 box from our buffer.
170
+ const box = this.recordingBuffer.shift();
171
+ // If the buffer is empty, sleep for a second. We sleep a longer interval here because the buffer is likely
172
+ // to populate no more than once a second, and in reality, more likely longer than that in most cases. Smaller
173
+ // boxes (e.g. MOOF) will be buffered faster than larger ones like MDAT that carry the bulk of the audio / video
174
+ // data.
175
+ if (!box) {
176
+ // eslint-disable-next-line no-await-in-loop
177
+ await this.nvr.sleep(1000);
178
+ continue;
179
+ }
180
+ // Queue up this fMP4 box to send back to HomeKit.
181
+ segment.push(box.header, box.data);
182
+ // What we want to send are two types of complete segments, made up of multiple MP4 boxes:
183
+ //
184
+ // - a complete MOOV box, usually with an accompanying FTYP box, that's sent at the very
185
+ // beginning of any valid fMP4 stream. HomeKit Secure Video looks for this before anything
186
+ // else.
187
+ //
188
+ // - a complete MOOF/MDAT pair. MOOF describes XXX and MDAT describes the actual audio and video
189
+ // data related to that segment.
190
+ //
191
+ // Once we see these, we combine all the segments in our queue to send back to HomeKit.
192
+ if ((box.type === "moov") || (box.type === "mdat")) {
193
+ yield Buffer.concat(segment);
194
+ segment = [];
195
+ }
196
+ }
197
+ }
198
+ }
199
+ exports.FfmpegRecordingProcess = FfmpegRecordingProcess;
200
+ //# sourceMappingURL=protect-ffmpeg-record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protect-ffmpeg-record.js","sourceRoot":"","sources":["../src/protect-ffmpeg-record.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FfmpegStreamingProcess = void 0;
4
+ /* Copyright(C) 2017-2022, HJD (https://github.com/hjdhjd). All rights reserved.
5
+ *
6
+ * protect-ffmpeg-stream.ts: Provide FFmpeg process control to support HomeKit livestreaming.
7
+ *
8
+ */
9
+ const protect_ffmpeg_1 = require("./protect-ffmpeg");
10
+ const dgram_1 = require("dgram");
11
+ // FFmpeg streaming process management.
12
+ class FfmpegStreamingProcess extends protect_ffmpeg_1.FfmpegProcess {
13
+ // Create a new FFmpeg process instance.
14
+ constructor(delegate, sessionId, commandLineArgs, returnPort, callback) {
15
+ // Initialize our parent.
16
+ super(delegate.protectCamera);
17
+ this.delegate = delegate;
18
+ this.sessionId = sessionId;
19
+ // Create the return port for FFmpeg, if requested to do so. The only time we don't do this is when we're standing up
20
+ // a two-way audio stream - in that case, the audio work is done through RtpSplitter and not here.
21
+ if (returnPort) {
22
+ this.createSocket(returnPort);
23
+ }
24
+ this.start(commandLineArgs, callback, async (errorMessage) => {
25
+ // Stop the stream.
26
+ await this.delegate.stopStream(this.sessionId);
27
+ // Temporarily increase logging verbosity.
28
+ this.delegate.setVerboseFfmpeg();
29
+ // Let homebridge know what happened and stop the stream if we've already started.
30
+ if (!this.isStarted && this.callback) {
31
+ this.callback(new Error(errorMessage));
32
+ this.callback = null;
33
+ return;
34
+ }
35
+ // Tell Homebridge to forcibly stop the streaming session.
36
+ this.delegate.controller.forceStopStreamingSession(this.sessionId);
37
+ void this.delegate.stopStream(this.sessionId);
38
+ });
39
+ }
40
+ // Create the port for FFmpeg to send data through.
41
+ createSocket(portInfo) {
42
+ let errorListener;
43
+ let messageListener;
44
+ const socket = (0, dgram_1.createSocket)(portInfo.addressVersion === "ipv6" ? "udp6" : "udp4");
45
+ // Cleanup after ourselves when the socket closes.
46
+ socket.once("close", () => {
47
+ if (this.streamTimeout) {
48
+ clearTimeout(this.streamTimeout);
49
+ }
50
+ socket.removeListener("error", errorListener);
51
+ socket.removeListener("message", messageListener);
52
+ });
53
+ // Handle potential network errors.
54
+ socket.on("error", errorListener = (error) => {
55
+ this.log.error("%s: Socket error: %s.", this.name(), error.name);
56
+ void this.delegate.stopStream(this.sessionId);
57
+ });
58
+ // Manage our video streams in case we haven't received a stop request, but we're in fact dead zombies.
59
+ socket.on("message", messageListener = () => {
60
+ // Clear our last canary.
61
+ if (this.streamTimeout) {
62
+ clearTimeout(this.streamTimeout);
63
+ }
64
+ // Set our new canary.
65
+ this.streamTimeout = setTimeout(() => {
66
+ this.debug("%s: video stream appears to be inactive for 5 seconds. Stopping stream.", this.name());
67
+ this.delegate.controller.forceStopStreamingSession(this.sessionId);
68
+ void this.delegate.stopStream(this.sessionId);
69
+ }, 5000);
70
+ });
71
+ // Bind to the port we're opening.
72
+ socket.bind(portInfo.port);
73
+ }
74
+ // Return the actual FFmpeg process.
75
+ get ffmpegProcess() {
76
+ return this.process;
77
+ }
78
+ }
79
+ exports.FfmpegStreamingProcess = FfmpegStreamingProcess;
80
+ //# sourceMappingURL=protect-ffmpeg-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protect-ffmpeg-stream.js","sourceRoot":"","sources":["../src/protect-ffmpeg-stream.ts"],"names":[],"mappings":"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"}