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.
- package/dist/protect-accessory.js +8 -8
- package/dist/protect-accessory.js.map +1 -1
- package/dist/protect-camera.js +6 -6
- package/dist/protect-camera.js.map +1 -1
- package/dist/protect-ffmpeg-record.js +200 -0
- package/dist/protect-ffmpeg-record.js.map +1 -0
- package/dist/protect-ffmpeg-stream.js +80 -0
- package/dist/protect-ffmpeg-stream.js.map +1 -0
- package/dist/protect-ffmpeg.js +108 -330
- package/dist/protect-ffmpeg.js.map +1 -1
- package/dist/protect-nvr-events.js +17 -21
- package/dist/protect-nvr-events.js.map +1 -1
- package/dist/protect-record.js +64 -30
- package/dist/protect-record.js.map +1 -1
- package/dist/protect-stream.js +26 -26
- package/dist/protect-stream.js.map +1 -1
- package/package.json +1 -2
|
@@ -144,8 +144,8 @@ class ProtectNvrEvents {
|
|
|
144
144
|
}
|
|
145
145
|
// It's a motion event - process it accordingly.
|
|
146
146
|
if (payload.isMotionDetected) {
|
|
147
|
-
// We only want to process the motion event if we have the right payload, and either HKSV is enabled, or
|
|
148
|
-
// HKSV is disabled and we have smart motion events disabled since We handle those elsewhere.
|
|
147
|
+
// We only want to process the motion event if we have the right payload, and either HKSV recording is enabled, or
|
|
148
|
+
// HKSV recording is disabled and we have smart motion events disabled since We handle those elsewhere.
|
|
149
149
|
if (payload.lastMotion &&
|
|
150
150
|
(((_a = protectCamera.stream.hksv) === null || _a === void 0 ? void 0 : _a.isRecording) || (!((_b = protectCamera.stream.hksv) === null || _b === void 0 ? void 0 : _b.isRecording) && !protectCamera.smartDetectTypes.length)) &&
|
|
151
151
|
this.nvr.optionEnabled(device, "Motion.NvrEvents", true)) {
|
|
@@ -353,7 +353,7 @@ class ProtectNvrEvents {
|
|
|
353
353
|
}
|
|
354
354
|
// Motion event delivery to HomeKit.
|
|
355
355
|
motionEventDelivery(accessory, motionService, detectedObjects = []) {
|
|
356
|
-
var _a, _b, _c, _d;
|
|
356
|
+
var _a, _b, _c, _d, _e;
|
|
357
357
|
const device = accessory.context.device;
|
|
358
358
|
// Lookup the ProtectCamera instance associated with this accessory.
|
|
359
359
|
const protectCamera = this.nvr.configuredDevices[accessory.UUID];
|
|
@@ -382,7 +382,7 @@ class ProtectNvrEvents {
|
|
|
382
382
|
(_c = this.nvr.mqtt) === null || _c === void 0 ? void 0 : _c.publish(accessory, "motion", "true");
|
|
383
383
|
// Log the event, if configured to do so.
|
|
384
384
|
if (this.nvr.optionEnabled(device, "Log.Motion", false)) {
|
|
385
|
-
this.log.info("%s: Motion detected%s.", this.nvrApi.getFullName(device), detectedObjects.length ? ": " + detectedObjects.join(", ") : "");
|
|
385
|
+
this.log.info("%s: Motion detected%s.", this.nvrApi.getFullName(device), (!((_d = protectCamera.stream.hksv) === null || _d === void 0 ? void 0 : _d.isRecording) && detectedObjects.length) ? ": " + detectedObjects.join(", ") : "");
|
|
386
386
|
}
|
|
387
387
|
}
|
|
388
388
|
// Trigger smart motion contact sensors, if configured.
|
|
@@ -392,28 +392,24 @@ class ProtectNvrEvents {
|
|
|
392
392
|
contactService.updateCharacteristic(this.hap.Characteristic.ContactSensorState, true);
|
|
393
393
|
}
|
|
394
394
|
// Publish the smart motion event to MQTT, if the user has configured it.
|
|
395
|
-
(
|
|
395
|
+
(_e = this.nvr.mqtt) === null || _e === void 0 ? void 0 : _e.publish(accessory, "motion/smart/" + detectedObject, "true");
|
|
396
396
|
}
|
|
397
|
-
// Reset our motion event after motionDuration.
|
|
397
|
+
// Reset our motion event after motionDuration if we don't already have a reset timer inflight.
|
|
398
398
|
if (!this.eventTimers[device.mac]) {
|
|
399
399
|
this.eventTimers[device.mac] = setTimeout(() => {
|
|
400
|
-
var _a
|
|
401
|
-
|
|
402
|
-
if (
|
|
403
|
-
(
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
const thisTriggerService = accessory.getServiceById(this.hap.Service.Switch, protect_accessory_1.PROTECT_SWITCH_MOTION_TRIGGER);
|
|
409
|
-
if (thisTriggerService) {
|
|
410
|
-
thisTriggerService.updateCharacteristic(this.hap.Characteristic.On, false);
|
|
411
|
-
}
|
|
412
|
-
this.debug("%s: Resetting motion event.", this.nvrApi.getFullName(device));
|
|
400
|
+
var _a;
|
|
401
|
+
const thisMotionService = accessory.getService(this.hap.Service.MotionSensor);
|
|
402
|
+
if (thisMotionService) {
|
|
403
|
+
thisMotionService.updateCharacteristic(this.hap.Characteristic.MotionDetected, false);
|
|
404
|
+
// Check to see if we have a motion trigger switch configured. If we do, update it.
|
|
405
|
+
const thisTriggerService = accessory.getServiceById(this.hap.Service.Switch, protect_accessory_1.PROTECT_SWITCH_MOTION_TRIGGER);
|
|
406
|
+
if (thisTriggerService) {
|
|
407
|
+
thisTriggerService.updateCharacteristic(this.hap.Characteristic.On, false);
|
|
413
408
|
}
|
|
414
|
-
|
|
415
|
-
(_b = this.nvr.mqtt) === null || _b === void 0 ? void 0 : _b.publish(accessory, "motion", "false");
|
|
409
|
+
this.debug("%s: Resetting motion event.", this.nvrApi.getFullName(device));
|
|
416
410
|
}
|
|
411
|
+
// Publish to MQTT, if the user has configured it.
|
|
412
|
+
(_a = this.nvr.mqtt) === null || _a === void 0 ? void 0 : _a.publish(accessory, "motion", "false");
|
|
417
413
|
// Delete the timer from our motion event tracker.
|
|
418
414
|
delete this.eventTimers[device.mac];
|
|
419
415
|
}, this.motionDuration * 1000);
|
|
@@ -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-record.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ProtectRecordingDelegate = void 0;
|
|
4
|
-
const
|
|
4
|
+
const protect_ffmpeg_record_1 = require("./protect-ffmpeg-record");
|
|
5
5
|
const protect_timeshift_1 = require("./protect-timeshift");
|
|
6
6
|
// Camera recording delegate implementation for Protect.
|
|
7
7
|
class ProtectRecordingDelegate {
|
|
@@ -9,7 +9,7 @@ class ProtectRecordingDelegate {
|
|
|
9
9
|
var _a;
|
|
10
10
|
this.accessory = protectCamera.accessory;
|
|
11
11
|
this.api = protectCamera.api;
|
|
12
|
-
this.
|
|
12
|
+
this.hap = protectCamera.api.hap;
|
|
13
13
|
this.debug = protectCamera.platform.debug.bind(protectCamera.platform);
|
|
14
14
|
this.ffmpegStream = null;
|
|
15
15
|
this.isInitialized = false;
|
|
@@ -19,12 +19,14 @@ class ProtectRecordingDelegate {
|
|
|
19
19
|
this.nvr = protectCamera.nvr;
|
|
20
20
|
this.protectCamera = protectCamera;
|
|
21
21
|
this.maxRecordingDuration = parseInt((_a = this.nvr.optionGet(this.accessory.context.device, "Video.HKSV.Recording.MaxDuration")) !== null && _a !== void 0 ? _a : "0");
|
|
22
|
-
this.
|
|
22
|
+
this.transmittedSegments = 0;
|
|
23
23
|
this.rtspEntry = null;
|
|
24
|
+
this.timeshift = new protect_timeshift_1.ProtectTimeshiftBuffer(protectCamera);
|
|
24
25
|
this.transmitListener = null;
|
|
25
26
|
}
|
|
26
27
|
// Process HomeKit requests to activate or deactivate HKSV recording capabilities for a camera.
|
|
27
28
|
async updateRecordingActive(active) {
|
|
29
|
+
var _a;
|
|
28
30
|
// If we are no longer recording, stop the livestream.
|
|
29
31
|
if (!active) {
|
|
30
32
|
this.timeshift.stop();
|
|
@@ -32,7 +34,12 @@ class ProtectRecordingDelegate {
|
|
|
32
34
|
if (this.isRecording !== active) {
|
|
33
35
|
this.log.info("%s: Disabling HomeKit Secure Video event recording.", this.name());
|
|
34
36
|
}
|
|
37
|
+
// Disable recording.
|
|
35
38
|
this._isRecording = active;
|
|
39
|
+
// Turn off any potential inflight motion detection. Strictly speaking, this shouldn't be needed since any inflight
|
|
40
|
+
// motion sensor events will clear themselves. That said, we play it safe just the same.
|
|
41
|
+
(_a = this.accessory.getService(this.hap.Service.MotionSensor)) === null || _a === void 0 ? void 0 : _a.updateCharacteristic(this.hap.Characteristic.MotionDetected, false);
|
|
42
|
+
// We're done.
|
|
36
43
|
return;
|
|
37
44
|
}
|
|
38
45
|
// We have no recording configuration available yet. Set our desired state and we're done.
|
|
@@ -93,29 +100,25 @@ class ProtectRecordingDelegate {
|
|
|
93
100
|
// Handle the actual recording stream request.
|
|
94
101
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
95
102
|
async *handleRecordingStreamRequest(streamId) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
// We should never get to this point, but in case we do, this is a failsafe to ensure that no video
|
|
104
|
-
// recording can ever take place if we've disabled it through the HKSV recording switch accessory.
|
|
105
|
-
// It will generate a warning in Homebridge that can be ignored, but it will ensure nothing can be recorded.
|
|
106
|
-
yield { data: Buffer.alloc(0), isLast: true };
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
// Start transmitting our timeshift buffer and process it through FFmpeg.
|
|
110
|
-
if (!this.startTransmitting() || !this.ffmpegStream) {
|
|
111
|
-
// Something went wrong, so we gracefully tell HomeKit we have no packets to transmit and return.
|
|
103
|
+
var _a, _b;
|
|
104
|
+
// If we've explicitly disabled HKSV recording, we're done right now. Otherwise, start transmitting our timeshift
|
|
105
|
+
// buffer and process it through FFmpeg.
|
|
106
|
+
if (!this.accessory.context.hksvRecording || !this.startTransmitting() || !this.ffmpegStream) {
|
|
107
|
+
// Stop transmitting, if needed. If HKSV recording has been disabled explicitly, it should never start in the first place.
|
|
112
108
|
this.stopTransmitting();
|
|
113
|
-
|
|
109
|
+
// Something's gone wrong, or we've disabled HKSV recording. In either event, we send an fMP4 stream header
|
|
110
|
+
// back to HKSV and exit as cleanly as we can. If we can't get the stream header, we still send an empty segment
|
|
111
|
+
// to HKSV - this will still generate a warning in Homebridge that can be ignored.
|
|
112
|
+
const streamHeader = (_a = (await this.timeshift.getStreamHeader())) !== null && _a !== void 0 ? _a : Buffer.alloc(0);
|
|
113
|
+
yield { data: streamHeader, isLast: true };
|
|
114
114
|
return;
|
|
115
115
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
116
|
+
let isLastSegment = false;
|
|
117
|
+
let segmentCount = 0;
|
|
118
|
+
// Process our FFmpeg-generated segments and send them back to HKSV.
|
|
119
|
+
for await (const segment of this.ffmpegStream.segmentGenerator()) {
|
|
120
|
+
isLastSegment = false;
|
|
121
|
+
// If we've stopped transmitting, we're done.
|
|
119
122
|
if (!this.timeshift.isTransmitting) {
|
|
120
123
|
return;
|
|
121
124
|
}
|
|
@@ -124,17 +127,38 @@ class ProtectRecordingDelegate {
|
|
|
124
127
|
continue;
|
|
125
128
|
}
|
|
126
129
|
// If we've exceeded a user-configured maximum recording duration, let HomeKit know we're stopping.
|
|
127
|
-
if (this.maxRecordingDuration && ((this.
|
|
130
|
+
if (this.maxRecordingDuration && ((this.transmittedSegments * this.timeshift.segmentLength) / 1000) > this.maxRecordingDuration) {
|
|
128
131
|
isLastSegment = true;
|
|
129
132
|
}
|
|
133
|
+
// Send HKSV the segment.
|
|
130
134
|
yield {
|
|
131
135
|
data: segment,
|
|
132
136
|
isLast: isLastSegment
|
|
133
137
|
};
|
|
138
|
+
// Keep track of how many segments we've sent to HKSV.
|
|
139
|
+
segmentCount++;
|
|
140
|
+
// If we've sent the last segment, we're done.
|
|
134
141
|
if (isLastSegment) {
|
|
135
142
|
return;
|
|
136
143
|
}
|
|
137
144
|
}
|
|
145
|
+
// If we're done transmitting, we're done returning segments to HKSV.
|
|
146
|
+
if (!this.timeshift.isTransmitting) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
// Something's gone wrong and we've sent HKSV no segments. Let's send an fMP4 stream header back to HKSV and exit
|
|
150
|
+
// as cleanly as we can. If we can't get the stream header, we send an empty segment to HKSV - this will still
|
|
151
|
+
//generate a warning in Homebridge that can be ignored.
|
|
152
|
+
if (!segmentCount) {
|
|
153
|
+
const streamHeader = (_b = (await this.timeshift.getStreamHeader())) !== null && _b !== void 0 ? _b : Buffer.alloc(0);
|
|
154
|
+
yield { data: streamHeader, isLast: true };
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
// Something likely happened to FFmpeg and we didn't send out a final segment. Tell HKSV we're really done.
|
|
158
|
+
if (!isLastSegment) {
|
|
159
|
+
yield { data: Buffer.alloc(0), isLast: true };
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
138
162
|
}
|
|
139
163
|
// Receive an acknowledgement from HomeKit that it's seen an end-of-stream packet from us.
|
|
140
164
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -168,10 +192,10 @@ class ProtectRecordingDelegate {
|
|
|
168
192
|
// fMP4 packets. We treat this the same was a DVR works where you can pause live television, but it continues to
|
|
169
193
|
// buffer what's being broadcast until you're ready to watch it. This is the same idea.
|
|
170
194
|
// Keep track of how many fMP4 segments we are feeding FFmpeg.
|
|
171
|
-
this.
|
|
195
|
+
this.transmittedSegments = 0;
|
|
172
196
|
// Check to see if the user has audio enabled or disabled for recordings.
|
|
173
197
|
const isAudioActive = ((_a = this.protectCamera.stream.controller.recordingManagement) === null || _a === void 0 ? void 0 : _a.recordingManagementService.getCharacteristic(this.api.hap.Characteristic.RecordingAudioActive).value) === 1 ? true : false;
|
|
174
|
-
this.ffmpegStream = new
|
|
198
|
+
this.ffmpegStream = new protect_ffmpeg_record_1.FfmpegRecordingProcess(this.protectCamera, this.recordingConfig, isAudioActive);
|
|
175
199
|
// Start the livestream.
|
|
176
200
|
const timeshiftedSeconds = this.timeshift.length / 1000;
|
|
177
201
|
// Let the timeshift buffer know it's time to transmit and continue timeshifting.
|
|
@@ -181,19 +205,27 @@ class ProtectRecordingDelegate {
|
|
|
181
205
|
// Listen in for events from the timeshift buffer and feed FFmpeg. This looks simple, conceptually,
|
|
182
206
|
// but there's a lot going on here.
|
|
183
207
|
this.transmitListener = (segment) => {
|
|
184
|
-
var _a, _b;
|
|
185
|
-
(_b = (_a = this.ffmpegStream) === null || _a === void 0 ? void 0 : _a.stdin) === null || _b === void 0 ? void 0 : _b.write(segment);
|
|
208
|
+
var _a, _b, _c, _d, _e, _f;
|
|
186
209
|
// We don't want the fMP4 ftyp or moov boxes accounted for in our recording statistics so
|
|
187
210
|
// let's filter them out.
|
|
188
211
|
if (!seenFtyp && this.timeshift.isFtyp(segment)) {
|
|
189
212
|
seenFtyp = true;
|
|
213
|
+
(_b = (_a = this.ffmpegStream) === null || _a === void 0 ? void 0 : _a.stdin) === null || _b === void 0 ? void 0 : _b.write(segment);
|
|
190
214
|
return;
|
|
191
215
|
}
|
|
192
216
|
if (!seenMoov && this.timeshift.isMoov(segment)) {
|
|
193
217
|
seenMoov = true;
|
|
218
|
+
(_d = (_c = this.ffmpegStream) === null || _c === void 0 ? void 0 : _c.stdin) === null || _d === void 0 ? void 0 : _d.write(segment);
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
// We don't want to send the ftyp or moov boxes more than once - FFmpeg will get confused if you do, plus
|
|
222
|
+
// it's wrong and you should only send the fMP4 stream header information once.
|
|
223
|
+
if (this.timeshift.isFtyp(segment) || this.timeshift.isMoov(segment)) {
|
|
194
224
|
return;
|
|
195
225
|
}
|
|
196
|
-
|
|
226
|
+
// Send the segment to FFmpeg for processing and update our statistics.
|
|
227
|
+
(_f = (_e = this.ffmpegStream) === null || _e === void 0 ? void 0 : _e.stdin) === null || _f === void 0 ? void 0 : _f.write(segment);
|
|
228
|
+
this.transmittedSegments++;
|
|
197
229
|
};
|
|
198
230
|
this.timeshift.on("segment", this.transmitListener);
|
|
199
231
|
// Inform the user.
|
|
@@ -215,7 +247,9 @@ class ProtectRecordingDelegate {
|
|
|
215
247
|
}
|
|
216
248
|
// Inform the user.
|
|
217
249
|
if (this.accessory.context.hksvRecording) {
|
|
218
|
-
|
|
250
|
+
// Calculate approximately how many seconds we've recorded.
|
|
251
|
+
const recordedSeconds = (this.transmittedSegments * this.timeshift.segmentLength) / 1000;
|
|
252
|
+
this.log.info("%s: HomeKit Secure Video has recorded a %s second motion event.", this.name(), recordedSeconds < 1 ? recordedSeconds : Math.round(recordedSeconds));
|
|
219
253
|
}
|
|
220
254
|
// If we have a reason for stopping defined, and it's noteworthy, inform the user.
|
|
221
255
|
let reasonDescription;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protect-record.js","sourceRoot":"","sources":["../src/protect-record.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"protect-record.js","sourceRoot":"","sources":["../src/protect-record.ts"],"names":[],"mappings":"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"}
|
package/dist/protect-stream.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.ProtectStreamingDelegate = void 0;
|
|
7
7
|
const unifi_protect_1 = require("unifi-protect");
|
|
8
8
|
const settings_1 = require("./settings");
|
|
9
|
-
const
|
|
9
|
+
const protect_ffmpeg_stream_1 = require("./protect-ffmpeg-stream");
|
|
10
10
|
const protect_record_1 = require("./protect-record");
|
|
11
11
|
const protect_rtp_1 = require("./protect-rtp");
|
|
12
12
|
const ws_1 = __importDefault(require("ws"));
|
|
@@ -32,6 +32,8 @@ class ProtectStreamingDelegate {
|
|
|
32
32
|
this.rtspEntry = null;
|
|
33
33
|
this.savedBitrate = 0;
|
|
34
34
|
this.snapshotCache = {};
|
|
35
|
+
this.verboseFfmpeg = false;
|
|
36
|
+
this.verboseFfmpegTimer = null;
|
|
35
37
|
this.videoEncoder = this.config.videoEncoder || "libx264";
|
|
36
38
|
this.videoProcessor = this.config.videoProcessor || ffmpeg_for_homebridge_1.default || "ffmpeg";
|
|
37
39
|
// Setup for HKSV, if enabled.
|
|
@@ -141,7 +143,7 @@ class ProtectStreamingDelegate {
|
|
|
141
143
|
// Check if audio support is enabled.
|
|
142
144
|
const isAudioEnabled = this.protectCamera.nvr.optionEnabled(cameraConfig, "Audio", true, request.targetAddress);
|
|
143
145
|
// We need to check for AAC support because it's going to determine whether we support audio.
|
|
144
|
-
const hasLibFdk = isAudioEnabled && (await
|
|
146
|
+
const hasLibFdk = isAudioEnabled && (await protect_ffmpeg_stream_1.FfmpegStreamingProcess.codecEnabled(this.videoProcessor, "libfdk_aac", this.log));
|
|
145
147
|
// Setup our audio plumbing.
|
|
146
148
|
const audioIncomingRtcpPort = (await (0, camera_utils_1.reservePorts)({ count: 1 }))[0];
|
|
147
149
|
const audioIncomingPort = (hasLibFdk && this.protectCamera.twoWayAudio) ? (await (0, camera_utils_1.reservePorts)({ count: 1 }))[0] : -1;
|
|
@@ -211,7 +213,7 @@ class ProtectStreamingDelegate {
|
|
|
211
213
|
}
|
|
212
214
|
// Launch the Protect video (and audio) stream.
|
|
213
215
|
async startStream(request, callback) {
|
|
214
|
-
var _a, _b, _c, _d, _e
|
|
216
|
+
var _a, _b, _c, _d, _e;
|
|
215
217
|
const cameraConfig = this.protectCamera.accessory.context.device;
|
|
216
218
|
const sessionInfo = this.pendingSessions[request.sessionID];
|
|
217
219
|
const sdpIpVersion = sessionInfo.addressVersion === "ipv6" ? "IP6 " : "IP4";
|
|
@@ -355,14 +357,14 @@ class ProtectStreamingDelegate {
|
|
|
355
357
|
"&localrtcpport=" + sessionInfo.audioPort.toString() + "&pkt_size=" + audiomtu.toString());
|
|
356
358
|
}
|
|
357
359
|
// Additional logging, but only if we're debugging.
|
|
358
|
-
if (this.platform.verboseFfmpeg) {
|
|
360
|
+
if (this.platform.verboseFfmpeg || this.verboseFfmpeg) {
|
|
359
361
|
ffmpegArgs.push("-loglevel", "level+verbose");
|
|
360
362
|
}
|
|
361
363
|
if (this.platform.config.debugAll) {
|
|
362
364
|
ffmpegArgs.push("-loglevel", "level+debug");
|
|
363
365
|
}
|
|
364
366
|
// Combine everything and start an instance of FFmpeg.
|
|
365
|
-
const ffmpegStream = new
|
|
367
|
+
const ffmpegStream = new protect_ffmpeg_stream_1.FfmpegStreamingProcess(this, request.sessionID, ffmpegArgs, (sessionInfo.hasLibFdk && this.protectCamera.twoWayAudio) ? undefined : { addressVersion: sessionInfo.addressVersion, port: sessionInfo.videoReturnPort }, callback);
|
|
366
368
|
// Some housekeeping for our FFmpeg and demuxer sessions.
|
|
367
369
|
this.ongoingSessions[request.sessionID] = { ffmpeg: [ffmpegStream], rtpDemuxer: sessionInfo.rtpDemuxer };
|
|
368
370
|
delete this.pendingSessions[request.sessionID];
|
|
@@ -426,7 +428,7 @@ class ProtectStreamingDelegate {
|
|
|
426
428
|
"pipe:1"
|
|
427
429
|
];
|
|
428
430
|
// Additional logging, but only if we're debugging.
|
|
429
|
-
if (this.platform.verboseFfmpeg) {
|
|
431
|
+
if (this.platform.verboseFfmpeg || this.verboseFfmpeg) {
|
|
430
432
|
ffmpegReturnAudioCmd.push("-loglevel", "level+verbose");
|
|
431
433
|
}
|
|
432
434
|
if (this.platform.config.debugAll) {
|
|
@@ -463,25 +465,13 @@ class ProtectStreamingDelegate {
|
|
|
463
465
|
});
|
|
464
466
|
}
|
|
465
467
|
// Fire up FFmpeg.
|
|
466
|
-
const ffmpegReturnAudio = new
|
|
467
|
-
// Make sure we terminate the talkback websocket when we're done.
|
|
468
|
-
(_c = ffmpegReturnAudio.stdout) === null || _c === void 0 ? void 0 : _c.once("close", () => {
|
|
469
|
-
var _a;
|
|
470
|
-
// Make sure we catch any stray connections that may be too slow to open.
|
|
471
|
-
isTalkbackLive = false;
|
|
472
|
-
// Close the websocket.
|
|
473
|
-
if (((ws === null || ws === void 0 ? void 0 : ws.readyState) === ws_1.default.CLOSING) || ((ws === null || ws === void 0 ? void 0 : ws.readyState) === ws_1.default.OPEN)) {
|
|
474
|
-
ws === null || ws === void 0 ? void 0 : ws.terminate();
|
|
475
|
-
}
|
|
476
|
-
(_a = ffmpegReturnAudio.stdout) === null || _a === void 0 ? void 0 : _a.removeListener("data", dataListener);
|
|
477
|
-
});
|
|
468
|
+
const ffmpegReturnAudio = new protect_ffmpeg_stream_1.FfmpegStreamingProcess(this, request.sessionID, ffmpegReturnAudioCmd);
|
|
478
469
|
// Setup housekeeping for the twoway FFmpeg session.
|
|
479
470
|
this.ongoingSessions[request.sessionID].ffmpeg.push(ffmpegReturnAudio);
|
|
480
471
|
// Feed the SDP session description to FFmpeg on stdin.
|
|
481
|
-
(
|
|
482
|
-
(_e = ffmpegReturnAudio.stdin) === null || _e === void 0 ? void 0 : _e.end();
|
|
472
|
+
(_c = ffmpegReturnAudio.stdin) === null || _c === void 0 ? void 0 : _c.end(sdpReturnAudio + "\n");
|
|
483
473
|
// Send the audio.
|
|
484
|
-
(
|
|
474
|
+
(_d = ffmpegReturnAudio.stdout) === null || _d === void 0 ? void 0 : _d.on("data", dataListener = (data) => {
|
|
485
475
|
ws === null || ws === void 0 ? void 0 : ws.send(data, error => {
|
|
486
476
|
// This happens when an error condition is encountered on sending data to the websocket.
|
|
487
477
|
// We assume the worst and close our talkback channel.
|
|
@@ -490,6 +480,17 @@ class ProtectStreamingDelegate {
|
|
|
490
480
|
}
|
|
491
481
|
});
|
|
492
482
|
});
|
|
483
|
+
// Make sure we terminate the talkback websocket when we're done.
|
|
484
|
+
(_e = ffmpegReturnAudio.ffmpegProcess) === null || _e === void 0 ? void 0 : _e.once("exit", () => {
|
|
485
|
+
var _a;
|
|
486
|
+
// Make sure we catch any stray connections that may be too slow to open.
|
|
487
|
+
isTalkbackLive = false;
|
|
488
|
+
// Close the websocket.
|
|
489
|
+
if (((ws === null || ws === void 0 ? void 0 : ws.readyState) === ws_1.default.CLOSING) || ((ws === null || ws === void 0 ? void 0 : ws.readyState) === ws_1.default.OPEN)) {
|
|
490
|
+
ws === null || ws === void 0 ? void 0 : ws.terminate();
|
|
491
|
+
}
|
|
492
|
+
(_a = ffmpegReturnAudio.stdout) === null || _a === void 0 ? void 0 : _a.removeListener("data", dataListener);
|
|
493
|
+
});
|
|
493
494
|
}
|
|
494
495
|
catch (error) {
|
|
495
496
|
this.log.error("%s: Unable to connect to the return audio channel: %s", this.name(), error);
|
|
@@ -633,14 +634,13 @@ class ProtectStreamingDelegate {
|
|
|
633
634
|
}
|
|
634
635
|
// Set a timer to revert back to normal behavior.
|
|
635
636
|
this.verboseFfmpegTimer = setTimeout(() => {
|
|
636
|
-
this.
|
|
637
|
-
this.log.info("Returning FFmpeg logging output to normal levels.");
|
|
637
|
+
this.verboseFfmpeg = false;
|
|
638
|
+
this.log.info("%s: Returning FFmpeg logging output to normal levels.", this.name());
|
|
638
639
|
// Clear out the old timer.
|
|
639
640
|
this.verboseFfmpegTimer = null;
|
|
640
641
|
}, settings_1.PROTECT_FFMPEG_VERBOSE_DURATION * 60 * 1000);
|
|
641
|
-
this.log.info("FFmpeg exited unexpectedly."
|
|
642
|
-
|
|
643
|
-
// this.platform.verboseFfmpeg = true;
|
|
642
|
+
this.log.info("%s: FFmpeg exited unexpectedly. Increasing logging output of FFmpeg for the next %s minutes to provide additional detail for future attempts to stream video.", this.name(), settings_1.PROTECT_FFMPEG_VERBOSE_DURATION);
|
|
643
|
+
this.verboseFfmpeg = true;
|
|
644
644
|
}
|
|
645
645
|
}
|
|
646
646
|
exports.ProtectStreamingDelegate = ProtectStreamingDelegate;
|