Archives de catégorie : Logiciels libres

Amélioration du filtrage des spams avec SpamAssassin

J’ai conduit récemment quelques améliorations à ma configuration de SpamAssassin pour filtrer les spams. En effet je continuais à avoir des mails écrits en arabe ou chinois qui continuaient à passer au travers, j’ai donc mis en place un filtrage basé sur la langue. Sous /etc/mail/spamassassin, j’ai édité le fichier v343.pref et j’ai décommenté les lignes suivantes:

ok_languages en fr ca de es it pt
score UNWANTED_LANGUAGE_BODY 10
add_header all Languages _LANGUAGES_

La première ligne indique les langues que l’on accepte, les mails écrits dans une toute autre langue se verront attribuer une note de 10 et considérer comme du spam.

Et maintenant en cas de réception de mail en langue arabe ou chinoise, vous allez voir apparaître dans le rapport spamassassin en plus cette mention

 10 UNWANTED_LANGUAGE_BODY BODY: Message dans une langue non désirée
                             (config locale)

et dans le corps du mail on retrouve UNWANTED_LANGUAGE_BODY

X-Spam-Flag: YES
X-Spam-Status: Yes, score=11.7 required=5.0 tests=BAYES_40,DKIM_SIGNED,
        DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT,
        FREEMAIL_FROM,HTML_MESSAGE,NO_RDNS_DOTCOM_HELO,RCVD_IN_DNSWL_NONE,
        RDNS_NONE,SPF_HELO_NONE,UNWANTED_LANGUAGE_BODY shortcircuit=no
        autolearn=no autolearn_force=no version=3.4.6
X-Spam-Level: ***********

Maintenant autre problème, je constatais régulièrement que certains mails ne soit pas analysé par spamassassin alors que c’était des spams sans aucune ambiguïté. Dans les logs j’avais le message suivant

févr. 12 02:36:41 ultra.kervao.fr spamc[3659916]: skipped message, greater than max message size (512000 bytes)

En fait c’est une petite faille du système, par défaut spamc ne va pas analyser le mail dès lors que la taille du fichier dépasse 512ko, les spammeurs profitent de cela et attachent une image de quelques Mo pour passer au travers. Il suffit donc d’augmenter la taille en créant le fichier /etc/mail/spamassassin/spamc.conf qui contiendra

-s 5000000

On autorise donc le traitement pour des mails jusqu’à 5Mo, maintenant avec la puissance des machines, ce n’est plus vraiment un problème.

Pour plus d’information sur la configuration de SpamAssassin, voir la page sur mon site Funix.

Tutoriel kdenlive flouter un visage avec l’effet suivi de déplacements

Je viens de mettre en ligne un tutoriel vidéo pour flouter un visage avec l’effet suivi de déplacements ou motion tracking en anglais. L’effet suivi de déplacements se base sur la détection de mouvement d’OpenCV, plusieurs algorithmes de suivi sont disponibles, ils sont référencés et documents par ici. J’ai utilisé dans ce tutoriel DaSiam qui utilise les techniques de l’intelligence artificielle par apprentissage, il faudra avoir préalablement récupérer des modèles d’apprentissage (voir par ).

Sinon j’ai utilisé la fonctionnalité d’enregistrement d’écran (screencast) pour faire cette vidéo, j’ai eu du mal avec l’audio qui était un peu pourri vu mon installation micro basique. Je ne m’en sortais pas avec les filtres audio de kdenlive, j’ai basculé sur audacity pour réintégrer la bande son sur kdenlive ensuite.

Mise à jour et migration de digikam

J’achève la migration de mon serveur Dell PowerEdge vers mon mini serveur Lenovo M92P avec la migration de Digikam. Pour mémoire j’avais fait un post pour présenter ce logiciel de gestion évoluée de photos.

digikam avec les photos géolocalisés

Jusqu’à présent mon serveur Dell stockait à la fois les photos mais également les bases de données sur lesquelles se repose digikam pour stocker toutes les informations, pour cela je me reposais sur MariaDB. J’ai choisi de déplacer mes photos sur un PC de mon réseau et les bases sur mon nouveau mini serveur, de fait digikam ne peut fonctionner que sur ce PC et je n’ai pas prévu pour l’instant de fonctionnement en réseau si tant est que ça soit possible.

