Archives de catégorie : Logiciels libres

Taguer ses fichiers audio

Cet article a d’abord été posté sur linuxfr.

Le contexte

Même si je dispose d’un compte Deezer depuis plus de dix ans, j’entretiens de longue date une base de fichiers audio pour mon usage personnel et privé, n’étant pas toujours connecté ne serait-ce dans les transports (train, avion notamment).

Étant assez peu regardant sur la qualité audio, d’une part parce que je suis loin d’avoir l’oreille musicale vu qu’elle a subi les affres de la plongée sous marine (je souffre d’acouphène) et d’autre part je n’ai pas investi dans des lecteurs haut de gamme et coûteux, j’ai donc principalement des fichiers au format MP3 avec un bitrate tout de même de 192kb/s en moyenne.

J’ai toujours pris soin de remplir proprement les métadonnées qui sont inclues dans les fichiers car c’est toujours sympa de savoir ce qu’on écoute et c’est encore mieux si le lecteur affiche la jaquette de la piste. Par ailleurs il est indispensable de disposer de ces données pour pouvoir construire rapidement des listes de lecture suivant différents critères comme la date ou le genre musical.

Quelle que soit l’origine du fichier audio, ces métadonnées ne sont pas forcément remplies ou complètes et il faudra pouvoir les modifier grâce à divers outils d’édition, mais avant cela juste un petit mot sur les métadonnées audio.

Les formats de métadonnées audio

ID3 est de facto le standard utilisé pour les métadonnées audio qui signifie  » IDentify an MP3″, mais en fait il ne s’applique pas qu’aux fichiers MP3, cela marche également pour les fichiers audio FLAC ou OGG. Il se décline en plusieurs versions:

  • ID3v1: c’est la première version qui date de 1996, où on retrouve des informations comme le titre, l’artiste, l’album, l’année de parution, un commentaire et le genre musical
  • ID3v1.1: idem avec le numéro de la piste sur l’album
  • ID3v2: c’est beaucoup plus riche, on peut rajouter à peu près tout et n’importe quoi, en plus de l’image de l’album, on peut aller jusqu’aux paroles de la piste, le compositeur, l’arrangeur, etc. on trouve également d’autres champs intéressants pas toujours utilisés par les lecteurs comme ReplayGain qui donne le volume sonore de la piste et permet la normalisation du son à la lecture. La dernière version de ce standard est la ID3v2.4 qui date tout de même de l’an 2000, presque une éternité.

ID3 n’est pas le seul format d’encodage des métadonnées audio, sans évoquer les formats propriétaires (iTunes, ASF/Windows media, …) il existe également les formats documentés et ouverts:

  • les tags APE qui existent dans les versions APEv1 et APEv2 dont on retrouvera ici la description de l’ensemble des champs, il a le défaut de ne pas embarquer d’image de la jaquette
  • les tags vorbis qui peuvent être utilisés pour les fichiers audio Vorbis, FLAC, Theora et Speex, on retrouvera le format des différents champs par
Continuer la lecture de Taguer ses fichiers audio

Étalonnage vidéo

Je monte mes vidéos depuis déjà pas mal de temps et je n’avais jamais réellement procéder à de l’étalonnage vidéo, pourtant c’est réputé pour participer à la finition d’une vidéo et c’est souvent la dernière étape avant le rendu final.

L’étalonnage vidéo consiste à modifier, le contraste, la luminosité ou même les couleurs de la vidéo. Il a deux objectifs, tout d’abord un objectif technique qui consiste à corriger la vidéo, en effet tous les rushs de la vidéo n’ont pas été pris dans les mêmes conditions de temps et de luminosité et il est parfois nécessaire d’homogénéiser l’ensemble. Le deuxième objectif est de donner un rendu particulier à la vidéo, c’est la touche artistique de créativité, on peut prendre l’exemple des films de Caro et Jeunet comme Délicatessen avec l’effet sepia qui va renforcer le côté sombre, inquiétant et oppressant.

