Archives par mot-clé : linux

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

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%)
Continuer la lecture de Taguer ses fichiers audio en ligne de commande avec beets

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

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

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

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.

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.

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.

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.

Passage à MAGEIA 8 terminé

Je viens de terminer avec mon serveur Dell Poweredge T310 le passage à Mageia 8 de tous les postes de mon réseau local. Contrairement à ce que l’image ci-dessous peut indiquer, j’ai procédé une mise à jour en partant de la 7.1 sans passer par une réinstallation complète.

Dell PowerEdge T310

Ça m’aura pris un peu plus de six mois, ayant commencé en février dernier peu après la sortie de la Mageia 8 en échelonnant petit à petit dans le temps.

Continuer la lecture de Passage à MAGEIA 8 terminé

Installer un réseau vpn avec openVPN

Je dispose d’un réseau local centré autour d’un serveur Dell PowerEdge T310 qui fait office de serveurs d’authentification avec OpenLDAP, de mail et de fichiers (entre autres) comme je l’ai déjà signalé à multiples reprises sur ce blog. Je suis régulièrement en déplacement et j’avais mis en place un service de webmail sur le serveur me permettant de consulter mes mails d’un mobile ou d’un portable connecté à mon mobile où que je sois. J’avais fait un post il y a quelques temps à ce sujet qu’on trouvera ici.
En revanche pour consulter les fichiers sur mon serveur, j’utilise OpenSSH en ligne de commande, ce n’est pas franchement convivial et intuitif, mais je m’en contentais jusqu’à présent.

Il se trouve que ma petite dernière entame des études à l’étranger et j’aimerais lui faciliter les choses pour qu’elle puisse accéder aux ressources du réseau local en toute transparence et simplicité. J’ai donc pensé à créer un tunnel VPN entre son Thinkpad sous Linux/Mageia et le réseau local familial.

On trouve beaucoup de tutoriels sur internet sur le sujet, mais quasiment tous présentent une configuration où tout le flux internet du client VPN se trouve redirigé vers le serveur via le tunnel VPN. L’accès internet se fait donc via le serveur avec la technique de l’IP Masquerade. C’est sûrement intéressant dans beaucoup de cas, notamment pour une utilisation professionnelle où on souhaite filtrer l’accès à internet (voire l’interdire), ou bien encore pour surfer plus ou moins masqué, mais dans mon cas ça n’apporte rien du tout, car ça ralentit considérablement l’accès à internet sur le client. Je souhaite juste que le client accède aux ressources du réseau local privé et continue à accéder à internet via sa connexion habituelle.

Du coup j’ai travaillé sur cette configuration particulière que j’expose dans cette page où sont présentées les principales étapes pour configurer le serveur et le client VPN basé sur OpenVPN. De mon poste client je peux maintenant simplement lancer la connexion VPN où que je sois connecté et accéder du terminal ou d’un gestionnaire de fichiers aux fichiers du serveur.

Accessoirement j’ai vu également que je pouvais maintenant accéder à mon VPN via mon mobile Android. Je n’en ai pas franchement l’utilité aujourd’hui, mais pourquoi pas, pour le fun je pourrais essayer, ça fera certainement l’objet d’un nouveau post.

Installer un agenda kolab sur le webmail roundcubemail

Ma tendre et chère souhaitait pouvoir disposer d’un agenda qu’elle retrouverait sur le PC et sur son mobile pour se débarrasser de son agenda papier de moins en moins pratique. Comme je ne choisis pas la facilité et dans l’esprit que mes données ne se retrouvent pas quelque part aux US ou en Chine à la merci de hackeurs ou de revendeurs de données, j’ai choisi d’intégrer un plugin d’agenda au webmail Rouncube.

Pour mémoire je me repose sur mon serveur personnel Dell PowerEdge T310 qui tourne dans mon garage et qui fait office de cloud perso et sur lequel tourne Roundcube qui me permet d’accéder à mes mails de mon mobile comme expliqué par ici. J’ai choisi d’installer le plugin kolab, le détail de l’installation est donné par . Voilà ce que ça donne sur l’ordinateur

et sur le mobile

le tout est évidemment complètement synchronisé.

Continuer la lecture de Installer un agenda kolab sur le webmail roundcubemail