Pour migrer mes bases, sur mon serveur Dell sous phpMyAdmin j’ai exporté mes bases digikam à savoir digikam, digikam_vignettes (qui fait presque 2Go), digikam_similarites et digikam_visages.
Sur le nouveau serveur, j’ai importé les bases en ligne de commande:

 mysql -u olivier -p digikam < 20221030-digikam.sql
 mysql -u olivier -p digikam_vignettes < 20221030-digikam_vignettes.sql
 mysql -u olivier -p digikam_similarites < 20221030-digikam_similarites.sql
 mysql -u olivier -p digikam_visages < 20221030-digikam_visages.sql

j’ai modifié sous phpMyAdmin les champs volumeid, specificPath de la table AlbumRoots et de la base digikam pour lui indiquer le nouveau chemin des photos. Le serveur Dell éteint, au premier lancement de digikam, il mouline en l’attendant indéfiniment, il suffit d’annuler et la fenêtre de connexion au serveur s’affiche, il suffit de rentrer simplement les paramètres de connexion du nouveau serveur. Et c’est tout.

A vrai dire je me suis compliqué la vie pour rien car digikam intègre une option de migration de base de données que j’ai découvert un peu tard ! Elle est accessible via le menu Configuration->Migration d’une base de donnée.

Migration de base de données sous digikam

Sinon je suis passé à la dernière version 7.8.0, comme d’habitude je l’ai installé à partir des sources. Dans le répertoire digikam-7.8.0, on édite d’abord le fichier bootstrap.linux et on modifie ainsi les lignes suivantes si on veut espérer avoir une version en français.

      -DDIGIKAMSC_CHECKOUT_PO=ON \
      -DDIGIKAMSC_CHECKOUT_DOC=ON \
      -DDIGIKAMSC_COMPILE_PO=ON \

Ensuite on tape

vi bootstrap.linux

voilà le résultat

