Files
frigate/web/public/locales/en/components/player.json
T
Josh HawkinsandNicolas Mowen 1498231eb9 Add sub stream recording with adaptive quality playback (#24009)
* add sub stream recording with adaptive quality playback

Optionally record a second, lower bitrate stream alongside the main
recording stream via a `record_sub` input role and `record.sub` config block, with its own retention windows.
Recordings rows now carry the stream type plus the media details needed to serve both streams from one manifest: video codec, audio presence, audio codec and rate, and a record-time keyframe index.

Playback resolves coverage across both streams and merges them into a single VOD sequence, falling back to a discontinuity manifest with per-clip init segments when the media signatures differ. The player exposes a quality selector, and an auto governor picks the stream from stall time, bandwidth, codec support, and the save-data hint.

* fix tests and i18n
2026-09-12 07:30:04 -06:00

68 lines
2.1 KiB
JSON

{
"noRecordingsFoundForThisTime": "No recordings found for this time",
"noPreviewFound": "No Preview Found",
"noPreviewFoundFor": "No Preview Found for {{cameraName}}",
"submitFrigatePlus": {
"title": "Submit this frame to Frigate+?",
"submit": "Submit",
"previewError": "Could not load snapshot preview. The recording may not be available at this time."
},
"livePlayerRequiredIOSVersion": "iOS 17.1 or greater is required for this live stream type.",
"streamOffline": {
"title": "Stream Offline",
"desc": "No frames have been received on the {{cameraName}} <code>detect</code> stream, check error logs"
},
"cameraOff": "Camera is off",
"quality": {
"auto": "Auto",
"autoLow": "Playing low quality (limited bandwidth)",
"autoLowCodec": "Playing low quality (Original not supported by this browser)",
"autoLowSaveData": "Playing low quality (data saver)",
"main": "Original",
"sub": "Low",
"notSupportedBrowser": "Not supported by this browser",
"label": "Quality",
"noAudio": "No audio",
"audioRate": "{{rate}} kHz audio",
"audioCodecRate": "{{codec}} {{rate}} kHz",
"noRecordings": "No recordings in this time range"
},
"stats": {
"streamType": {
"title": "Stream Type:",
"short": "Type"
},
"bandwidth": {
"title": "Bandwidth:",
"short": "Bandwidth"
},
"latency": {
"title": "Latency:",
"value": "{{seconds}} seconds",
"short": {
"title": "Latency",
"value": "{{seconds}} sec"
}
},
"totalFrames": "Total Frames:",
"droppedFrames": {
"title": "Dropped Frames:",
"short": {
"title": "Dropped",
"value": "{{droppedFrames}} frames"
}
},
"decodedFrames": "Decoded Frames:",
"droppedFrameRate": "Dropped Frame Rate:"
},
"toast": {
"success": {
"submittedFrigatePlus": "Successfully submitted frame to Frigate+"
},
"error": {
"submitFrigatePlusFailed": "Failed to submit frame to Frigate+",
"playRecordingsFailed": "Failed to play recordings (error {{code}}): {{message}}"
}
}
}