soit un bug ffmpeg introduit dans une version récente de ffmpeg
soir un changement dans l’API de ffmpeg qu’on a pas intégré dans Gladys
soit un changement dans Node 18 dans la gestion des child process
Il faut enquêter, j’ai pas encore eu le temps de mon côté, preneur d’aide sur le sujet
Edit: Pour info on utilise cette lib dans Gladys:
Après en voyant toutes les issues remontées (295 issues), et le fait que la lib n’est plus trop maintenue, pour ce que ça fait on ferait mieux de juste lancer ffmpeg nous même via un child process Node pour pouvoir le fermer proprement
Ca à la base c’est une feature (et pas un bug)
L’intérêt c’est d’avoir tout le temps une image fraîche en mémoire afin que si tu ouvre le tableau de bord, tu ai directement une image fraîche servi depuis la memoire, et pas de délai à attendre le temps qu’une nouvelle image soit récupérée
Ce qui est en soit une bonne idée, mais l’impact CPU est assez fort. Je n’imagine pas si on connecte 5 caméras ou plus dans Gladys.
Chez moi (mini-pc) je suis passé de 6% en moyenne à 50% voir 70% (Image toutes les 10 secondes).
Pour économiser en perf, Gladys pourrait mettre à jour en arrière plan, mais toutes les minutes tant qu’un dashboard n’est pas chargé ?
Enfin, c’est un détail ici, vu l’autre bug bien plus important !
C’est le but de ce paramètre « 1 minutes/30 secondes/10 secondes » etc… à la base
Là vous utilisez ce paramètres pour créer un faux semblant de live sur le dashboard, mais bon c’est trop gourmand car c’est pas vraiment fait pour ça ^^
Pour le live sur le tableau de bord, je suis d’accord que c’est une évolution sympa à apporter et à développer proprement
Je reprend ce sujet qui était passé aux oubliettes, il n’y avait pas d’issue Github
J’ai travaillé ce matin sur le remplacement de la librairie ffmpeg-fluent qui est clairement outdated et qui est la probable cause de cette fuite mémoire.
Je remplace par un simple child_process qui du coup partira bien de la mémoire une fois que l’image de caméra est récupérée.
La PR est là :
Encore désolé pour le retard, n’hésitez vraiment pas à me relancer sur des sujets comme ça si jamais il n’y a pas d’activité, et surtout pensez à créer une issue Github (Issues · GladysAssistant/Gladys · GitHub), c’est la « TODO list » de bug à corriger du projet
Et dans le cas où l’image n’est jamais récupérée, ça se comporte comment ?
De mes souvenirs c’était une autre cause de mon problème, fuite de mémoire quand la caméra n’est plus dispo.