-- Top level compilation configuration for digikam
-- 
-- digikam will be compiled....................... YES
-- Extract application translations files......... YES
-- Extract documentation translations files....... YES
-- Translations will be compiled.................. YES
-- Handbooks will be compiled..................... NO
-- Tests code will be compiled.................... YES
-- ----------------------------------------------------------------------------------
-- Check dependencies for digikam version 7.8.0
-- 
-- Could NOT find KF5Sane: found neither KF5SaneConfig.cmake nor kf5sane-config.cmake
-- KF5::KIOWidgets include dirs: /usr/include/KF5/KIOWidgets;/usr/include/KF5
-- Libjpeg version: 84
-- Using libjpeg sub-directory: libjpeg/84
-- Found lcms version 2.13, /usr/lib64/liblcms2.so
-- HEIF_FOUND        = TRUE
-- HEIF_INCLUDE_DIRS = /usr/include
-- HEIF_LIBRARIES    = /usr/lib64/libheif.so
-- HEIF_DEFINITIONS  =
-- HEIF_VERSION      = 1.12.0
-- X265_FOUND        = TRUE
-- X265_INCLUDE_DIRS = /usr/local/include
-- X265_LIBRARIES    = /usr/local/lib/libx265.so
-- X265_DEFINITIONS  =
-- FFMPEG_FOUND        = TRUE
-- FFMPEG_INCLUDE_DIRS = /usr/local/include
-- FFMPEG_LIBRARIES    = /usr/local/lib/libavcodec.so;/usr/local/lib/libavdevice.so;/usr/local/lib/libavfilter.so;/usr/local/lib/libavformat.so;/usr/local/lib/li
bavutil.so;/usr/local/lib/libswscale.so
-- FFMPEG_DEFINITIONS  =
-- QtAV search path: /lib64/cmake
-- Could NOT find QtAV (missing: QTAV_LIBRARIES QTAV_INCLUDE_DIRS)
-- QtAV_FOUND       = FALSE
-- QtAV_INCLUDE_DIR = QTAV_CORE_INCLUDE_DIR-NOTFOUND QTAV_WIDGETS_INCLUDE_DIR-NOTFOUND
-- QtAV_LIBRARIES   = QTAV_CORE_LIBRARY-NOTFOUND;QTAV_WIDGETS_LIBRARY-NOTFOUND
-- QtAV_VERSION     =
-- ENABLE_MEDIAPLAYER option is enabled but QtAV cannot be found. Media player support is disabled.
-- OpenCV Root directory is: /usr/local/lib64/cmake/opencv4
-- OpenCV: Found version 4.6.0 (required: 3.3.0)
-- OpenCV headers: /usr/local/include/opencv4
-- OpenCV libs   : opencv_core;opencv_objdetect;opencv_imgproc;opencv_imgcodecs;opencv_dnn;opencv_flann
-- Marble_FOUND       = TRUE
-- MARBLE_INCLUDE_DIR = /usr/include
-- MARBLE_LIBRARIES   = /usr/lib64/libmarblewidget-qt5.so
-- ASTRO_LIBRARIES    = /usr/lib64/libastro.so
-- FIND IMAGEMAGICK API Magick++
-- -DMAGICKCORE_HDRI_ENABLE=1
-- -DMAGICKCORE_QUANTUM_DEPTH=16
-- FIND IMAGEMAGICK API MagickCore
-- -DMAGICKCORE_HDRI_ENABLE=1
-- -DMAGICKCORE_QUANTUM_DEPTH=16
-- FIND IMAGEMAGICK API MagickWand
-- -DMAGICKCORE_HDRI_ENABLE=1
-- -DMAGICKCORE_QUANTUM_DEPTH=16
-- ImageMagick_FOUND:                      TRUE
-- ImageMagick_VERSION_STRING:             7.1.0-51
-- ImageMagick_EXECUTABLE_DIR:             /bin
-- ImageMagick_INCLUDE_DIRS:               /usr/include/ImageMagick-7
-- ImageMagick_LIBRARIES:                  /usr/lib64/libMagick++.so;/usr/lib64/libMagickCore.so;/usr/lib64/libMagickWand.so
-- ImageMagick_DEFINITIONS:                -DMAGICKCORE_HDRI_ENABLE=1;-DMAGICKCORE_QUANTUM_DEPTH=16
-- ImageMagick_Magick++_INCLUDE_DIRS:    /usr/include/ImageMagick-7
-- ImageMagick_Magick++_LIBRARY:         /usr/lib64/libMagick++.so
-- ImageMagick_Magick++_DEFINITIONS:     -DMAGICKCORE_HDRI_ENABLE=1;-DMAGICKCORE_QUANTUM_DEPTH=16
-- ImageMagick_MagickCore_INCLUDE_DIRS:    /usr/include/ImageMagick-7
-- ImageMagick_MagickCore_LIBRARY:         /usr/lib64/libMagickCore.so
-- ImageMagick_MagickCore_DEFINITIONS:     -DMAGICKCORE_HDRI_ENABLE=1;-DMAGICKCORE_QUANTUM_DEPTH=16
-- ImageMagick_MagickWand_INCLUDE_DIRS:    /usr/include/ImageMagick-7
-- ImageMagick_MagickWand_LIBRARY:         /usr/lib64/libMagickWand.so
-- ImageMagick_MagickWand_DEFINITIONS:     -DMAGICKCORE_HDRI_ENABLE=1;-DMAGICKCORE_QUANTUM_DEPTH=16
-- OpenGL found;               TRUE
-- OpenGL GLU extension found; YES
-- OpenGL Qt5 found;           1
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Looking for ccache...
-- ccache program found: CCACHE_FOUND-NOTFOUND...
-- libgphoto2 found    : TRUE
-- libgphoto2 version  : 2.5.29
-- libgphoto2 includes : /usr/include/gphoto2
-- libgphoto2 libraries: /usr/lib64/libgphoto2.so;/usr/lib64/libgphoto2_port.so;/usr/lib64/libusb-1.0.so
-- libgphoto2 API version >= 2.5
-- liblensfun: Found version 0.3.95.0 (required: 0.2.6.0)
-- 
-- --------------------------------------------------
-- digiKam RawEngine dependencies checks:
-- 
-- Looking for OpenMP
-- OpenMP found with CXX flags: -fopenmp
-- RawEngine will be compiled with OpenMP support
-- RawEngine will be compiled with RedCine codec
-- Looking for LibJpeg
-- RawEngine will be compiled with DNG lossy codec
-- Looking for PThreads
-- --------------------------------------------------
-- 
-- 
-- ----------------------------------------------------------------------------------
--  digiKam 7.8.0 dependencies results   <https://www.digikam.org>
-- 
--  MySQL Database Support will be compiled.. YES (optional)
--  MySQL Internal Support will be compiled.. YES (optional)
--  DBUS Support will be compiled............ YES (optional)
--  App. Style Support will be compiled...... YES (optional)
--  QWebEngine Support will be compiled...... YES (optional)
--  libboostgraph found...................... YES
--  libexiv2 found........................... YES
--  libexpat found........................... YES
--  libjpeg found............................ YES
--  libkde found............................. YES
--  liblcms found............................ YES
--  libopencv found.......................... YES
--  libpng found............................. YES
--  libpthread found......................... YES
--  libqt found.............................. YES
--  libtiff found............................ YES
--  bison found.............................. YES (optional)
--  doxygen found............................ NO  (optional)
--  digiKam will be compiled without API documentation building support.
--  Please install the doxygen (version >= 1.8.0) development package.
-- 
--  ccache found............................. NO  (optional)
--  digiKam will be compiled without CCACHE build support.
--  Please install the ccache (version >= 3.0.0) development package.
-- 
--  flex found............................... YES (optional)
--  libakonadicontact found.................. NO  (optional)
--  digiKam will be compiled without KDE desktop address book support.
--  Please install the libakonadicontact (version >= 4.89.0) development package.
-- 
--  libmagick++ found........................ YES (optional)
--  libeigen3 found.......................... YES (optional)
--  libgphoto2 found......................... YES (optional)
--  libjasper found.......................... YES (optional)
--  libkcalendarcore found................... YES (optional)
--  libkfilemetadata found................... NO  (optional)
--  digiKam will be compiled without KDE desktop file metadata support.
--  Please install the libkfilemetadata (version >= 5.5.0) development package.
-- 
--  libkiconthemes found..................... YES (optional)
--  libkio found............................. YES (optional)
--  libknotifications found.................. YES (optional)
--  libknotifyconfig found................... YES (optional)
--  libksane found........................... NO  (optional)
--  digiKam will be compiled without flat scanners support.
--  Please install the libksane (version >= 5.5.0) development package.
-- 
--  liblensfun found......................... YES (optional)
--  liblqr-1 found........................... YES (optional)
--  libmarble found.......................... YES (optional)
--  libqtav found............................ NO  (optional)
--  digiKam will be compiled without Media Player support.
--  Please install the libqtav (version >= 1.12.0) development package.
-- 
--  libthreadweaver found.................... YES (optional)
--  libxml2 found............................ YES (optional)
--  libxslt found............................ YES (optional)
--  libheif found............................ YES (optional)
--  libx265 found............................ YES (optional)
--  OpenGL found............................. YES (optional)
--  libqtxmlpatterns found................... YES (optional)
--  digiKam can be compiled.................. YES
-- ----------------------------------------------------------------------------------
-- 
-- Using ccache to speed-up compilations..... NO
-- Remove GCC compiler option -pedantic from /usr/local/linux/photos/digikam-7.8.0/core
-- Remove GCC compiler option -Wsuggest-override from /usr/local/linux/photos/digikam-7.8.0/core
-- Remove GCC compiler option -Wcast-align from /usr/local/linux/photos/digikam-7.8.0/core
-- Remove GCC compiler option -Wzero-as-null-pointer-constant from /usr/local/linux/photos/digikam-7.8.0/core
-- Disable GCC compiler option -Wno-deprecated-copy from /usr/local/linux/photos/digikam-7.8.0/core
-- Disable GCC compiler option -Wno-deprecated from /usr/local/linux/photos/digikam-7.8.0/core/libs/metadataengine
-- Remove GCC compiler option -Wcast-align from /usr/local/linux/photos/digikam-7.8.0/core/libs/pgfutils
-- Remove GCC compiler option -Wzero-as-null-pointer-constant from /usr/local/linux/photos/digikam-7.8.0/core/libs/pgfutils
-- Remove GCC compiler option -pedantic from /usr/local/linux/photos/digikam-7.8.0/core/libs/dplugins/webservices
-- Remove GCC compiler option -Wundef from /usr/local/linux/photos/digikam-7.8.0/core/libs/rawengine
-- Remove GCC compiler option -Werror=return-type from /usr/local/linux/photos/digikam-7.8.0/core/libs/rawengine
-- WallPaper plugin will be compiled......... YES
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/linux/photos/digikam-7.8.0
Now run make in /usr/local/linux/photos/digikam-7.8.0/build.

