• At chevron_right

      Less is more, partie 2 : les contenus multimédia

      raspbeguy · pubsub.gugod.fr / atomtest · Friday, 22 September, 2017 - 22:00 · 7 minutes

    Je me relance dans cette série d'articles que j'ai trop souvent tendance à oublier alors qu'au final, j'ai passé (et j'en passe toujours) une énorme partie de mon temps à améliorer mon environnement visuel. Pour rappel, dans cette série d'articles, j'essaye d'expliquer comment se passer le plus poss...

    Je me relance dans cette série d'articles que j'ai trop souvent tendance à oublier alors qu'au final, j'ai passé (et j'en passe toujours) une énorme partie de mon temps à améliorer mon environnement visuel. Pour rappel, dans cette série d'articles, j'essaye d'expliquer comment se passer le plus possibles d'environnement graphique et les bienfaits de la simplicité pure d'un bon vieux terminal. Ça peut même être joli, faites-moi confiance.

    Aujourd'hui je vais me concentrer sur les outils de lecture et de gestion de contenus multimédias : images, films, et surtout musique, ce dernier média étant celui que je bichonne le plus avec une bibliothèque de plusieurs mois de longueurs cumulées et presque 500 Go de taille. Ça commence à faire gros et automatiser la gestion d'un machin pareil devient assez nécessaire.

    D'aucuns pourraient se dire que visionner du contenu multimédia sur un poste qui veut se passer d'environnement graphique, c'est un peu contradictoire. Mais rassurez-vous, il n'en est rien, c'est tout à fait possible, et même conseillé dans certains cas (histoire de réserver de la ressource pour lire le média lui-même et non pour gérer un ensemble d'effets de fenêtres débile qui fait prout quand on les ferme). Je vais donc vous exposer des outils KISS, faisant le travail demandé, ni plus, ni moins.

    Images

    Pour ouvrir des images, feh fait très bien le travail. Ça ouvre les jpg, png, gif, et bien d'autres, en fait tous les formats supportés par Imlib2. Il suffit de l'invoquer de la sorte :

    feh rem\_is\_best\_waifu.png

    À l'aide d'ImageMagick, ça peut même convertir d'autres formats afin de les ouvrir, par exemple le svg. Il suffit de donner une valeur de timeout à ImageMagick :

    feh --magick-timeout 5 logo\_hashtagueule.svg

    Astuce, si vous avez des images de grande dimension et que vous souhaitez adapter automatiquement la taille à la fenêtre de feh, ajoutez l'option suivante :

    feh -. playboy\_special\_tshirt\_mouille.jpg

    On peut même s'en servir pour le fond d'écran :

    feh --bg-scale windowsXP\_wallpaper.jpg

    Cette commande va créer par la même occasion un petit script ~/.fehbg afin de faciliter l'instauration du fond d'écran. Il suffira donc de dire à X11 ou à votre gestionnaire de fenêtre préféré de lancer ce script à chaque début de session (pour i3 on avait vu que ça se faisait avec la directive exec).

    Enfin, sachez que feh peut également ouvrir des images distantes via HTTP.

    Vidéos

    La plupart des gens, si on leur dit "vidéo sur linux", ils répondront à la microseconde et le plus fort possible "VLC!!!". Sachez qu'il n'y a pas que VLC dans la vie, mes enfants. Mon avis est que, même si VLC c'est très bien pour amener de l'open-source en terrain ennemi (ça tourne partout, y compris Windows et Mac), ça a une interface intuitive (c'est du QT, portable sur toutes les plateformes) et relativement facile à mettre en œuvre grâce à là nucléarité de ses fichiers d’exploitation (La plupart des bibliothèques utilisées par VLC sont des bibliothèques maison, et il y en a très peu), ben ces avantages apparents sont en partie des inconvénients pour les utilisateurs avancés. L'interface agréable, la belle affaire quand on veut se passer d'environnement graphique. La nucléarité de VLC également est un problème : ce sont des bibliothèques que seul VLC utilise ; résultat, personne n'y comprends plus rien et ça fait doublon avec d'autres bibliothèques plus communes et à mon sens plus propre.

    Bref, pour toutes ces raisons j'ai renoncé à VLC. Quand on y réfléchit, les raisons sont presque les même que les arguments contre GNOME.

    À la place, j'utilise mpv, qui a vraiment une interface minimale (et par conséquent élégante), et qui est plus léger que VLC, et ça se voit quand on lis des vidéos sur des machines pas super récentes.

    mpv a un système de raccourcis clavier hautement configurable et possède les même fonctionnalités que VLC. Il possède également un mécanisme d'accélération graphique.

    Bon, vu que je m'y connais pas vraiment côté vidéo, je vous laisse avec une capture d'écran.

    Rem is Best Waifu Rem is best waifu

    Musique

    Bon, là c'est du sérieux. Je ne gère pas de photothèque, et mes bibliothèques de films et de séries ne nécessitent pas beaucoup d'effort pour rester rangé. Mais la musique c'est une autre paire de manche.

    Gestionnaire de musique

    Pour ranger ma musique, jusqu'il n'y a pas si longtemps, j'utilisais l'utilitaire graphique Ex Falso, livré avec le lecteur de musique Quod Libet. Ces deux programmes sont très bons, c'est ceux que j'utilisait quand j'étais encore sous Cinnamon. Ex Falso est très puissant et permettait de faire des opérations sur des fichiers audio : modification des tags manuellement, par nom de fichier, ou encore et surtout l'opération inverse, à savoir changer l'emplacement et le nom de fichier en fonction des tags. L'ennui c'est que c'est du GTK, et pas d'interface en ligne de commande donc pas scriptable du tout.

    Je me suis finalement mis à beets, un outil full CLI destiné à maintenir une bibliothèque de musique rigoureusement organisée, que j'exécute directement sur le NAS. Beets peut à peu près tout faire et répond à toutes les demandes, pour peu qu'on passe du temps à comprendre toutes ses options. Et Dieu sait qu'il y en a beaucoup.

    Beets intègre un autotaggeur, c'est à dire que par défaut, il va chercher les tags des nouveaux fichiers. Sachant qu'en général les fichiers que j'importe sont déjà correctement taggés, j'ai choisi de désactiver cette fonctionnalité (et j'ai trop peur de ce qui arriverai si beets se plantait). Par contre, je l'utilise pour qu'il intègre mes nouveaux fichiers dans l'arborescence correcte. Je tiens à ce que ma bibliothèque soit rangé ainsi (pour faire simple) : racine/artiste/album/numdisque_numpiste-titre.flac

    Voici mon fichier de configuration (il est ridiculement petit et n'exploite qu'un fragment des possibilités de beets) :

    directory: /mnt/data/multimedia/Musique
    
    import:
        copy: yes
        #incremental: yes
        log: ~/.config/beets/beets.log
        autotag: no
    
    paths:
        default: %if{$albumartist,$albumartist,%if{$artist,%artist,unknown}}/%if{$album,$album,unknown}/%if{$disc,$disc-}%if{$track,$track - }$title

    Maintenant, quand je veux importer de nouveaux fichiers, il me suffit d'invoquer beets de la sorte :

    beet import /chemin/vers/dossier/contenant/nouveaux/morceaux

    Et paf, ça fait le taf. Bon je vous laisse lire la signification des instructions sur la (très bonne) documentation de beets. Vous allez vous en sortir, je crois en vous.

    Lecteur de musique

    C'est là que le bât blesse. En fait je n'ai pas encore trouvé le lecteur qui couvre exactement % de mes besoins. Je suis partagé entre deux programmes, qui ont chacun des avantages.

    MPD

    Mon rêve c'est de ne pouvoir tourner qu'avec MPD. Je vous en ai déjà parlé sur l'article Un jukebox à partir d'un Raspberry Pi en vous disant que ça déchire, et c'est effectivement le cas. Ça ne consomme quasiment aucune ressource, ça peut lire plein de formats, ça se contrôle avec un protocole simple (même avec MPRIS2, le protocole universel de contrôle de lecteur multimédia sur Linux, grâce à l'outil mpDris2) et ça vous fout la paix. Le problème, c'est que tous les clients MPD en ligne de commande que j'ai trouvé ont à mon sens une interface peu ergonomique. Le meilleur candidat étant ncmpcpp (déjà il à un nom à coucher dehors), l'ergonomie de son interface (pourtant en très joli ncurse, et vous savez à quel point j'aime ncurse) ne m'a pas emballé. Naviguer dans sa bibliothèque est assez douloureux, la répartition des différentes vues du programme sont pour le moins folkloriques, les raccourcis clavier par défaut sont assez déroutant... Dommage.

    cmus

    On parlait d'interface, et cmus en a une très réussie et intelligemment pensée. Les utilisateurs de lecteurs de musique graphiques comme Rhythmbox, Quod Libet ou encore iTunes s'y retrouveront assez facilement. Et depuis la version 2.8, encore au stade de release candidate, on peut également le contrôler nativement par MPRIS2. Le problème est qu'il s'agit uniquement d'un lecteur local, pas prévu pour être contrôlé depuis une autre machine que celle sur laquelle il est exécuté (ou alors on le contrôle depuis une session tmux sur la machine distante, mais c'est sale, et de toute façon, on perd les avantages de MPD mentionnés). Là encore, c'est dommage.

    mcmpcpp à gauche, cmus à droite. Et pour rajouter du kikoolol, l'utilitaire cava en bas.

    L'idéal pour moi serait donc un cmus qui contrôlerait MPD, mais à en croire la réponse à une feature request, c'est loin d'être à l'ordre du jour hélas.

    Je me suis donc résolu à utiliser MPD pour le seul usage sur mon installation audio dédiée, et cmus quand j'ai besoin de travailler avec des écouteurs, au boulot comme à la maison.

    N'hésitez pas à me dire votre avis, notamment si vous avez un client MPD préféré, et nous dire qui est votre waifu. Rem c'est la mienne alors pas touche.