Archives de catégorie : Logiciels libres

Zoneminder, solution de vidéosurveillance sous linux

Dans un précédent article j’avais évoqué que j’avais commencé à m’intéresser au système de vidéosurveillance. Je m’étais attardé sur deux outils, l’un très simple, motionplus et l’autre nettement plus évolué zoneminder. Dans un premier temps rebuté par la complexité de configuration de zoneminder, j’ai testé pendant plusieurs semaines motionplus. Mais finalement il ne m’a pas convaincu, certains points sont totalement rédhibitoires comme une datation à l’américaine qui fait que les évènements sont datés sur 12h sans qu’on sache si c’est le matin ou l’après midi ou alors il n’y a aucune fonctionnalité pour supprimer les évènements, il faut passer par une commande SQL pour pouvoir le faire. Mais le soucis principal est l’absence de détection pour ma caméra extérieure.

J’ai donc recherché d’autres outils de vidéosurveillance plus conviviaux et efficaces et je me suis cassé les dents pour installer Frigate, OS-NVR ou bien encore feniks. Ces outils sont basés sur docker que je connais mal, il me faudra passer par son appropriation pour que je puisse aller plus loin. Cela signifie également un changement d’architecture de mes serveurs et pour l’instant je n’ai pas franchi le pas de la « conteneurisation ».

Par dépit je me suis donc rabattu sur zoneminder et j’ai donc du passer du temps à comprendre ses rouages pour pouvoir le configurer proprement. J’ai donc découvert les zones qui permettent de découper l’image en plusieurs parties avec des configurations de détection différentes d’une zone à l’autre. Sur l’image ci-dessous, seules les zones en rouge sont actives en détection.

J’ai pas mal galéré pour trouver le bon réglage pour ma zone autour du portail qui est plutôt lointain, elle ne détectait rien du tout, même pas l’ouverture du portail. Finalement j’ai repris les réglages de cette page qui ont été un bon point de départ, mais ce n’est pas encore totalement satisfaisant pour détecter des personnes proche du portail. Et je continue à tâtonner en affinant les paramétrages de la zone.

Une autre découverte autour de zoneminder est ZMES, le serveur de notification d’évènement, c’est un outil complémentaire permettant la reconnaissance d’objet par deep learning. Il permet ainsi d’identifier automatiquement les objets comme on peut le voir ci-dessous

Et quand on visualise un évènement, l’objet identifié est surligné

Au final, il me reste à continuer à travailler le paramétrage des zones pour améliorer la détection, je vais sans doute étoffer mon système avec une nouvelle caméra extérieure et une caméra intérieure. En attendant j’ai mis à jour ma page dédiée sur mon site Funix.

Passage à cauldron et kdenlive 24.08.1

je suis passé à la dernière version de kdenlive, ça ne s’est pas fait sans mal car il faut passer à KF6, or pour cela pour ma Mageia il faut que je passe à la version Cauldron, version instable qui préfigure la Mageia 10.

kdenlive 24.08.1

Cela ne s’est pas fait sans mal, j’ai suivi les indications qui sont indiquées sur le wiki mais il y a plein de conflits à gérer en supprimant manuellement les packages de la Mageia 9 et relancer x fois la commande urpmi –auto-update –auto.

J’ai dû faire face à la non compilation du module propriétaire nvidia lié au fichier conftest.sh. Pour le résoudre j’ai édité le fichier /usr/src/nvidia470-470.256.02-1.mga10.nonfree/conftest.sh et j’ai rajouté une ligne comme ceci

-nostdinc -isystem $ISYSTEM \
-Wno-implicit-function-declaration -Wno-strict-prototypes -Wno-incompatible-pointer-types"

Pour compiler on tape ensuite

dkms build -m nvidia470 -v 470.256.02-1.mga10.nonfree
dkms install -m nvidia470 -v 470.256.02-1.mga10.nonfree

On veille à ce qu’il y ait bien nvidia dans le fichier /etc/X11/xorg.conf et on reboot.