On peut déplorer que digikam intègre QtAV qui permet de visualiser les vidéos qui n’est plus maintenu, j’ai bien tenté de patcher le code, mais c’est très lourdingue et j’ai laissé tomber. On peut découvrir par ici que les développeurs ont choisi d’intégrer leur propre code à partir des versions 8.X, en attendant il faudra s’en passer ou rester aux versions 4.X de FFMPEG.

On termine ensuite par un classique make puis en tant que root make install

Cette version m’a permis de découvrir le format HEIF qui est le nouveau standard à la mode en passe de supplanter le format jpeg, il a été développé en parallèle du format HEVC pour la vidéo par le même groupe de travail ISO Moving Picture Experts Group (MPEG). Des constructeurs de renom ont maintenant choisi de l’adopter comme format d’enregistrement par défaut comme Apple, Canon ou Sony. Comme pour le HEVC le rapport taille/qualité est bien meilleur, vous trouverez par ici un exposé plus précis. Petit bémol il dépend de plusieurs brevets et n’est pas vraiment libre, ça n’empêche pas digikam de le prendre en compte, ne possédant pas d’appareil générant des HEIF je ne saurais dire quelles sont les limitations.

Mise à jour kdenlive vers la version 22.08.2

J’ai mis à jour kdenlive en installant la version 22.08.2, ça ne s’est pas fait simplement. En effet KF5 sur ma mageia8 était trop ancien et il était trop compliqué de faire cohabiter une version plus récente, j’ai donc dû passer à la Mageia 9 Cauldron. Je n’aime pas trop travailler avec une version instable mais je n’avais guère le choix si je voulais bénéficier des dernières fonctionnalités de kdenlive.