Kdenlive offre des outils puissants pour jouer sur l’étalonnage vidéo et pas forcément très simple d’utilisation. En basculant sur le mode Couleur les principaux outils d’analyse font leur apparition sur la gauche et la droite.

Sur la gauche:

  • l’étalage RVB: une image est constituée d’un mélange des couleurs primaires Rouge, Vert et Bleu, cet outil permet de visualiser la distribution de ses 3 composantes, on appelle ça la chrominance.
  • la forme d’onde: qui donne la luminosité de l’image ou luminance
  • le vecteurscope: qui permet d’afficher une roue chromatique pour apporter des corrections colorimétriques à l’image, une couleur saturée (intense) sera plus éloignée du centre au contraire d’une image terne qui sera plus proche du centre.

Sur la droite:

  • l’histogramme : ces courbes donnent l’histogramme de la luminance pour chaque composante de couleur de la vidéo. La luminance évolue de 0 à 255 sur l’axe des abscisses, l’ordonnée correspond aux nombres de pixels avec la luminance concernée sur l’image sélectionnée en cours. En gros à 0, l’image n’a aucune luminance, elle est donc noire et à 255, la couleur est très intense.

Le réglage de tout cela est très complexe, des sites comme celui-ci entrent davantage dans le détail des explications et j’avoue que pour l’instant j’ai survolé le sujet. Pour en savoir plus je vous renvoie vers les pages du manuel (en anglais) de kdenlive (Manuel sur l’histogramme, Manuel sur l’étalage RVB et la forme d’onde, Manuel sur le vecteurscope).

Pour faire simple on pourra se contenter d’appliquer certains effets de correction de couleur comme la balance des blancs ou appliquer un modèle de LUT (Look Up Table) qui est un ensemble de valeurs préconfigurées pour modifier le rendu de la vidéo. Pour cela on utilisera l’effet Apply LUT, 4 modèles sont disponibles par défaut.

En cliquant sur le bouton   on pourra télécharger d’autres modèles mis à disposition de la communauté ou sinon on peut en trouver sur internet, kdenlive prend en charge les LUT créés par After Effects (.3dl), Iriadas (.cube), DaVinci Resolve (.dat) et Pandora (.m3d) qu’on peut télécharger en choisissant Custom… dans la liste déroulante des modèles. Des sites comme celui-ci en propose en téléchargement, il faudra s’enregistrer mais cela vaut le coup.

Pilotage d’un onduleur sous linux

Après avoir installé mon mini serveur Lenovo M92p je n’avais pas encore installé le nécessaire pour pouvoir piloter mon onduleur APC Back-UPS XS 950U. Maintenant que je suis passé à la dernière version Mageia 9, il était grand temps de le faire.

J’avais déjà rédigé des articles à ce sujet avec un onduleur et des versions précédentes qu’on retrouvera ici et avec l’utilisation de NUT (Network UPS Tools) qui pourront encore éventuellement servir.

Considérant que j’avais un onduleur APC j’ai installé l’utilitaire APC UPS daemon prévu pour. On retrouvera dans cette page l’installation du serveur à partir des sources mais sur ma mageia 9 je me suis contenté de l’installer via urpmi. La suite de la configuration est assez simple, on active le daemon en tapant:

systemctl enable apcupsd

Puis on éditera le fichier de configuration /etc/apcupsd/apcupsd.conf qu’on retrouvera ci-dessous avec des commentaires pour certains paramètres, les autres étant par défaut.

#nom de l'onduleur
UPSNAME onduleur

#type de connexion
UPSCABLE usb
UPSTYPE usb
DEVICE

LOCKFILE /run/lock
SCRIPTDIR /etc/apcupsd
PWRFAILDIR /etc/apcupsd
NOLOGINDIR /etc

# on laisse 6s à apcupsd pour réagir
ONBATTERYDELAY 6

# si une coupure de courant survient, l'arrêt est déclenché quand le pourcentage restant est inférieur est égal à la valeur définie par BATTERYLEVEL
BATTERYLEVEL 5

# si une coupure de courant survient, l'arrêt est déclenché quand le temps restant est inférieur est égal à la valeur définie par MINUTES
MINUTES 3