Pour en revenir à kdenlive, la page d’installation avec la version 7.28 de mlt et kdenlive 24.08.1 est à jour. Et à ce jour, je n’ai pas pris le temps d’évaluer les nouvelles fonctionnalités.

Systèmes de vidéosurveillance sous Linux

Dans une société qui se sécurise, je ne suis pas en reste et j’ai décidé d’installer 2, 3 caméras judicieusement disposées à des fins de vidéosurveillance et évidemment le tout doit marcher sous Linux. L’idée n’est pas de passer mon temps à les visualiser en temps réel, mais que le système de supervision détecte les mouvements anormaux et me renvoie une alarme.

On trouve sur un célèbre site de vente en ligne des caméras IP plutôt abordables, mon premier choix s’est porté sur la marque Reolink, mais j’ai été incapable de la faire fonctionner sous Linux et même sous windows ! Et rien n’est fait de la part de ce constructeur pour les utilisateurs linux, donc retour à l’envoyeur et je me rabats sur la marque Annke et ce modèle I51DL.

Caméra Annke avec son injecteur PoE

Dans un cas comme un autre ces caméras IP sont alimentées via le câble Ethernet (PoE Power over Ethernet) et cela nécessite un routeur ou un adaptateur particulier comme celui qu’on peut voir sur la photo ci-dessus de ce modèle.

Petit bémol, j’ai dû passer au moins une fois par windows pour l’activer avec le logiciel maison en fixant un mot de passe et l’adresse IP mais ensuite toute la configuration peut se faire d’un navigateur sous Linux en tapant simplement l’adresse IP dans la barre d’URL, comme on peut le voir sur ce screenshot pris sur mon poste Linux/Mageia 9.

Page de configuration de la caméra Annke

La visualisation se fait simplement en tapant dans un shell

ffplay rtsp://admin:password@192.168.2.110

Côté logiciel, pour l’instant j’ai testé deux logiciels, zoneminder et motionplus, les deux permettant d’intégrer un large panel de caméras qu’elles soient distantes IP, Wifi, locales, analogiques ou numériques, de faire de la détection automatique de mouvement, de créer des événements. Ils sont basés également sur un serveur web et MySQL pour gérer les évènements, ils sont accessibles via un navigateur où il possible de les configurer, de visualiser en temps réel les caméras et de gérer les événements.

Zoneminder est considéré comme la référence opensource, mais il est de prime abord plus complexe avec beaucoup plus de fonctionnalités que motionplus plus simple et moins lourd.

Zoneminder

J’ai créé une page dédiée sur mon site Funix où vous trouverez davantage de détails sur l’installation et leur utilisation. Cette page est appelée à s’étoffer au fur et à mesure de l’installation, de la montée en gamme et en perfectionnement de mon propre système.

Tutoriel Kdenlive

Une icône fixe a fait son apparition sur le bandeau à droite de mon blog, un lien s’y cache qui pointe vers mon tutoriel de Kdenlive, l’excellent logiciel de montage vidéo libre qui tourne sous linux et windows.

Kdenlive 24.05.2

Je l’ai revu de fond en comble, en mettant à jour les copies d’écran vers la dernière version 24.05.2 et en adaptant certaines descriptions. Il me reste à reprendre également le guide pdf téléchargeable.

Je vous invite à le consulter et à découvrir ce merveilleux logiciel.

Réseau local

J’ai récemment revu en profondeur mon réseau local qui jusqu’à présent avait l’architecture décrite dans ce post. Pour résumer en un simple schéma, cela donne quelque chose comme cela :