Un mot d’abord sur la mise à jour vers la Mageia 9 que j’ai fait en ligne de commande comme indiqué ici. Je n’ai pas rencontré de grandes difficultés si ce n’est que je n’ai pas réussi à compiler le driver propriétaire de ma nvidia suite à une incompatibilité avec les noyaux 6.0. Je n’ai guère eu plus de succès en essayant de patcher le driver. J’ai donc tenté le paquet nvidia propriétaire de la Mageia9 qui marche très bien, mais après chaque démarrage il forçait l’installation de ce fichu driver nouveau malgré son blacklistage dans le fichier/etc/modprobe.d/nvidia-installer-disable-nouveau.conf. C’est ce fichu harddrake qui écrasait à chaque démarrage mon fichier /etc/X11/xorg.conf et j’ai dû le désactiver.

Mais revenons à kdenlive, sans plagier l’annonce de cette nouvelle version voilà ce que j’en retiens. kdenlive intègre maintenant l’outil d’animation 2D glaxnimate, j’aurais préféré que ça soit synfig studio, glaxnimate a l’air bien plus basique et sa documentation sur internet est très pauvre.

Animation glaxnimate dans kdenlive

A vrai dire j’ai un peu galéré pour l’installer car il faut que mlt soit compilé avec l’option qui va bien et il n’apparait pas directement dans le menu de kdenlive, il faut rajouter manuellement l’icône dans la barre d’outils principal.

En plus de cela, même si pour l’instant je ne m’en sers pas on peut également maintenant éditer les styles des sous titres (fenêtre à gauche).

Édition du style de sous titre dans kdenlive

kdenlive 22.08 arrive également avec un tas d’effets plus ou moins utiles et surtout plus ou moins mal documentés comme malheureusement beaucoup d’effets. J’en ai testé quelques uns et s’il faut en retenir un c’est celui sur l’exposition qui me parait très utile comme on peut le voir ci-dessous avec et sans l’effet.

Effet exposition dans kdenlive

J’ai donc mis à jour mon tutorial kdenlive en prenant en compte ces nouveautés ainsi que la page sur l’installation de kdenlive. Tant qu’à faire suite au passage à la Mageia 9 Cauldron j’ai mis à jour quelques pages de mon site Funix, à savoir:

pages divers
– page trucs et astuces, rajout d’un astuce (envoyer du son via SSH)
– page ma configuration, prise en compte  de ma nouvelle architecture avec l’abandon de mon serveur Dell Poweredge T310

pages réseau et système
– page outils de sauvegarde du système et des données, prise en compte de ma nouvelle architecture de sauvegarde

page multimédia
– page base vidéo, passage à flac 1.4.1, rubberband 3.1.1, gpac 2.0, OpenCV 4.6.0 et ffmpeg 5.1.2
– page lecteur vidéo, passage à libdvdread 6.1.3, vlc version développement et MPlayer 1.5, la modification de l’interface de vlc est assez spectaculaire et plutôt déroutante

Vlc version développement


– page mediacenter, passage à kodi Matrix 19.4
– page outils audio divers, passage à audacious 4.2, lollypop 1.4.35, OSD lyrics 0.5.12, Clementine rc1-864-g0fab61278 et MusicBrainz Picard 2.8.3
– page transcodage, passage à avidemux 2.8.1 et HandBrake 1.5.1

pages montage vidéo,
– page montage vidéo, passage  à mlt 7.8., kdenlive 22.08.2 et cinelerra 8, cinelerra GG 5.1.20220928, synfig studio 1.4.3 et blender 3.3.1
– page tutorial montage vidéo avec kdenlive, rajout de fonctionnalités avec le passage à la version 22.08

Abandon de mon serveur dell poweredge

