feat: Add proxying support for images (#2427)

- Closes #2418
This commit is contained in:
Dermot Duffy
2026-06-30 17:45:12 -07:00
committed by dermotduffy
parent 9384785d37
commit 1cd5520154
51 changed files with 2404 additions and 687 deletions
+29 -27
View File
@@ -64,38 +64,18 @@
"rotation": "Rotation",
"rotations": {
"0": "Keine Rotation",
"90": "90 Grad im Uhrzeigersinn",
"180": "180 Grad im Uhrzeigersinn",
"270": "270 Grad im Uhrzeigersinn"
"270": "270 Grad im Uhrzeigersinn",
"90": "90 Grad im Uhrzeigersinn"
}
},
"go2rtc": {
"url": "go2rtc URL"
},
"proxy": {
"dynamic": "Dynamischer Proxy",
"editor_label": "Kamera Proxy",
"live": "Live Proxy",
"media": "Medien Proxy",
"modes": {
"auto": "Proxy automatisch konfigurieren",
"false": "Proxy deaktiviert",
"true": "Proxy aktiviert"
},
"ssl_ciphers": {
"auto": "SSL ciphers automatisch konfiguriert",
"default": "Standard SSL ciphers",
"editor_label": "SSL ciphers",
"insecure": "Unsichere SSL ciphers",
"intermediate": "Zwischen SSL ciphers",
"modern": "Moderne SSL ciphers"
},
"ssl_verification": {
"auto": "SSL Überprüfung automatisch konfiguriert",
"editor_label": "SSL Überprüfung",
"false": "SSL Überprüfung deaktiviert",
"true": "SSL Überprüfung aktiviert"
}
"media": "Medien Proxy"
},
"reolink": {
"editor_label": "Reolink Optionen",
@@ -116,10 +96,6 @@
}
},
"common": {
"media_types": {
"events": "Ereignisse",
"recordings": "Aufzeichnungen"
},
"controls": {
"builtin": "Eingebettete Video Bedienelemente",
"thumbnails": {
@@ -165,6 +141,32 @@
"microphone_mute": "Bei Mikrofon Stummschaltung",
"microphone_unmute": "Bei Mikrofon Reaktivierung"
},
"media_types": {
"events": "Ereignisse",
"recordings": "Aufzeichnungen"
},
"proxy": {
"dynamic": "Dynamischer Proxy",
"modes": {
"auto": "Proxy automatisch konfigurieren",
"false": "Proxy deaktiviert",
"true": "Proxy aktiviert"
},
"ssl_ciphers": {
"auto": "SSL ciphers automatisch konfiguriert",
"default": "Standard SSL ciphers",
"editor_label": "SSL ciphers",
"insecure": "Unsichere SSL ciphers",
"intermediate": "Zwischen SSL ciphers",
"modern": "Moderne SSL ciphers"
},
"ssl_verification": {
"auto": "SSL Überprüfung automatisch konfiguriert",
"editor_label": "SSL Überprüfung",
"false": "SSL Überprüfung deaktiviert",
"true": "SSL Überprüfung aktiviert"
}
},
"timeline": {
"style": "Zeitleisten Stil",
"styles": {
+26 -21
View File
@@ -173,29 +173,9 @@
"url": "MotionEye UI URL"
},
"proxy": {
"dynamic": "Dynamic proxying",
"editor_label": "Camera proxying",
"live": "Live proxying",
"media": "Media proxying",
"modes": {
"auto": "Proxying automatically configured",
"false": "Proxying disabled",
"true": "Proxying enabled"
},
"ssl_ciphers": {
"auto": "SSL ciphers automatically configured",
"default": "Default SSL ciphers",
"editor_label": "SSL ciphers",
"insecure": "Insecure SSL ciphers",
"intermediate": "Intermediate SSL ciphers",
"modern": "Modern SSL ciphers"
},
"ssl_verification": {
"auto": "SSL verification automatically configured",
"editor_label": "SSL verification",
"false": "SSL verification disabled",
"true": "SSL verification enabled"
}
"media": "Media proxying"
},
"reolink": {
"editor_label": "Reolink options",
@@ -322,6 +302,9 @@
"screensaver": "Embedded screensaver image",
"url": "Arbitrary image specified by URL"
},
"proxy": {
"editor_label": "Image proxying"
},
"refresh_seconds": "Number of seconds after which to refresh (0=never)",
"url": "Static image URL"
},
@@ -342,6 +325,28 @@
"recordings": "Recordings",
"reviews": "Reviews"
},
"proxy": {
"dynamic": "Dynamic proxying",
"modes": {
"auto": "Proxying automatically configured",
"false": "Proxying disabled",
"true": "Proxying enabled"
},
"ssl_ciphers": {
"auto": "SSL ciphers automatically configured",
"default": "Default SSL ciphers",
"editor_label": "SSL ciphers",
"insecure": "Insecure SSL ciphers",
"intermediate": "Intermediate SSL ciphers",
"modern": "Modern SSL ciphers"
},
"ssl_verification": {
"auto": "SSL verification automatically configured",
"editor_label": "SSL verification",
"false": "SSL verification disabled",
"true": "SSL verification enabled"
}
},
"timeline": {
"clustering_threshold": "The count of events at which they are clustered (0=no clustering)",
"events_media_type": "The events media the timeline displays",
+32 -30
View File
@@ -127,27 +127,7 @@
"url": "URL de l’interface MotionEye"
},
"proxy": {
"dynamic": "Proxy dynamique",
"editor_label": "Proxy de la caméra",
"modes": {
"auto": "Proxy automatique",
"false": "Proxy désactivé",
"true": "Proxy activé"
},
"ssl_ciphers": {
"auto": "Chiffrement SSL automatique",
"default": "Chiffrement SSL par défaut",
"editor_label": "Chiffrement SSL",
"insecure": "Chiffrement SSL non sécurisé",
"intermediate": "Chiffrement SSL intermédiaire",
"modern": "Chiffrement SSL moderne"
},
"ssl_verification": {
"auto": "Vérification SSL automatique",
"editor_label": "Vérification SSL",
"false": "Vérification SSL désactivée",
"true": "Vérification SSL activée"
}
"editor_label": "Proxy de la caméra"
},
"reolink": {
"editor_label": "Option Reolink",
@@ -178,15 +158,6 @@
}
},
"common": {
"media_types": {
"events": "Événements",
"recordings": "Enregistrements"
},
"events_media_types": {
"all": "Tous types de médias",
"clips": "Extraits",
"snapshots": "Instantanés"
},
"controls": {
"builtin": "Commandes vidéo intégrées",
"filter": {
@@ -257,6 +228,11 @@
"grid_selected_width_factor": "Augmenter la largeur du média sélectionnée par ce facteur",
"mode": "Mode"
},
"events_media_types": {
"all": "Tous types de médias",
"clips": "Extraits",
"snapshots": "Instantanés"
},
"image": {
"entity": "Entité à utiliser avec le mode entité",
"entity_parameters": "Paramètres de requête ajoutés aux URL des images basées sur l'entité (par exemple, width=1920&height=1080)",
@@ -279,6 +255,32 @@
"unselected": "Lors de la désélection",
"visible": "Sur la visibilité du navigateur/onglet"
},
"media_types": {
"events": "Événements",
"recordings": "Enregistrements"
},
"proxy": {
"dynamic": "Proxy dynamique",
"modes": {
"auto": "Proxy automatique",
"false": "Proxy désactivé",
"true": "Proxy activé"
},
"ssl_ciphers": {
"auto": "Chiffrement SSL automatique",
"default": "Chiffrement SSL par défaut",
"editor_label": "Chiffrement SSL",
"insecure": "Chiffrement SSL non sécurisé",
"intermediate": "Chiffrement SSL intermédiaire",
"modern": "Chiffrement SSL moderne"
},
"ssl_verification": {
"auto": "Vérification SSL automatique",
"editor_label": "Vérification SSL",
"false": "Vérification SSL désactivée",
"true": "Vérification SSL activée"
}
},
"timeline": {
"clustering_threshold": "Nombre d'événements pour lesquels ils sont regroupés (0 = pas de clustering)",
"events_media_type": "Médias affichés par la chronologie",
+25 -23
View File
@@ -83,9 +83,9 @@
"rotation": "Obrót",
"rotations": {
"0": "Brak obrotu",
"90": "90 stopni zgodnie z zegarem",
"180": "180 stopni zgodnie z zegarem",
"270": "270 stopni zgodnie z zegarem"
"270": "270 stopni zgodnie z zegarem",
"90": "90 stopni zgodnie z zegarem"
}
},
"engines": {
@@ -143,29 +143,9 @@
"url": "URL interfejsu MotionEye"
},
"proxy": {
"dynamic": "Proxy dynamiczne",
"editor_label": "Proxy kamery",
"live": "Proxy na żywo",
"media": "Proxy mediów",
"modes": {
"auto": "Proxy skonfigurowane automatycznie",
"false": "Proxy wyłączone",
"true": "Proxy włączone"
},
"ssl_ciphers": {
"auto": "Szyfry SSL skonfigurowane automatycznie",
"default": "Domyślne szyfry SSL",
"editor_label": "Szyfry SSL",
"insecure": "Niezabezpieczone szyfry SSL",
"intermediate": "Pośrednie szyfry SSL",
"modern": "Nowoczesne szyfry SSL"
},
"ssl_verification": {
"auto": "Weryfikacja SSL skonfigurowana automatycznie",
"editor_label": "Weryfikacja SSL",
"false": "Weryfikacja SSL wyłączona",
"true": "Weryfikacja SSL włączona"
}
"media": "Proxy mediów"
},
"reolink": {
"editor_label": "Opcje Reolink",
@@ -302,6 +282,28 @@
"unselected": "Po odznaczeniu",
"visible": "Gdy przeglądarka/karta jest widoczna"
},
"proxy": {
"dynamic": "Proxy dynamiczne",
"modes": {
"auto": "Proxy skonfigurowane automatycznie",
"false": "Proxy wyłączone",
"true": "Proxy włączone"
},
"ssl_ciphers": {
"auto": "Szyfry SSL skonfigurowane automatycznie",
"default": "Domyślne szyfry SSL",
"editor_label": "Szyfry SSL",
"insecure": "Niezabezpieczone szyfry SSL",
"intermediate": "Pośrednie szyfry SSL",
"modern": "Nowoczesne szyfry SSL"
},
"ssl_verification": {
"auto": "Weryfikacja SSL skonfigurowana automatycznie",
"editor_label": "Weryfikacja SSL",
"false": "Weryfikacja SSL wyłączona",
"true": "Weryfikacja SSL włączona"
}
},
"timeline": {
"clustering_threshold": "Liczba zdarzeń, przy której są grupowane (0=brak)",
"events_media_type": "Typ mediów wyświetlany na osi czasu",