Internet arrive via la fibre sur une Box SFR qui est branchée sur un routeur TP-Link Archer C6 qui dessert mon réseau local (mentionné Réseau 1 sur le schéma ci-dessus) constitué de :

  • Un Lenovo ThinkCenter M92p utilisé comme serveur évoqué dans ce post. Il se nomme sur mon réseau ultra et tourne sous Mageia 9. Sur la photo ci-dessous on peut le voir sur la tranche à côté de la box SFR connectée en fibre optique et le routeur TP-link Archer C6 qui vient compléter les misérables fonctionnalités de la box et qui permet une bonne séparation des réseaux, le tout ondulé.
  • Un PC ACER Predator G3-605 processeur Intel Core i7-4790 16Go de RAM DD3, disque SSD de 256Go, 1+4To de disques SATA appelé predator,  il est doté de Mageia 9. C’est ma station de montage vidéo avec kdenlive il est équipé d’un scanner Epson Perfection V30, c’est également mon PC de stockage multimédia avec une capacité totale de 22To avec son extension de disques Terramaster (17To sur 5 disques)
Poste de travail Predator sur la droite, serveur Lenovo Thinkcenter M92P à côté de la Box modem SFR
Continuer la lecture de Réseau local

Kodi et home cinema

Je me suis équipé récemment d’une barre de son 5.1 et qui embarque tout un tas de technologies permettant de se croire au cinéma comme la spatialisation surround DTS Virtual X et son concurrent Dolby Atmos. Je me suis empressé de brancher mon mini PC Dell Dell Optiplex 7040 qui fait office de mediacenter avec kodi pour voir la différence. En visualisant un film et bien à vrai dire, c’est plutôt la déception, le son reste plat, même s’il bénéficie de plus de volume et de basse.

Mini PC mediacenter Dell Optiplex 7040 en bas à droite

En fait ce n’est pas vraiment plug and play et il y a quelques manipulations à faire sur le PC pour prendre en compte ces technologies audio. Cela commence par la configuration de PulseAudio, on lance son utilitaire de configuration et dans l’onglet Configuration il faut pointer sur la sortie HDMI (puisque le PC est branché d’abord à la barre, puis la barre à la TV), il ne faut pas choisir les sorties HDMI multicanal 5.1 ou 7.1 même si la barre le permet.

Ensuite dans l’onglet Périphériques de sortie dans les options avancées, je coche toutes les cases liées aux différentes technologies audio disponibles.

Maintenant sous kodi, dans les paramètres système Audio en mode expert, je choisis le Dispositif de sortie audio correspondant à la sortie HDMI, pour Configuration de la sortie, je mets Meilleure concordance, je coche Mixage stéréo vers multicanal (même si j’ai un doute qu’il faille le faire, à tester).

Puis plus bas, je coche Activer le mode laisser-passer (Passthrough audio) et toutes les cases en dessous.

Et là, la différence est flagrante d’autant plus si on active sur la barre de son le mode Dolby atmos.

Maintenant concernant le format audio des films, on a essentiellement deux choix, le codec AAC et le codec AC3 (Dolby digital). Le premier est un très bon choix pour la qualité de son, alors que le deuxième a été pensé pour les sons surround même s’il est réputé fournir un son de qualité inférieure à l’AAC.

Pour aller plus loin, un peu de lecture, tout d’abord Comprendre les différents formats de son cinéma, et Obtenir un son multicanal depuis son ordinateur sous Linux.

Partager des bases de données MySQL multimédia Digikam et Kodi

A l’occasion d’une reconfiguration totale de mon réseau que j’évoquerai dans un prochain post, j’ai été emmené à vouloir partager mes bases de donnée multimedia kodi et digikam d’un PC à un autre. Mes bases de donnée sont physiquement sur un PC de bureau Acer Predator doté d’une large capacité de stockage (22 To) mais particulièrement bruyant, pour cette raison sa place n’est pas vraiment dans le salon, j’ai donc fait l’acquisition d’un mini PC Dell optiplex 7040 silencieux branché à la TV avec l’objectif qu’il puisse accéder aux bases de données multimedia de mon PC Predator placé à une distance respectable dans une autre pièce.

Commençons par kodi qui, pour rappel est un mediacenter que j’utilise essentiellement pour visualiser mes films.

La première chose à faire est d’exporter la base de donnée de kodi vers un serveur MySQL, en l’occurrence vers mon serveur mini PC Lenovo Thinkcenter sur lequel tourne déjà un serveur MariaDB. On crée ensuite le fichier ./kodi/userdata/advancedsettings.xml contenant