J’utilisais jusqu’à présent et depuis 7 ans un serveur Dell PowerEdge T310 après avoir utilisé pendant 5 ans un PowerEdge 840. Dans un récent article j’indiquais que j’avais passé mes services réseau sur un mini PC Lenovo ThinkCenter M92p pour des considérations économiques mais que j’avais conservé mon serveur Dell pour le stockage des fichiers multimédia et que j’allumais que quand j’avais besoin d’y accéder.

Il se trouve que j’ai décidé d’abandonner le serveur Dell car ayant mis en place les redondances nécessaires pour mes fichiers multimédia, je ne voyais plus la nécessité de conserver une machine gourmande en énergie, bruyante et encombrante. D’autant que j’avais de temps à autre à reconstruire mon espace RAID5 qui devenait capricieux pour un gain du RAID5 de plus en plus discutable.

Voilà donc la nouvelle architecture que j’ai mise en place pour l’archivage longue durée des données froides, celles qui évoluent peu et prennent beaucoup de place et la sauvegarde des données chaudes, celles qui évoluent rapidement et qui prennent assez peu de place disque.

Architecture réseau local d’archivage et de sauvegarde

Les données chaudes sont essentiellement mes données de bureautique les fichiers systèmes et les mails. Les données froides sont les fichiers multimédia, comme les photos et les vidéos. J’ai réussi à me passer de mon serveur Dell en mettant en place les redondances nécessaires pour sauvegarder mes données froides.

Pour résumer les données chaudes présentes sur le mini serveur M92p nommé Ultra sont sauvegardées sur 4 supports différents à savoir :

Les données froides se trouvent physiquement sur le PC Predator et sont sauvegardées sur:

  • un TerraMaster D5-300C de 5 disques en dispatchant sur plusieurs disques, sachant que je compte le booster avec les 4 disques de 4To que je vais récupérer du RAID5 de mon Dell, la sauvegarde est manuelle et se fait via Unison
  • kdrive d’infomaniak manuellement (via un navigateur) mais seulement pour les photos

Pour les données froides il existe dont trois supports de sauvegarde pour les photos et deux pour les vidéos, mais à terme je rajouterai un troisième disque dans le terramaster dédié à la sauvegarde des vidéos.

A partir de toutes ces considérations, j’estime que mon serveur Dell ne sert plus à rien et que je peux maintenant m’en débarrasser sans regret. J’ai considérablement allégé mon réseau local, par ailleurs en déportant la sauvegarde à distance j’ai amélioré sensiblement les risques de perte de données.

Maintenant pour mon serveur Dell, il me reste à voir qui voudra encore le récupérer pour qu’il ne finisse pas dans la benne à métaux.

Commander et envoyer du son avec ssh sous linux

Admettons que vous ayez un poste doté d’un système audio de qualité et que vous aimeriez piloter le son à distance d’un autre poste via une connexion sécurisée SSH. Il y a deux moyens de le faire que je vais vous présenter dans ce post. Pour la suite des explications on appellera le poste sur lequel on joue le son, le poste serveur et le poste contrôleur le poste client. Les deux utilisent le système de son pulseaudio.

Le premier moyen consiste simplement à se connecter au serveur avec une connexion SSH et le paramètre X11 forwarding activé à partir du poste client. Pour lancer de la musique sur le poste serveur, il faudra du poste client lancer dans le terminal la commande suivante

pax11publish -r

Il suffit ensuite de lancer votre lecteur audio favori (Clementine, Audacious, Lollypop …). C’est tout !

La deuxième méthode consiste à lancer votre lecteur sur le poste client mais d’envoyer le son vers le poste serveur. Pour cela on se logue sur le poste serveur via SSH et on tapera :

paprefs

Dans la fenêtre qui s’affiche on coche les cases ci-dessous

Fenêtre de paprefs

On copiera maintenant le fichier ~/.config/pulse/cookie du compte du poste serveur au même endroit sur le compte du poste client. Maintenant à partir du poste client on lancera le lecteur audio en donnant l’adresse IP du serveur, comme ceci:

PULSE_SERVER=192.168.1.11 audacious

192.168.1.11 étant l’adresse IP du serveur.

Pour plus d’informations sur le sujet, voir cette page dans le documentation de pulseaudio.

bascule du serveur Poweredge T310 vers le thinkcenter M92P

