frigate/web/public/locales
3ricj e7684eddbf Added substream support, dynamic substream creation, and playback methods for
This change adds first-class adaptive recording playback using main and sub recording variants. Frigate can now store multiple recording variants per camera, expose those variants through the recordings API, and serve variant-specific VOD playlists through routes such as /vod/variant/sub/....

The UI now uses the available recording variants and browser playback capability to choose an appropriate playback source, with a user-selectable Auto, Main, and Sub preference. This is applied across timeline playback, export preview, and object detail playback.

The backend also includes a fallback path for sub playback: when a native sub recording is not available for a requested time range, Frigate can generate a lower-resolution sub recording from the main segment, store it under the standard sub variant, and mark it with transcoded_from_main.

Additional changes include recording metadata for codec, resolution, bitrate, and variant; database migrations for recording variants and generated-sub tracking; tests for variant VOD selection and fallback behavior; improved storage graph sorting; and a small MQTT TLS guard so tls_insecure is only applied when TLS is configured.

Substream Configuration Examples
Record the main stream as the normal full-resolution recording and also record the camera substream as the sub variant:

cameras:
  front_door:
    ffmpeg:
      inputs:
        - path: rtsp://user:password@192.168.1.10:554/main
          roles:
            - record
          record_variant: main
        - path: rtsp://user:password@192.168.1.10:554/sub
          roles:
            - detect
            - record
          record_variant: sub
    detect:
      width: 640
      height: 360
      fps: 5
    record:
      enabled: true
Using go2rtc restreams:

go2rtc:
  streams:
    front_door:
      - rtsp://user:password@192.168.1.10:554/main
    front_door_sub:
      - rtsp://user:password@192.168.1.10:554/sub
cameras:
  front_door:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/front_door
          input_args: preset-rtsp-restream
          roles:
            - record
          record_variant: main
        - path: rtsp://127.0.0.1:8554/front_door_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
            - record
          record_variant: sub
    detect:
      width: 640
      height: 360
      fps: 5
    record:
      enabled: true
If record_variant is omitted on a record input, it defaults to main. Each camera can only use a given recording variant once, so the main and sub recording inputs should use distinct variant names.
2026-04-29 19:05:59 -07:00
..
ar Added translation using Weblate (Arabic) 2026-03-09 18:25:17 -06:00
bg Added translation using Weblate (Bulgarian) 2026-03-09 18:25:17 -06:00
ca Translated using Weblate (Catalan) 2026-03-09 18:25:17 -06:00
cs Added translation using Weblate (Czech) 2026-03-09 18:25:17 -06:00
da Update translation files 2026-03-09 18:25:17 -06:00
de Translated using Weblate (German) 2026-03-09 18:25:17 -06:00
el Added translation using Weblate (Greek) 2026-03-09 18:25:17 -06:00
en Added substream support, dynamic substream creation, and playback methods for 2026-04-29 19:05:59 -07:00
es Translated using Weblate (Spanish) 2026-03-09 18:25:17 -06:00
et Added translation using Weblate (Estonian) 2026-03-09 18:25:17 -06:00
fa Added translation using Weblate (Persian) 2026-03-09 18:25:17 -06:00
fi Added translation using Weblate (Finnish) 2026-03-09 18:25:17 -06:00
fr Translated using Weblate (French) 2026-03-09 18:25:17 -06:00
gl Update translation files 2026-03-09 18:25:17 -06:00
he Added translation using Weblate (Hebrew) 2026-03-09 18:25:17 -06:00
hi Added translation using Weblate (Hindi) 2026-03-09 18:25:17 -06:00
hr Added translation using Weblate (Croatian) 2026-03-09 18:25:17 -06:00
hu Added translation using Weblate (Hungarian) 2026-03-09 18:25:17 -06:00
id Added translation using Weblate (Indonesian) 2026-03-09 18:25:17 -06:00
is Added translation using Weblate (Icelandic) 2026-03-09 18:25:17 -06:00
it Added translation using Weblate (Italian) 2026-03-09 18:25:17 -06:00
ja Added translation using Weblate (Japanese) 2026-03-09 18:25:17 -06:00
ko Added translation using Weblate (Korean) 2026-03-09 18:25:17 -06:00
lt Update translation files 2026-03-09 18:25:17 -06:00
lv Update translation files 2026-03-09 18:25:17 -06:00
ml Added translation using Weblate (Malayalam) 2026-03-09 18:25:17 -06:00
nb_NO/config Added translation using Weblate (Norwegian Bokmål) 2026-03-09 18:25:17 -06:00
nb-NO Translated using Weblate (Norwegian Bokmål) 2026-02-21 10:22:26 -06:00
nl Translated using Weblate (Dutch) 2026-03-09 18:25:17 -06:00
pl Added translation using Weblate (Polish) 2026-03-09 18:25:17 -06:00
pt Added translation using Weblate (Portuguese) 2026-03-09 18:25:17 -06:00
pt_BR/config Update translation files 2026-03-09 18:25:17 -06:00
pt-BR Update translation files 2026-03-09 18:25:17 -06:00
ro Translated using Weblate (Romanian) 2026-03-09 18:25:17 -06:00
ru Added translation using Weblate (Russian) 2026-03-09 18:25:17 -06:00
sk Added translation using Weblate (Slovak) 2026-03-09 18:25:17 -06:00
sl Added translation using Weblate (Slovenian) 2026-03-09 18:25:17 -06:00
sq Added translation using Weblate (Albanian) 2026-03-09 18:25:17 -06:00
sr Added translation using Weblate (Serbian) 2026-03-09 18:25:17 -06:00
sv Added translation using Weblate (Swedish) 2026-03-09 18:25:17 -06:00
th Update translation files 2026-03-09 18:25:17 -06:00
tr Update translation files 2026-03-09 18:25:17 -06:00
uk Added translation using Weblate (Ukrainian) 2026-03-09 18:25:17 -06:00
ur Added translation using Weblate (Urdu) 2026-03-09 18:25:17 -06:00
uz Added translation using Weblate (Uzbek) 2026-03-09 18:25:17 -06:00
vi Added translation using Weblate (Vietnamese) 2026-03-09 18:25:17 -06:00
yue_Hant/config Translated using Weblate (Cantonese (Traditional Han script)) 2026-03-09 18:25:17 -06:00
yue-Hant Translated using Weblate (Cantonese (Traditional Han script)) 2026-03-09 18:25:17 -06:00
zh_Hans/config Added translation using Weblate (Chinese (Simplified Han script)) 2026-03-09 18:25:17 -06:00
zh_Hant/config Added translation using Weblate (Chinese (Traditional Han script)) 2026-03-09 18:25:17 -06:00
zh-CN Translated using Weblate (Chinese (Simplified Han script)) 2026-02-21 10:22:26 -06:00
zh-Hans/config Added translation using Weblate (Chinese (Simplified Han script)) 2026-03-09 18:25:17 -06:00
zh-Hant Update translation files 2026-02-03 10:54:04 -07:00