<advancedsettings>
<videodatabase>
<type>mysql</type>
<host>192.168.13.11</host>
<port>3306</port>
<user>kodi</user>
<pass>kodi</pass>
</videodatabase>
<videolibrary>
<importwatchedstate>true</importwatchedstate>
<importresumepoint>true</importresumepoint>
</videolibrary>
<musicdatabase>
<type>mysql</type>
<host>192.168.13.11</host>
<port>3306</port>
<user>kodi</user>
<pass>kodi</pass>
</musicdatabase>
</advancedsettings>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Maintenant pour utiliser cette base de données sur d’autres machines avec d’autres utilisateurs, il suffit de copier  le fichier advancedsettings.xml dans le répertoire userdata de l’autre utilisateur d’une autre machine. Il faudra également copier le fichier Textures13.db sous userdata/Database et le répertoire complet userdata/Thumbnails. Ce n’est pas tout, si vos fichiers de votre PC initial se trouvent sur le disque /germaine/video/Films, sur les autres postes clients ce répertoire doit être partagé par montage NFS aux autres postes et doit être configuré tel quel en tant que source sur ces mêmes postes. Attention vous devez veiller à avoir la même version de kodi sur chacun des postes où la base est partagée pour éviter des conflits et des problèmes éventuels. La manipulation est décrite plus dans le détail sur cette page.

Passons à digikam maintenant qui est certainement le gestionnaire open source photos de référence (voir mes posts dans l’ordre chronologique , et ici).

Digikam

De la même manière, sur le PC de référence on exportera la base dans une base de données MySQL. Sur l’autre poste, on veillera à avoir exactement la même version de digikam et on configurera l’accès à la base de donnée qu’on a configuré préalablement sur le poste de référence.

Configuration de la base de données MySQL sous digikam

Dans Collections, comme pour kodi, le répertoire contenant les photos du PC de référence doit être identique et partagé par montage NFS et le chemin doit être identique. Ce n’est pas fini, car en consultant via phpMyAdmin l’entrée albumroots on voit que le répertoire contenant les photos est identifié par son uuid comme cela volumeid:?uuid=35f2d2e0-f3f0-4bc1-a045-b7eb45261962&fileuuid=f5da6cf3-983b-4c9e-bced-ba341864e317. Du coup sur l’autre poste les photos sont inaccessibles. Sous phpMyAdmin, on tapera la commande SQL suivante :

UPDATE AlbumRoots SET identifier='volumeid:?path=/germaine/sauvegarde-mana/photos', specificPath='/' WHERE id=1;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

On mentionnera bien sûr le chemin commun du répertoire contenant les photos.

Taguer ses fichiers audio en ligne de commande avec beets

Après mon post pour taguer les fichiers audio via via une interface graphique, voici le complément pour taguer les fichiers en ligne de commande avec l’outil beets avec quelques scripts utiles.
Beets est un outil écrit en python qui tout comme MusicBrainz Picard permet de taguer automatiquement les fichiers audio à partir de la base de données musicales de MusicBrainz. Rappelons que MusicBrainz est une vaste bibliothèque musicale totalement libre qui collecte des métadonnées musicales que tout un chacun peut alimenter.

Beets utilise une base de données locales où sont stockées les métadatas par fichier audio, les mêmes métadatas peuvent être enregistrés dans chaque fichier. Je l’ai installé sur ma mageia 9 tout simplement en tapant pip install beets

Le fichier de configuration se trouve sous /home/olivier/.config/beets/config.yaml et contiendra a minima

directory : /anatole/beets-music #le répertoire contenant les fichiers audio qui seront copiés ou déplacés
library: /anatole/beets-music/music-database.db #la base de données
import:
copy: no #si yes les fichiers audio modifiés seront copiés dans le répertoire défini plus haut
move: no #si yes les fichiers audio modifiées seront déplacés dans le répertoire défini plus haut
write: no #si yes les métadatas seront enregistrés dans le fichier, si no elles seront seulement enregistrées dans la base de données
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Maintenant pour importer des fichiers audio, il suffit d’indiquer le répertoire où se trouvent les fichiers audio en tapant beet import -s /anatole/musiques/classement\ par\ genre/rock