Ça y est c’est fait, comme annoncé dans mon précédent post, j’ai basculé de mon gros serveur Dell PowerEdge T310 vers un mini PC Lenovo ThinkCenter M92p, cela m’a pris quand même quelques heures de travail étalées sur trois jours. J’ai installé Mageia 8 sans grande difficulté et il m’a fallu également installer et paramétrer les services de:

  • Authentification utilisateur basée sur OpenLDAP
  • Serveur de fichiers basé sur NFS avec la copie des données hors multimédia qui restent sur le serveur Dell
  • Serveur de mail basé sur fetchmail, dovecot, sendmail, spamassassin, ClamAV anti virus et roundcube webmail
  • Serveur LAMP (Apache+PHP+MySQL/MariaDB) pour travailler en local sur mes sites, pour l’interface à roundcube webmail et divers outils accessibles via le web

Sans compter les opérations nécessaires pour configurer le firewall shorewall et remettre les routes en place sur mon routeur et la box pour que roundcube webmail soit accessible d’un mobile ou d’un ordinateur portable non connecté au réseau local.

Maintenant le nouveau serveur se trouve dans la cuisine entre l’onduleur et la box en face du routeur TP-Link qui vient compléter les misérables fonctionnalités de la box.

Serveur Lenovo ThinkCenter M92p

A vrai dire ce qui m’a pris le plus le temps dans cette histoire a été de remettre en place les connexions chiffrées au niveau des échanges de mail entre le serveur et les postes clients. J’ai eu beaucoup de mal avec Thunderbird qui refusait de reconnaitre le nouveau certificat et je n’ai pas trouvé le moyen d’effacer l’ancien certificat correspondant à l’ancien serveur pour qu’il prenne en compte le nouveau. J’ai dû recréer un nouveau compte de mail pour pouvoir le faire, finalement cette création n’a pas posé de problème particulier pour retrouver mes mails vu que j’utilise que mon serveur de mail utilise IMAP.

Mon Dell PowerEdge ne part pas pour autant au rebut, je le garde comme serveur de fichiers pour les données multimédia qui nécessitent beaucoup de stockage disque et auxquelles j’accède de temps à autre. Mais dans l’histoire je devrais faire une belle économie de consommation électrique.

Suite à toutes ces manipulations, j’ai mis à jour mon site Funix avec la modification des pages suivantes :

pages divers
– page trucs et astuces, rajout d’un astuce (rajout d’une police personnalisée)
– page ma configuration, présentation du nouveau serveur Thinkpad M92p qui va remplacer le PowerEdge T310 gros consommateur en énergie

pages réseau et système
– page installation de l’annuaire OpenLDAP, grosse mise à jour la dernière datant de 5 ans
– page authentification des utilisateurs avec OpenLDAP, grosse mise à jour, la dernière datant de 5ans
– page outils de sauvegarde du système et des données, modification de l’installation de borg

pages LAMP
– page installation d’un serveur LAMP avec les sources, passage à MariaDB 10.8.3, Apache 2.4.54, PHP 8.1.18 et phpMyAdmin 5.2

pages gestion des mails
– page réception des courriers et mise à disposition, passage à roundcubemail 1.6.0
– page filtrer les mails, passage à ClamAV 0.105.1

page de téléchargement, mise à jour des documents
– Installation d’un serveur LAMP
– Envoyer et recevoir du courrier pour un réseau multi utilisateurs

– Mise en place d’OpenLDAP et d’une authentification utilisateu

Nouveau serveur basse consommation

Alors que la sobriété énergétique devient une nécessité, j’ai des scrupules à laisser mon serveur Dell PowerEdge T310 tourné en permanence 24h/24 et 7j/7. Si je devais estimer sa consommation, sachant que l’alimentation fait 375W, au doigt mouillé on va dire qu’il consomme 150W par heure, soit 0,15kwh. Sachant que le coût du kwh est de 0,1740 € (tarif réglementé). Sur une journée, le coût est de 0,15x24x0,1740=0,62€. Sur un mois le coût est de 0,62€x30=18,8€ et sur un an 225€ tout de même, c’est assez conséquent. Alors bien sûr ce chiffre pourrait être affiné avec les heures creuses, heures pleines et mieux encore avec un contrôleur de consommation, mais ça donne un ordre de grandeur qui ne parait pas trop délirant.

Mon serveur Dell dans le garage

Or en y regardant de plus près, je fais tourner plusieurs services dessus, dont certains sont permanents, c’est à dire que je m’en sers régulièrement à plusieurs moments de la journée et d’autres beaucoup plus intermittents, il s’agit notamment de :

En résumé, mon serveur est taillé avec ses disques durs en RAID hard (2 disques SAS en RAID 1 et 4 disques SATA en RAID) pour des services intermittents notamment pour l’accès mes fichiers multimédia, vidéos et photos essentiellement. Il m’est donc venu l’idée de m’équiper d’un petit serveur basse consommation pour les services permanents et garder mon serveur Dell que j’allumerai uniquement quand j’aurai besoin d’accéder à mes fichiers multimedia.

