Bonjour à tous !
Je suis en train d'écrire un script qui doit faire les actions suivantes :
- Diviser un fichier FLAC ou WAV en plusieurs fichiers d'après un fichier CUE
- Changer chacun des fichiers créés en MP3
- Renommer chaque fichier d'après le titre du morceau, tiré des tags ID3
Je cale pour la dernière partie, mais peut-être y a-t-il des moyens plus simples que celui que je me propose.
Pour la première partie, j'utilise la commande suivante :
cuebreakpoints *.cue | shnsplit -o flac *.flac
et celle-ci :
cuetag *.cue split-track*.flac
Pour la deuxième :
ffmpeg -i "$a" -qscale:a 0 "${a[@]/%flac/mp3}"
, où $a est le nom du fichier.
Pour la troisième, j'ai essayé plusieurs commandes différentes, avec ffprobe, mp3info et id3.
Les deux dernières me disent qu'il n'y a pas de tag id3 :
split-track01.mp3: No ID3 tag.
mp3info split-track01.mp3
split-track01.mp3 does not have an ID3 1.x tag.
Pourtant, ffprobe me dit qu'il y en a :
ffprobe split-track01.mp3
ffprobe version 3.0.2-3 Copyright (c) 2007-2016 the FFmpeg developers
built with gcc 5.3.1 (Debian 5.3.1-21) 20160528
configuration: --prefix=/usr --extra-version=3 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librubberband --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-chromaprint --enable-libx264
libavutil 55. 17.103 / 55. 17.103
libavcodec 57. 24.102 / 57. 24.102
libavformat 57. 25.100 / 57. 25.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 31.100 / 6. 31.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
[mp3 @ 0x264da60] Skipping 0 bytes of junk at 565.
Input #0, mp3, from 'split-track01.mp3':
Metadata:
title : Premiere partie - Dans la creche, en ce temps (Le Recitant)
album : Berlioz - L'Enfance du Christ (CD1)
track : 01
TRACKTOTAL : 12
artist : L'Orchestre Symphonique de Montreal, Charles Dutoit
performer : L'Orchestre Symphonique de Montreal, Charles Dutoit
ISRC : GBBBB9500601
encoder : Lavf57.25.100
Duration: 00:02:07.01, start: 0.025057, bitrate: 235 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 235 kb/s
Metadata:
encoder : Lavc57.24
Je pourrais utiliser ffproble, mais il ne semble pas supporter les redirections, ni les pipe. Par exemple, la commande suivante me donne exactement la même sortie que s'il n'y avait pas de pipe.
ffprobe split-track01.mp3 | grep album
De même, si je veux envoyer la sortie dans un fichier, le fichier reste vide.
ffprobe split-track01.mp3 > sortie
Impossible donc de l'utiliser dans un script.
Connaissez-vous une commande qui fonctionnerait, ou bien une commande qui renommerait les fichiers en fonction du titre directement à partir du .CUE ?
Merci d'avance !
Dernière modification par Lancelot du Lac (11-06-2016 17:49:15)
Dell Inspiron 7500 series - Debian Stretch - KDE/openbox - ZSH
Samsung - Debian Jessie - LXDE/pas de graphique - ZSH