L’option -s pour singleton permet de traiter chaque fichier comme une piste indépendante, sinon par défaut il va considérer que toutes les pistes du répertoire font partie d’un unique album. Le traitement va se lancer de manière plus ou moins automatique, quand il identifie sans ambiguïté un fichier audio, on va avoir quelque chose comme cela

/anatole/musiques/classement par genre/rock/ACDC - hell bells.mp3
Tagging track: AC/DC - Hells Bells
URL:
https://musicbrainz.org/recording/5da479ac-3b98-43f6-88d8-6afeb9ccfcc7
(Similarity: 100.0%)
/anatole/musiques/classement par genre/rock/ACDC - highway to hell.mp3
Tagging track: AC/DC - Highway to Hell
URL:
https://musicbrainz.org/recording/5935ec91-8124-42ff-937f-f31a20ffe58f
(Similarity: 100.0%)
/anatole/musiques/classement par genre/rock/ACDC - Let Me Put My Love Into You.mp3
Tagging track: AC/DC - Let Me Put My Love Into You
URL:
https://musicbrainz.org/recording/69de4ab7-bfce-424e-b109-d96b34801516
(Similarity: 100.0%)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Continuer la lecture de Taguer ses fichiers audio en ligne de commande avec beets

Les timelines multiples sous Kdenlive et reconnaissance vocale avec whisper

La version 23.04 du logiciel de montage vidéo opensource Kdenlive avait emmené l’évolution majeure des timelines multiples ou séquences (nested timelines en anglais) comme je l’avais rapporté dans ce post.

Je l’utilise maintenant sans cesse et il me semblait utile de vous présenter plus en avant cette fonctionnalité dans un tutoriel vidéo que voici.

Ça m’a permis de tester la fonctionnalité Whisper basée sur l’intelligence artificielle qui permet de faire du sous titrage automatique et même de la traduction en anglais. Elle se base sur PyTorch qui est une bibliothèque opensource écrite en python d »apprentissage profond (deep learning) qui peut utiliser le GPU s’il est compatible.

Continuer la lecture de Les timelines multiples sous Kdenlive et reconnaissance vocale avec whisper

Rétrospective windsurf 2023

L’année 2023 et maintenant derrière nous, je peux faire le bilan de navigation windsurf de l’année. Depuis que j’ai migré dans le Var mon compteur de sortie s’est effondré, le vent est bien plus absent avec des périodes de pétole très longues et j’ai joué de malchance avec du vent dans la semaine et rien le week end, par ailleurs compte tenu de la galère pour se garer sur les spots de la presqu’île de Giens j’ai fait une croix sur les conditions de vent light et je ne sors qu’avec un bon 25 nœuds établis, forcément ça limite les sorties. A vrai dire je n’ai pas de regret, j’apprécie la température et de pouvoir profiter de la côte sans avoir à m’emmitoufler ou sortir l’imperméable et je me suis accessoirement remis à la plongée.

Donc au total à peine 22 sorties, 21 en vague avec mon flotteur JP Young Gun de 70l, 1 en slalom avec mon exocet RS2 de 91l, 7 sorties en 3.4, 8 en 4.2, 11 en 4.7 et 1 en 5.7.

Et une vidéo qui résume tout ça

Dans le lot il y a eu quelques sessions mémorables, notamment du côté du spot de la Bergerie, qui n’apparaissent pas dans la vidéo et quelques trop rares sessions où le Passe Pied à l’Almanarre fonctionnait avec quelques bonnes vagues.

Le tout est filmé avec une GoPro HD9 fixée à différents endroits, histoire de varier les vues. La vidéo est montée comme toujours sous linux avec kdenlive 23.08.3 et j’ai vraiment pu exploiter à fond la fonctionnalité des séquences nouvellement arrivée avec les dernières versions. Cela permet vraiment de pouvoir monter des projets complexes beaucoup plus simplement.