J’ai tout de suite penser à bricoler un serveur sur la base d’un Raspberry PI 4, mais il s’avère que le coût et la puissance de l’engin n’est pas forcément très compétitif par rapport à un mini PC. Mon choix s’est donc porté sur un Lenovo M92p d’occasion à 119€ frais de port compris sur ebay.

Le Lenovo M92p au dessus de mon bloc TerraMaster D5-300C et de mon ACER Predator

Les caractéristiques sont les suivantes:

  • processeur Intel G2030T de 2,6GHz, 2 cœurs
  • 8 Go de RAM
  • disque dur SATA de 300Go

Bien qu’il ne soit pas de première jeunesse (il date de 2013, presque dix ans !), si je me fie à ce test qui compare un Raspberry PI 4b et un processeur Intel G2030, il n’y a pas photo, le G2030 reste très largement supérieur en performance. Le G2030T est un poil moins puissant (voir ici), mais il consomme légèrement moins (consommation d’énergie de 55W pour le G2030 et de 35W pour le G2030T) . Au final le M92p est donné pour une consommation d’énergie qui tourne entre 15W et 35W (voir par et ici), je divise donc ma consommation quasiment par 10 ! Je pourrai encore optimiser ma consommation en coupant automatiquement le serveur la nuit à des heures où je ne l’utilise pas. Alors certes le Raspberry est plus proche de 5W mais les performances me paraissent clairement insuffisantes pour mes services de serveur et le prix peu compétitif.

La configuration de ce nouveau serveur me prendra certainement pas mal de temps, j’ai commencé d’abord par virer windows et d’installer la distribution Linux Mageia 8. Pour l’instant j’ai mis en place l’authentification des utilisateurs en se basant sur LDAP et j’ai mis à jour les pages sur OpenLDAP et l’authentification en elle même sur mon site FUNIX. Je ne manquerai pas de donner des détails sur l’avancement de la configuration sur ce blog.

Installer une police personnalisée sous linux

En découvrant un tutoriel vidéo youtube sur les titres sous kdenlive, j’ai découvert la police Sonsie One qui a l’air assez sympathique et que je ne retrouve pas de base sur ma Mageia 8. Pour installer une nouvelle police finalement c’est très simple, j’ai retrouvé ma police par ici ou . Les fichiers téléchargés peuvent être mis dans la homedirectory sous .fonts ou pour que ça soit accessible à tous les utilisateurs du système /usr/share/fonts, et puis c’est tout.

En relançant kdenlive je retrouve ma police dans les polices disponibles.

Créer un gif animé avec ffmpeg

Il y a quelques temps j’avais fait un post pour expliquer comment créer un gif animé avec GIMP, c’était un peu lourdingue et voilà une manière plus simple de le faire avec ffmpeg.

Je pars d’une vidéo réalisée avec kdenlive au format HD 1920×1080 de 7s au total qui fait 26,5Mo avec un framerate de 60 images par seconde. A cette occasion j’ai utilisé la fonction time remap pour jouer sur le ralenti et/ou accélération d’une vidéo. A vrai dire j’ai eu beaucoup de mal à m’en servir il n’est pas impossible qu’il y avait quelques bogues quand la fonction a été implantée sur kdenlive. Avec la dernière version 21.12.3 qui vient de sortir, ça a l’air de plutôt bien fonctionner. Sur mon tutoriel kdenlive, je donne les rudiments de l’utilisation de cette nouvelle fonctionnalité. Grosso modo, on place les images clés aux endroits qui vont bien sur la vidéo et on définit la vitesse avant et après chaque image clé, il faut être rigoureux pour ne pas s’embrouiller. On commence par l’image clé la plus à gauche et on est défini la vitesse après seulement.

La fonction time remap sous kdenlive

Revenons à notre gif, une fois qu’on a rendu la vidéo avec kdenlive, on tapera la commande suivante :

ffmpeg -y -i video.mp4 -filter_complex "fps=5,scale=480:-1:flags=lanczos" image.gif

Quelques explications sur la commande:

  • fps=5 permet de changer le framerate, c’est à dire qu’on va passer à 5 images par seconde, au pour réduire la taille du gif.
  • scale =480:-1 permet de passer d’un côté de 1920 à 480 et de conserver le ratio, la proportionnalité entre la largueur et la hauteur de l’image
  • flags=lanczos est l’algorithme choisi pour retailler la vidéo

Et voilà le résultat, avec un gif qui fait un peu moins de 2Mo.