TIMEOUT 0
ANNOY 300
ANNOYDELAY 60
NOLOGON disable
KILLDELAY 0

# pour pouvoir monitorer via un navigateur
NETSERVER on
NISIP 127.0.0.1
# port du serveur
NISPORT 3551

#fichier log
EVENTSFILE /var/log/apcupsd.events
#taille max en Ko
EVENTSFILEMAX 10

UPSCLASS standalone
UPSMODE disable

STATTIME 0
STATFILE /var/log/apcupsd.status
LOGSTATS off
DATATIME 0
Continuer la lecture de Pilotage d’un onduleur sous linux

Installation de Mageia 9

Suite à la sortie de Mageia 9 j’ai passé un peu de temps ce week end à migrer trois de mes postes Lenovo, 2 postes clients Thinkpad x220 et x240 et surtout mon petit serveur personnel Thinkcenter M92p dont j’avais vanté les mérites sur linuxfr.org.

Habituellement je fais des mises à jour, il y a bien longtemps que je ne repars pas à zéro et réinstallant tout. Les mises à jour sont maintenant parfaitement maîtrisées et on gagne un temps fou car elles reprennent les fichiers de configuration existant. Généralement les modifications de configuration sont de l’ordre du cosmétique. Mais quelle ne fut pas ma surprise sur mon serveur, il avait purement et simplement supprimé ma configuration NFS et sendmail qu’il a fallu que je redescende. J’ai été bien content d’avoir mis en place une sauvegarde borg. J’ai retrouvé assez vite mes petits en montant la sauvegarde système de la veille et en copiant les fichiers manquants.

A part ça je constate encore que le ménage des anciens paquets rpm de la mageia 8 laisse encore à désirer, ll en reste par dizaine et dizaine qui ne sont pas supprimés du système. Le script bash suivant permet de les supprimer d’un seul coup.

#!/bin/bash
rpmfiles=$(rpm -qa | grep mga8);
for f in $rpmfiles
do
urpme --auto $f
done
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Globalement cette Mageia 9 apporte peu de nouveautés à part des évolutions de version, elle utilise encore les vieux scripts de la Mandrake écrits en perl qu’il serait sans doute temps de changer. Il y a quand même une nouveauté, la commande remove-old-kernels qui comme son nom l’indique permet de supprimer les anciens noyaux qui s’accumulaient jusqu’à présent si on ne faisait pas manuellement le ménage de temps à autre.

Bienvenue à 'remove-old-kernels' Interactive
System: Mageia release 9 (Official) for x86_64 | Noyaux dans /boot/:4 | AUTO:1 | GARDER:3
==> kernel-desktop
1 : Garder : U : kernel-desktop-6.4.9-4.mga9.x86_64 jeu. 31 août 2023 16:47:49
2 : Garder : : kernel-desktop-6.4.9-2.mga9.x86_64 lun. 14 août 2023 20:03:37
3 : Garder : : kernel-desktop-6.4.8-2.mga9.x86_64 ven. 04 août 2023 13:00:50
4 : Enlever: : kernel-desktop-6.4.7-3.mga9.x86_64 mer. 02 août 2023 15:42:47
U = En usage maintenant
Enlever 1 noyau: ? y/N/i (y=oui N=non i=confirmer pour chaque) y
désinstallation de kernel-desktop-6.4.7-3.mga9.x86_64
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

J’ai commencé également à upgrader les différents services de mon serveur, Pour mon serveur httpd, je suis ainsi passé à Apache 2.4.57, PHP 8.2.10 et MariaDB 11.1.2. Prochaine mise à jour de FUNIX à venir pour prendre en compte cette montée en version.

Kdenlive 23.08.1

J’ai installé la version 23.08.1 du logiciel de montage vidéo Kdenlive qui n’introduit pas d’évolutions majeures si ce n’est quelques évolutions qui concerne les outils de la timeline. Elles sont présentées ici. Ça ne devrait pas changer beaucoup ma manière d’utiliser kdenlive. La dernière évolution majeure reste l’apparition des séquences qui permet pour un projet d’avoir plusieurs sous projets avec des timeline spécifiques.

