Me gustaría poder, desde el panel de control, ampliar la cámara para así poder visualizarla mejor.
Vuelvo a publicar aquí lo que dije en un otro tema para archivarlo:
En resumen: Sí, tener las cámaras en directo es algo que quiero en Gladys, y se ofrecerá en Gladys Plus para poder seguir a distancia tu vivienda, en directo y en vídeo.
Pero es un gran proyecto, porque hay que poner en marcha toda una infraestructura de streaming de vídeo cifrado de extremo a extremo.
Tan pronto como me ponga con el tema, pondré un mensaje aquí.
Eso sería un gran plus, de hecho ![]()
Después, creo que hay que delimitar bien la funcionalidad. Me baso en mi ejemplo personal: mis cámaras exteriores están gestionadas por Frigate. Este software me permite definir zonas / máscaras / objetos a detectar / grabaciones / fotos… es algo bastante completo.
Me imagino a Gladys ofreciendo una vista en vivo, lo cual es muy cómodo, pero creo que hay que limitarse a eso, si no se va a convertir en una fábrica ^^
no me parece que en la solicitud de la función se mencione la posibilidad de analizar videos para desencadenar eventos ![]()
Está claro que el análisis de vídeo es otra cosa. Un proyecto en sí mismo, como ZoneMinder, MotionEye y Shinobi, por ejemplo (sin mencionar las soluciones de los fabricantes de cámaras).
Por mi parte, estoy intentando desplegar en un RaspberryPi 4, ZoneMinder, que es de código abierto y ofrece análisis de vídeo. Si es posible, intentaré interconectarlo con Gladys para activar escenas y mostrar el vídeo en directo (cuando sea posible).
Mostrar un flujo de vídeo sería lo mejor en Gladys, pero ni me imagino la cantidad de trabajo que supondría.
¿Y qué flujos? Web RTC, RTSP, HLS, Mpeg, ONIF, etc.
¿En un RPi4 sin nada más? ¿No va a ser complicado en cuanto a detección/cantidad de información a procesar?
Yo en mi NAS (donde se usa Frigate) he conectado un Coral USB, ¡cambia todo!
¡Me vendiste un sueño ahí
!
¡Es interesante y una gran idea tener un TPU externo!
Primero voy a probarlo en el pi 4 desnudo, si no en mi mini PC que aloja Gladys (CPU i5).
En cuanto a soluciones, Frigate también parece interesante, ¡especialmente porque ya hay un contenedor listo!
También uso frigate y es bastante ligero, en modo docker
Para información, para poder estar listo cuando comience este desarrollo, he empezado a redactar las especificaciones funcionales para asegurarme de la necesidad.
Funcionalidad
El objetivo es poder ver el flujo de video en vivo (¿y audio?) de una cámara desde el panel de control de Gladys.
El usuario puede hacer clic en un botón en la caja « Cámara » para mostrar la imagen en vivo y en tamaño más grande (mockup a continuación no contractual), y acceder a un flujo en vivo.
Límites
Para no sobrecargar las instancias locales (en términos de uso de CPU) y Gladys Plus en remoto (el streaming de video es caro), propongo los siguientes límites:
- Máximo 1 transmisión simultánea
- Máximo 5 minutos por transmisión (regreso al panel de control después)
- Resolución de 480p, 720p o 1080p, elegida por el usuario según su configuración. Dada la « instancia media » del usuario Gladys, no creo que transmitir en los 3 formatos y hacer adaptativo según la conexión a Internet del cliente sea realista, sería demasiado consumidor en términos de recursos. Haremos más pruebas juntos durante una versión alfa privada, creo.
Hoja de ruta
He escrito las especificaciones técnicas por mi parte y he podido hacer una estimación del tiempo de desarrollo. Es mucho menos de lo que pensaba, pero sigue siendo un desarrollo costoso ![]()
Tan pronto como termine todo lo que tengo en desarrollo, creo que esta funcionalidad es la siguiente « grande » que puede llegar a Gladys.
Las limitaciones me parecen « equitativas », especialmente para el límite de 5 minutos de visualización.
Pregunta sobre Gladys Plus: ¿El funcionamiento podría ser diferente si se accede directamente a Gladys?
Porque pasar por el « cloud » de Gladys Plus, el límite tiene sentido. Pero acceder localmente, solo habrá un problema potencial de CPU, pero sin impacto en la red.
Es decir:
- El límite de 5 minutos no está activo en modo « local »
- Una configuración del servicio « cámara » permite eliminar esta limitación solo localmente (opción no marcada por defecto)
Porque puedo imaginarme querer acceder potencialmente durante 10 minutos a 2 o 3 cámaras en directo si ocurre algo importante en casa (incluso conectándose por VPN para no usar el cloud y tener la limitación).
Si el flujo llega en 1080p, ¿Gladys degradará automáticamente la calidad? ¿No es demasiado consumidor de recursos?
Por ahora no he decidido si voy a desarrollar esta funcionalidad fuera de Gladys Plus, ya que son realmente dos desarrollos diferentes que funcionarán de manera diferente.
Mi objetivo en 2023 es realmente consolidar la oferta de Gladys Plus para hacerla atractiva y rentable en el proyecto ![]()
La idea es que Gladys Plus cubra la necesidad, si los límites son demasiado bajos, entonces los cambiamos. ¡Si tienes que usar tu VPN, es que Gladys Plus no está haciendo su trabajo! ^^
¿No es suficiente 1 cámara simultánea?
Cuando digo « 5 minutos », es solo que al final de los 5 minutos hay que volver a hacer clic para iniciar el directo, es para evitar que los usuarios dejen una pestaña abierta sin usarla, pero en sí, si quieres mirar 10 minutos seguidos, solo tendrás que hacer clic ![]()
No, 1080p enviado = 1080p mostrado.
Me hago un poco las mismas preguntas que @lmilcent y estoy bastante de acuerdo en que, en cuanto al uso, sería interesante poder ver varios flujos en directo.
Por ejemplo, en mi casa tengo dos cámaras que miran la entrada de mi casa, tengo dos porque el campo de visión de cada una no permite cubrirlo todo y una cámara con vista esférica toda deformada no me interesa.
En mi casa tengo la costumbre de comprobar en directo las dos cámaras a la vez porque, en realidad, me permite tener una visión global y no por trozos.
Eso es todo por mi parte, ya que desde el punto de vista del desarrollo no me imagino lo que supone el tamaño de los flujos frente al tamaño de los tubos frente a la seguridad de los datos… Digamos que en un mundo ideal, varios streams simultáneos serían bienvenidos ^^
En cuanto al límite de 5 minutos, ¿sería posible volver al panel de control solo en caso de inactividad del usuario? (como hacemos todos para evitar que nuestra computadora se ponga en modo de espera moviendo el ratón).
¡Hola! ¡Las propuestas me parecen realmente muy interesantes!
Sin embargo, no entiendo la necesidad de pasar por la versión de pago de Gladys para acceder a una cámara ![]()
Si estoy en casa en la tablet de la pared, quiero comprobar rápidamente una cámara.
La tablet siempre está en Gladys (local) y al hacer clic en la imagen muestro el video en vivo durante x segundos.
Si quiero acceder por la nube, paso por G+
Por lo tanto, para mí no debe ser solo G+.
Para mí hay dos proyectos aquí,
- el video en vivo en Gladys
- el cifrado de extremo a extremo en la oferta G+
Si un día haces lo que querías hacer (varios niveles de suscripción), los que se suscriban al flujo en vivo cifrado de A a Z acceden a sus cámaras desde el exterior, los demás no pueden acceder y al hacer clic te ofrece actualizar al nivel x de la suscripción para acceder a esta funcionalidad.
¿Qué opinas?
He comenzado un primer POC de este desarrollo, ¡funciona realmente bien!
He añadido un nuevo botón para pasar a directo (el icono no está fijo):
Pequeño video de demostración:
Hay un pequeño retraso para « capturar » el flujo, voy a hacer muchas pruebas para reducir al máximo este retraso, después no se puede evitar, habrá uno inevitablemente.
Lo voy a pensar ![]()
¡Y pensar que iba a empezar por mi cuenta sin haber visto todo esto, tengo ganas de ver el código!
¡Hola a todos!
Hoy he avanzado mucho en la funcionalidad, y buena noticia, ¡es 100% funcional por mi parte, tanto localmente como a través de Gladys Plus! Estoy muy contento con el resultado ![]()
Tanto localmente como a través de Gladys Plus, el streaming de vídeo será cifrado de extremo a extremo para garantizar su privacidad.
Os confieso que me costó bastante esta parte, porque quería un verdadero streaming cifrado de extremo a extremo (que es bastante diferente de un streaming cifrado solo).
Para cada « sesión » de streaming, Gladys genera una clave de cifrado única que se destruirá después de la sesión. Cuando se transmite a través de Gladys Plus, la instancia local la transmite al navegador cifrando esta clave con la clave pública del frontend, para que solo este tenga conocimiento de la clave de cifrado.
Lo que queda por hacer
Me gustaría hacer lo mismo que con Enedis y proporcionar lo antes posible una versión alfa privada a un primer grupo de probadores, especialmente para obtener comentarios sobre la parte de Gladys Plus, ya que necesito pruebas reales para saber si la latencia es aceptable para vosotros.
Antes de proporcionar esta versión alfa privada, debo probar muchos casos para que sea realmente limpio en términos de UX.
Sobre todo, debo asegurarme de que no haya fugas de memoria, ya que esta funcionalidad es bastante propensa a dejar flujos en segundo plano.
En el caso de Gladys Plus, hay 3 streams separados, y si uno se corta, los demás también deben cortarse para que no haya flujos « fantasma » e innecesarios en segundo plano:
Todo el trabajo consiste en probar todos los casos posibles
(el usuario cierra su navegador, la instancia se reinicia, etc…)
Os mantendré informados en cuanto tenga más cosas que mostraros.
¡Muy caliente para probar esto! Es una función que espero con impaciencia, simplemente porque a veces uso Gladys para abrir mi portal, es solo un comando tipo pulsación, pero si no estoy frente a mi portal, nada me indica realmente si acabo de abrirlo / detenerlo / cerrarlo.
¡La vista en vivo del portal sería una seguridad muy interesante para mí! ![]()
¡Hola a todos!
He trabajado duro ayer y hoy para terminar este desarrollo esta semana, ¡y ya está hecho! ![]()
Esta funcionalidad está disponible en alpha privada. He enviado invitaciones a un grupo limitado de usuarios por ahora, y según los comentarios ampliaré esta alpha.
Si estás interesado en probar esta funcionalidad en alpha (hay que saber lanzar una imagen Docker), deja un mensaje aquí ![]()
Interesado ![]()
¡interesado!



