Convertir ses FLAC en MP3, sous Linux
Je vous avais prévenu dans la conclusion de ma migration réussie sous Manjaro, alors voici un premier article pour vous dire comment faire la même chose que sous Windows, mais au froid. Donc, dans celui-ci, ce n’était pas votre salon qui était le centre de l’attention, mais l’autoradio. Et vous allez voir, c’est encore plus rapide !
Contrairement à Windows, pas besoin de télécharger moult codecs et un programme en .NET. Ici, il faut simplement disposer de FFmpeg, un véritable couteau suisse des formats audio et vidéo. Cette description ne vous dit rien ? C’est pourtant celle que je donne à VLC dans cet article, et pour cause, VLC repose sur FFmpeg pour une grande partie de son très bon support des formats. Donc si vous avez VLC d’installé sur votre machine, FFmpeg est probablement déjà installé aussi. Sinon, c’est assez facile :
- apt-get install ffmpeg pour Debian et dérivés
- pacman -S ffmpeg pour Manjaro/Arch
- les sources sont dispos sur git pour les accros à la compilation (infos sur la page de téléchargement, une version existe aussi pour Windows)
Et maintenant, la magie entre en jeu. Lors de ma présentation précédente le programme sous Windows prenait un dossier en guise de source, et détectait les fichiers .flac pour les convertir. Le fonctionnement sera grosso modo le même, mais va reposer sur une boucle for. On va donc créer un script et y poser notre boucle qui prendra en paramètre les fichiers .flac du dossier en cours et convertira les fichiers en MP3, avec en prime la conversion des méta-données (les informations incluses dans les fichiers, que l’autoradio scanne justement pour vous afficher le titre du morceau en cours). Trève de blabla, un peu de code :
1 2 3 4 5 6 |
#!/bin/bash for FILE in *.flac; do ffmpeg -i "$FILE" -ab 320k -map_metadata 0 "${FILE%.*}.mp3"; done |
C’est aussi simple que ça. Perso je me suis créé un dossier ‘scripts’ à la racine de mon dossier /home/seboss666, et je l’ai enregistré dedans, avec le nom flac2mp3.sh. Un petit chmod +x /home/seboss666/scripts/flac2mp3.sh plus tard, il suffit de se placer dans le dossier contenant les fichiers à convertir et de l’invoquer, sans même utiliser de paramètres :
1 |
cd /home/seboss666/Musique/Stromae\ -\ Racine\ Carrée && /home/seboss666/scripts/flac2mp3.sh |
Pour chaque morceau, FFmpeg affichera la progression :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
ffmpeg version 2.1.4 Copyright (c) 2000-2014 the FFmpeg developers built on Feb 24 2014 10:33:56 with gcc 4.8.2 (GCC) 20140206 (prerelease) configuration: --prefix=/usr --disable-debug --disable-static --enable-avresample --enable-dxva2 --enable-fontconfig --enable-gnutls --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-pic --enable-postproc --enable-runtime-cpudetect --enable-shared --enable-swresample --enable-vdpau --enable-version3 --enable-x11grab libavutil 52. 48.101 / 52. 48.101 libavcodec 55. 39.101 / 55. 39.101 libavformat 55. 19.104 / 55. 19.104 libavdevice 55. 5.100 / 55. 5.100 libavfilter 3. 90.100 / 3. 90.100 libavresample 1. 1. 0 / 1. 1. 0 libswscale 2. 5.101 / 2. 5.101 libswresample 0. 17.104 / 0. 17.104 libpostproc 52. 3.100 / 52. 3.100 Input #0, flac, from '01-Ta fête.flac': Metadata: TOTALDISCS : 1 TOTALTRACKS : 13 ALBUM : Racine Carrée ARTIST : Stromae TITLE : Ta fête disc : 1 track : 01 Duration: 00:02:56.55, bitrate: 991 kb/s Stream #0:0: Audio: flac, 44100 Hz, stereo, s16 Output #0, mp3, to '01-Ta fête.mp3': Metadata: TOTALDISCS : 1 TOTALTRACKS : 13 TALB : Racine Carrée TPE1 : Stromae TIT2 : Ta fête TPOS : 1 TRCK : 01 TSSE : Lavf55.19.104 Stream #0:0: Audio: mp3 (libmp3lame), 44100 Hz, stereo, s16p, 320 kb/s Stream mapping: Stream #0:0 -> #0:0 (flac -> libmp3lame) Press [q] to stop, [?] for help size= 6899kB time=00:02:56.56 bitrate= 320.1kbits/s video:0kB audio:6898kB subtitle:0 global headers:0kB muxing overhead 0.017428% |
Personnellement je trouve que ça va beaucoup plus vite que sous Windows. A ce propos, si vous disposez de FFmpeg sous une forme exploitable, il est possible d’adapter ce script pour s’en servir en ligne de commande, sous Windows. Si si, c’est possible, ça s’appelle un fichier .bat (qui n’est en fait qu’un fichier texte), et ça ressemble à ça :
1 2 3 4 5 6 7 8 9 10 |
@ECHO OFF FOR %%f IN (*.flac) DO ( echo Converting: %%f ffmpeg -i "%%f" -ab 320k -map_metadata 0 "%%~nf.mp3" ) echo Finished PAUSE |
Vous voyez, ce n’est vraiment pas sorcier. Même si dans un prochain article on verra que le téléchargement de vidéos Youtube ne parait pas aussi simple, n’allez pas me dire que cette méthode n’est pas plus rapide que le logiciel que je vous ai présenté sous Windows. La ligne de commande, ce n’est pas le mal. C’est juste différent à appréhender.
il ne manquerait pas un k derrière 320 dans le code pour linux ?
Tout à fait, j’ai corrigé, merci beaucoup 🙂
Parfait ! Merci pour cet article !
[…] ## links https://blog.seboss666.info/2014/04/convertir-ses-flac-en-mp3-sous-linux/ […]
[…] ## links https://blog.seboss666.info/2014/04/convertir-ses-flac-en-mp3-sous-linux/ […]