You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| `Video.Transcode.Hardware` | Use hardware-accelerated transcoding when available (Apple Macs, Intel Quick Sync Video-enabled CPUs, Raspberry Pi 4). **(default: disabled)**.
140
140
| `Video.Transcode` | When streaming to local clients (e.g. at home), always transcode livestreams, instead of transmuxing them. **(default: disabled)**.
141
+
| `Video.Transcode.Bitrate<I>.Value</I>` | Bitrate, in kilobits per second, to use when transcoding to local clients, ignoring the bitrate HomeKit requests. HomeKit typically requests lower video quality than you may desire in your environment. **(default: 2000)**.
141
142
| `Video.Transcode.HighLatency` | When streaming to high-latency clients (e.g. cellular connections), transcode livestreams instead of transmuxing them. **(default: enabled)**.
143
+
| `Video.Transcode.HighLatency.Bitrate<I>.Value</I>` | Bitrate, in kilobits per second, to use when transcoding to high-latency (e.g. cellular) clients, ignoring the bitrate HomeKit requests. HomeKit typically requests lower video quality than you may desire in your environment. **(default: 1000)**.
142
144
| `Video.Stream.Only.High` | When viewing livestreams, force the use of the high quality video stream from the Protect controller. **(default: disabled)**.
143
145
| `Video.Stream.Only.Medium` | When viewing livestreams, force the use of the medium quality video stream from the Protect controller. **(default: disabled)**.
144
146
| `Video.Stream.Only.Low` | When viewing livestreams, force the use of the low quality video stream from the Protect controller. **(default: disabled)**.
{default: false,description: "Use hardware-accelerated transcoding when available (Apple Macs, Intel Quick Sync Video-enabled CPUs, Raspberry Pi 4).",name: "Transcode.Hardware"},
135
136
{default: false,description: "When streaming to local clients (e.g. at home), always transcode livestreams, instead of transmuxing them.",name: "Transcode"},
137
+
{default: false,defaultValue: PROTECT_TRANSCODE_BITRATE,description: "Bitrate, in kilobits per second, to use when transcoding to local clients, ignoring the bitrate HomeKit requests. HomeKit typically requests lower video quality than you may desire in your environment.",group: "Transcode",name: "Transcode.Bitrate"},
136
138
{default: true,description: "When streaming to high-latency clients (e.g. cellular connections), transcode livestreams instead of transmuxing them.",name: "Transcode.HighLatency"},
139
+
{default: false,defaultValue: PROTECT_TRANSCODE_HIGH_LATENCY_BITRATE,description: "Bitrate, in kilobits per second, to use when transcoding to high-latency (e.g. cellular) clients, ignoring the bitrate HomeKit requests. HomeKit typically requests lower video quality than you may desire in your environment.",group: "Transcode.HighLatency",name: "Transcode.HighLatency.Bitrate"},
137
140
{default: false,description: "When viewing livestreams, force the use of the high quality video stream from the Protect controller.",name: "Stream.Only.High"},
138
141
{default: false,description: "When viewing livestreams, force the use of the medium quality video stream from the Protect controller.",name: "Stream.Only.Medium"},
139
142
{default: false,description: "When viewing livestreams, force the use of the low quality video stream from the Protect controller.",name: "Stream.Only.Low"},
Copy file name to clipboardExpand all lines: src/protect-stream.ts
+24-7
Original file line number
Diff line number
Diff line change
@@ -394,8 +394,11 @@ export class ProtectStreamingDelegate implements CameraStreamingDelegate {
394
394
// How do we determine if we're a high latency connection? We look at the RTP packet time of the audio packet time for a hint. HomeKit uses values of 20, 30, 40,
395
395
// and 60ms. We make an assumption, validated by lots of real-world testing, that when we see 60ms used by HomeKit, it's a high latency connection and act
@@ -421,8 +439,7 @@ export class ProtectStreamingDelegate implements CameraStreamingDelegate {
421
439
return;
422
440
}
423
441
424
-
// Save our current bitrate before we modify it, but only if we're the first stream - we don't want to do this for
425
-
// concurrent streaming clients for this camera.
442
+
// Save our current bitrate before we modify it, but only if we're the first stream - we don't want to do this for concurrent streaming clients for this camera.
// How often, in seconds, should we heartbeat FFmpeg in two-way audio sessions. This should be less than 5 seconds, which is FFmpeg's input timeout interval.
0 commit comments