homebridge-unifi-protect 7.1.0 → 7.1.1
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.
|
@@ -13,36 +13,39 @@ export class FfmpegRecordingProcess extends FfmpegProcess {
|
|
|
13
13
|
this.isLoggingErrors = true;
|
|
14
14
|
// Initialize our recording buffer.
|
|
15
15
|
this.recordingBuffer = [];
|
|
16
|
-
// -hide_banner
|
|
17
|
-
// -nostats
|
|
18
|
-
// -fflags flags
|
|
16
|
+
// -hide_banner Suppress printing the startup banner in FFmpeg.
|
|
17
|
+
// -nostats Suppress printing progress reports while encoding in FFmpeg.
|
|
18
|
+
// -fflags flags Set the format flags to generate a presentation timestamp if it's missing and discard any corrupt packets rather than exit.
|
|
19
|
+
// -max_delay 500000 Set an upper limit on how much time FFmpeg can take in demuxing packets.
|
|
20
|
+
// -flags low_delay Tell FFmpeg to optimize for low delay / realtime decoding.
|
|
19
21
|
this.commandLineArgs = [
|
|
20
22
|
"-hide_banner",
|
|
21
23
|
"-nostats",
|
|
22
24
|
"-fflags", "+discardcorrupt+genpts",
|
|
23
|
-
...protectCamera.stream.ffmpegOptions.videoDecoder
|
|
25
|
+
...protectCamera.stream.ffmpegOptions.videoDecoder,
|
|
26
|
+
"-max_delay", "500000",
|
|
27
|
+
"-flags", "low_delay"
|
|
24
28
|
];
|
|
25
29
|
const tsBuffer = protectCamera.stream.hksv?.timeshift.buffer ?? null;
|
|
26
30
|
// If we're timeshifting, read from the timeshift buffer if we have anything queued up.
|
|
27
31
|
if (protectCamera.hints.timeshift && protectCamera.stream.hksv?.timeshift.time) {
|
|
28
32
|
// Configure our video parameters for our input:
|
|
29
33
|
//
|
|
30
|
-
// -probesize amount How many bytes should be analyzed for stream information. Use the
|
|
31
|
-
// -f mp4 Tell ffmpeg that it should expect an MP4-encoded input stream.
|
|
34
|
+
// -probesize amount How many bytes should be analyzed for stream information. Use the size of the timeshift buffer if we have it or our defaults.
|
|
32
35
|
// -r fps Set the input frame rate for the video stream.
|
|
36
|
+
// -f mp4 Tell ffmpeg that it should expect an MP4-encoded input stream.
|
|
33
37
|
// -i pipe:0 Use standard input to get video data.
|
|
34
38
|
// -ss Fast forward to where HKSV is expecting us to be for a recording event.
|
|
35
|
-
this.commandLineArgs.push("-probesize",
|
|
39
|
+
this.commandLineArgs.push("-probesize", (tsBuffer?.length ?? protectCamera.stream.probesize).toString(), "-r", rtspEntry.channel.fps.toString(), "-f", "mp4", "-i", "pipe:0", "-ss", ((protectCamera.stream.hksv?.timeshift.duration ?? PROTECT_HKSV_TIMESHIFT_BUFFER_MAXDURATION) - recordingConfig.prebufferLength).toString() + "ms");
|
|
36
40
|
}
|
|
37
41
|
else {
|
|
38
42
|
// We're not using the timeshift buffer, so let's use the RTSP stream as the input to HKSV.
|
|
39
43
|
//
|
|
40
44
|
// -probesize amount How many bytes should be analyzed for stream information. Use our configured defaults.
|
|
41
|
-
// -max_delay 500000 Set an upper limit on how much time FFmpeg can take in demuxing packets.
|
|
42
45
|
// -r fps Set the input frame rate for the video stream.
|
|
43
46
|
// -rtsp_transport tcp Tell the RTSP stream handler that we're looking for a TCP connection.
|
|
44
47
|
// -i rtspEntry.url RTSPS URL to get our input stream from.
|
|
45
|
-
this.commandLineArgs.push("-probesize", protectCamera.stream.probesize.toString(), "-
|
|
48
|
+
this.commandLineArgs.push("-probesize", protectCamera.stream.probesize.toString(), "-r", rtspEntry.channel.fps.toString(), "-rtsp_transport", "tcp", "-i", rtspEntry.url);
|
|
46
49
|
}
|
|
47
50
|
// Configure our recording options for the video stream:
|
|
48
51
|
//
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protect-ffmpeg-record.js","sourceRoot":"","sources":["../../src/ffmpeg/protect-ffmpeg-record.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,yCAAyC,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,+DAA+D;AAC/D,MAAM,OAAO,sBAAuB,SAAQ,aAAa;IAE/C,eAAe,CAAU;IACzB,eAAe,CAAmE;IAE1F,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,
|
|
1
|
+
{"version":3,"file":"protect-ffmpeg-record.js","sourceRoot":"","sources":["../../src/ffmpeg/protect-ffmpeg-record.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "homebridge-unifi-protect",
|
|
3
|
-
"version": "7.1.
|
|
3
|
+
"version": "7.1.1",
|
|
4
4
|
"displayName": "Homebridge UniFi Protect",
|
|
5
5
|
"description": "Homebridge UniFi Protect plugin providing complete HomeKit integration for the UniFi Protect ecosystem with full support for most features including autoconfiguration, motion detection, multiple controllers, and realtime updates.",
|
|
6
6
|
"author": {
|