J’ai pu constater également qu’il ne prenait plus compte du fichier kdenliverc existant, il faut refaire toute la configuration personnalisée, et ça se passe plutôt mal pour recharger d’anciens projets. Il vaut donc mieux ne pas faire la mise à jour alors qu’on a un projet en chantier.

En attendant un projet plus complexe ma première vidéo montée est sur mon compte instagram.

Sortie de Kdenlive 23.04

Kdenlive 23.04 vient de sortir, ce n’est pas une simple version, elle intègre une évolution majeure attendue depuis fort longtemps par les aficionados de kdenlive dont je fais partie. Il s’agit des timelines multiples (ou nested timelines en anglais), c’est particulièrement utile pour les projets complexes et kdenlive rattrape enfin flowblade sur ce point là. Jusqu’à présent il fallait faire avec une timeline surchargée qui couvrait l’ensemble du projet avec les difficultés et contraintes que ça impose pour modifier le fil du projet, rajout, suppression ou réaménagement.
Maintenant chaque séquence du projet fait l’objet d’une timeline spécifique, comme on peut le voir sur la copie d’écran ci-dessous.

Dans cet exemple j’ai un projet avec 3 séquences et une séquence finale qui comprend le projet complet. Chaque séquence a son onglet de timeline spécifique avec le nombre de pistes, le zoom et le paramétrage qui lui sont propres. Quand on a fini de travailler sur chacune des séquences, on passe à la séquence finale qui va regrouper toutes les autres séquences, on les glisse à partir des Sources du projet sur la timeline finale dans l’ordre souhaité.

Cette version intègre bien d’autres évolutions qui sont présentées par ici, je n’ai pas encore tout testé, mais j’ai retenu l’intégration du système de reconnaissance vocale whisper pour générer des sous titres et qui permet une traduction automatique en anglais.

Pour aller plus loin un tutoriel sur l’utilisation de kdenlive patiemment entretenu par votre serviteur.

Passage à Digikam 7.10.0

Je suis passé à la dernière version 7.10.0 du gestionnaire de photos évolué digikam que j’avais déjà évoqué dans un précédent post. Mais auparavant j’ai upgradé ma Mageia 9 cauldron à la version de ce jour. Ça s’est fait sans trop de difficultés mis à part que mon répertoire /usr de 26Go devient trop petit, j’ai dû déplacer /usr/share sur une autre partition et créer un lien. Pour la mise à jour du noyau et du driver nvidia qui a toujours été une difficulté, ça s’est passé sans encombre, au reboot en mode normal, il a reconstruit le module et l’interface graphique s’est lancée dans la foulée sans erreur particulière.

Mais revenons à digikam, j’ai buté sur la compilation pour une sombre histoire de référence indéfinie avec cette erreur

/usr/lib64/libQt5WebEngineCore.so.5 : référence indéfinie vers « av_stream_get_first_dts@LIBAVFORMAT_59 »

Je me doutais qu’il pouvait y avoir un mélange entre mon FFMPEG perso compilé sous /usr/local/lib et celui par défaut de ma Mageia sous /usr/lib64, mais que ce soit l’un ou l’autre j’avais toujours la même erreur. Je me suis rabattu sur la version flatpak mais il manquait la clé GPG. Finalement j’ai installé la version appimage directement disponible sur le site de digikam.

Entre la dernière version 7.8.0 qui tournait sur ma mageia 8, il n’y a pas d’évolutions majeures, ça reste une version de maintenance en attendant la version 8. Voici une copie d’écran avec le tri par la position GPS contenue dans les informations exif.

J’en ai profité pour virer le cairo dock de mon environnement de bureau XFCE, j’ai opté pour deux tableaux de bord fixes à droite et à gauche, ça me permet de couvrir davantage l’écran de bas en haut et j’y gagne en confort de visualisation. On notera également le thème sombre de digikam plutôt sympa.

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
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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 \
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ensuite on tape

vi bootstrap.linux
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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.