Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2015-07-30T12:25:45+02:00Les derniers messages parus sur le forum de Zeste de Savoir.Script pour convertir des musiques, message #677472015-07-30T12:25:45+02:00Taurre/@Taurrehttps://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67747<p>Veux-tu dire que le script ne rencontre plus d'erreur, mais que les musiques n'ont pas la bonne durée ? Si oui, change l'option <em>loglevel</em> de <strong>ffmpeg</strong> de <em>warning</em> à <em>debug</em>. Ceci va te donner une sortie plus volumineuse. De celle-ci, peux-tu me donner la partie consacrée à la conversion <em>d'une</em> musique qui ne se passe pas correctement ? Si non, l'erreur est-elle toujours la même (fichier introuvable dû au fait qu'une partie du chemin est tronquée) ?</p>Script pour convertir des musiques, message #677432015-07-30T11:14:16+02:00Wizix/@Wizixhttps://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67743<p>T'inquiète pas, tu fais bien de le préciser !</p>
<p>Alors le résultat du script est… Plutôt positif pour le moment. Voici ce que j'ai pour une musique :</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4</pre></div></td><td class="code"><div class="codehilite"><pre>+ read line
+ file=Musique/Coldplay/Mylo Xyloto/06. M.M.I.X.mp3
+ ffmpeg -loglevel warning -i Musique/Coldplay/Mylo Xyloto/06. M.M.I.X.ogg -f mp3 -c:a mp3 -b:a 320k -y Musique/Coldplay/Mylo Xyloto/06. M.M.I.X.mp3
+ rm Musique/Coldplay/Mylo Xyloto/06. M.M.I.X.ogg
</pre></div>
</td></tr></table>
<p>Je regarde si M.M.I.X de Coldplay est bien complète… Oui elle est, 48 secondes comme l'original, par contre les autres (celle qui font environ 4 minutes) font toujours que 16 secondes <img alt=":(" src="/static/smileys/triste.png"></p>
<p>Merci de ton aide !</p>Script pour convertir des musiques, message #675122015-07-29T11:24:39+02:00Taurre/@Taurrehttps://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67512<p>Pour ce qui est du script, je me demande si une commande ne joue pas les trouble-fête en lisant une partie des données sur l'entrée standard. Rencontres-tu le même problème avec ce script ?</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5
6
7</pre></div></td><td class="code"><div class="codehilite"><pre><span class="c">#! /bin/sh -ex</span>
find Musique -type f -name <span class="s2">"*.flac"</span> -or -name <span class="s2">"*.ogg"</span> <span class="p">|</span> <span class="k">while</span> <span class="nb">read </span>line<span class="p">;</span> <span class="k">do</span>
<span class="nv">file</span><span class="o">=</span><span class="s2">"</span><span class="si">${</span><span class="nv">line</span><span class="p">%.*</span><span class="si">}</span><span class="s2">.mp3"</span>
ffmpeg </dev/tty -loglevel warning -i <span class="s2">"</span><span class="nv">$line</span><span class="s2">"</span> -f mp3 -c:a mp3 -b:a 320k -y <span class="s2">"</span><span class="nv">$file</span><span class="s2">"</span>
rm <span class="s2">"</span><span class="nv">$line</span><span class="s2">"</span>
<span class="k">done</span>
</pre></div>
</td></tr></table>
<p>Note : j'ai spécifié un débit de 320 kb/s, mais libre à toi de choisir la qualité voulue.</p>
<figure><blockquote>
<p>Pour la suppression des fichiers, j'effectues mes tests sur des fichiers mis dans un autre dossier, rien à craindre (je les copie).</p>
<p>[…]</p>
<p>Pour le format MP3, j'ai tous les originaux qui sont sur un disque dur à part et j'ai absolument de ce format actuellement ! Autrement je ne m'embêterait pas. <img alt=";)" src="/static/smileys/clin.png"></p>
</blockquote>
<figcaption><p><a href="http://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67468">Wizix</a></p></figcaption></figure><p>Ok, au temps pour moi. Dans le doute, je préfère toujours le préciser, cela ne mange pas de pain. <img alt="^^" src="/static/smileys/hihi.png"></p>Script pour convertir des musiques, message #674682015-07-28T23:47:56+02:00Wizix/@Wizixhttps://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67468<p>Alors je vais essayer de répondre à toutes tes remarques.<br>
Pour la suppression des fichiers, j'effectues mes tests sur des fichiers mis dans un autre dossier, rien à craindre (je les copie). </p>
<p>Ensuite, voici le retour de ton script :</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11</pre></div></td><td class="code"><div class="codehilite"><pre>sh -ex convert.sh
+ + findread Musique line -type
f -name *.flac -or -name *.ogg
+ file=Musique/Coldplay/Mylo Xyloto/04. Charlie Brown.mp3
+ ffmpeg -loglevel warning -i Musique/Coldplay/Mylo Xyloto/04. Charlie Brown.ogg -f mp3 -c:a mp3 -b:a 320k -y Musique/Coldplay/Mylo Xyloto/04. Charlie Brown.mp3
+ rm Musique/Coldplay/Mylo Xyloto/04. Charlie Brown.ogg
+ read line
+ file=ue/Coldplay/Mylo Xyloto/13. Don't Let It Break Your Heart.mp3
+ ffmpeg -loglevel warning -i ue/Coldplay/Mylo Xyloto/13. Don't Let It Break Your Heart.ogg -f mp3 -c:a mp3 -b:a 320k -y ue/Coldplay/Mylo Xyloto/13. Don't Let It Break Your Heart.mp3
ue/Coldplay/Mylo Xyloto/13. Don't Let It Break Your Heart.ogg: No such file or directory
</pre></div>
</td></tr></table>
<p>Pour le format MP3, j'ai tous les originaux qui sont sur un disque dur à part et j'ai absolument de ce format actuellement ! Autrement je ne m'embêterait pas. <img alt=";)" src="/static/smileys/clin.png"></p>
<p>Merci pour ton aide!</p>Script pour convertir des musiques, message #674602015-07-28T21:55:46+02:00Taurre/@Taurrehttps://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67460<p>Soit dit en passant : l'encodage MP3 donne de moins bons résultats que le Vorbis (l'encodage utilisé pour le son au sein du format Ogg), surtout lors des compressions fortes (débit inférieur ou égale à 128 kb/s). Également, le FLAC opère une compression <em>sans pertes</em> à l'inverse du MP3 et de Vorbis, ce qui fait qu'il est utilisé pour conserver des musiques de bonnes qualités. Enfin, garde à l'esprit qu'en convertissant de Vorbis vers MP3 tu opères une nouvelle compression sur un flux qui a <em>déjà</em> été compressé, ce qui réduit encore sa qualité.</p>
<p>Aussi, réfléchis bien avant de convertir tes fichiers vers le format MP3 parce qu'après, tu ne pourras plus faire machine arrière (sauf à récupérer tous les originaux). <img alt=";)" src="/static/smileys/clin.png"></p>Script pour convertir des musiques, message #674572015-07-28T21:26:17+02:00Taurre/@Taurrehttps://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67457<p>Tout d'abord, je te conseil <em>vivement</em> de ne <em>jamais</em> placer d'instructions de suppression au sein d'un script qui est en cours d'essai. En l'occurrence, tu as de la chance que tes fichiers n'aient pas été supprimer alors que la conversion s'est mal passée. Ensuite, peux-tu me donner la sortie du script ci-dessous (si tu souhaites l'exécuter en appelant un interpréteur, utilise la commande <code>sh -ex ton_script.sh</code>) ?</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5
6
7</pre></div></td><td class="code"><div class="codehilite"><pre><span class="c">#! /bin/sh -ex</span>
find Musique -type f -name <span class="s2">"*.flac"</span> -or -name <span class="s2">"*.ogg"</span> <span class="p">|</span> <span class="k">while</span> <span class="nb">read </span>line<span class="p">;</span> <span class="k">do</span>
<span class="nv">file</span><span class="o">=</span><span class="s2">"</span><span class="si">${</span><span class="nv">line</span><span class="p">%.*</span><span class="si">}</span><span class="s2">.mp3"</span>
ffmpeg -loglevel warning -i <span class="s2">"</span><span class="nv">$line</span><span class="s2">"</span> -f mp3 -c:a mp3 -b:a 320k -y <span class="s2">"</span><span class="nv">$file</span><span class="s2">"</span>
rm <span class="s2">"</span><span class="nv">$line</span><span class="s2">"</span>
<span class="k">done</span>
</pre></div>
</td></tr></table>
<p><strong>EDIT:</strong> petite correction du script.</p>Script pour convertir des musiques, message #674122015-07-28T13:12:58+02:00Wizix/@Wizixhttps://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67412<p>Merci je comprend un peu mieux. Mais en faite, le script ne va pas du tout. Toutes les musiques converties dans mon dossier de test ne font qu'une dizaine de secondes au format MP3 et à chaque fois qu'un fichier se fait convertir, j'ai une erreur comme quoi il n'existe pas (mais l'erreur est ignorée et passe au suivant…)</p>
<p>Voici ce que m'affiche la console (imaginez pour chaque fichier) : </p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63</pre></div></td><td class="code"><div class="codehilite"><pre>ffmpeg version 2.4.3-1ubuntu1~trusty6 Copyright (c) 2000-2014 the FFmpeg developers
built on Nov 22 2014 17:07:19 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
configuration: --prefix=/usr --extra-version='1ubuntu1~trusty6' --build-suffix=-ffmpeg --toolchain=hardened --extra-cflags= --extra-cxxflags= --libdir=/usr/lib/x86_64-linux-gnu --shlibdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-fontconfig --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-opengl --enable-x11grab --enable-libxvid --enable-libx265 --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libx264 --enable-libsoxr --enable-openal --enable-libopencv
libavutil 54. 7.100 / 54. 7.100
libavcodec 56. 1.100 / 56. 1.100
libavformat 56. 4.101 / 56. 4.101
libavdevice 56. 0.100 / 56. 0.100
libavfilter 5. 1.100 / 5. 1.100
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 0.100 / 3. 0.100
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 0.100 / 53. 0.100
Input #0, ogg, from 'Musique/Coldplay/Parachutes/04. Sparks.ogg':
Duration: 00:03:47.08, start: 0.000000, bitrate: 144 kb/s
Stream #0:0: Audio: vorbis, 44100 Hz, stereo, fltp, 160 kb/s
Metadata:
ARTIST : Coldplay
ALBUM : Parachutes
TITLE : Sparks
track : 4
TRACKTOTAL : 10
disc : 10
MUSICBRAINZ_TRACKID: 22d49305-4e35-4a69-8638-05ac5f734065
MUSICBRAINZ_ARTISTID: cc197bad-dc9c-440d-a5b5-d52ba2e14234
MUSICBRAINZ_ALBUMID: 435fc965-9121-461e-b8da-d9b505c9dc9b
DISCID : 8909cc0a
MUSICBRAINZ_DISCID: 6eW10RD1xgHwJJvfZng1.o0z8lE-
Output #0, mp3, to 'Musique/Coldplay/Parachutes/04. Sparks.mp3':
Metadata:
TSSE : Lavf56.4.101
Stream #0:0: Audio: mp3 (libmp3lame), 44100 Hz, stereo, fltp
Metadata:
ARTIST : Coldplay
ALBUM : Parachutes
TITLE : Sparks
track : 4
TRACKTOTAL : 10
disc : 10
MUSICBRAINZ_TRACKID: 22d49305-4e35-4a69-8638-05ac5f734065
MUSICBRAINZ_ARTISTID: cc197bad-dc9c-440d-a5b5-d52ba2e14234
MUSICBRAINZ_ALBUMID: 435fc965-9121-461e-b8da-d9b505c9dc9b
DISCID : 8909cc0a
MUSICBRAINZ_DISCID: 6eW10RD1xgHwJJvfZng1.o0z8lE-
encoder : Lavc56.1.100 libmp3lame
Stream mapping:
Stream #0:0 -> #0:0 (vorbis (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
size= 218kB time=00:00:13.90 bitrate= 128.3kbits/s
video:0kB audio:218kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.101449%
ffmpeg version 2.4.3-1ubuntu1~trusty6 Copyright (c) 2000-2014 the FFmpeg developers
built on Nov 22 2014 17:07:19 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
configuration: --prefix=/usr --extra-version='1ubuntu1~trusty6' --build-suffix=-ffmpeg --toolchain=hardened --extra-cflags= --extra-cxxflags= --libdir=/usr/lib/x86_64-linux-gnu --shlibdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-fontconfig --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-opengl --enable-x11grab --enable-libxvid --enable-libx265 --enable-libdc1394 --enable-libiec61883 --enable-libzvbi --enable-libzmq --enable-frei0r --enable-libx264 --enable-libsoxr --enable-openal --enable-libopencv
libavutil 54. 7.100 / 54. 7.100
libavcodec 56. 1.100 / 56. 1.100
libavformat 56. 4.101 / 56. 4.101
libavdevice 56. 0.100 / 56. 0.100
libavfilter 5. 1.100 / 5. 1.100
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 0.100 / 3. 0.100
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 0.100 / 53. 0.100
ue/Coldplay/Parachutes/10. Everything's Not Lost _ Life Is for Living.ogg: No such file or directory
rm: impossible de supprimer «ue/Coldplay/Parachutes/10. Everything's Not Lost _ Life Is for Living.ogg»: Aucun fichier ou dossier de ce type
</pre></div>
</td></tr></table>
<p>Par exemple ici, la chanson Sparks de Coldplay est convertie en MP3 mais ne fait que 14 secondes contre 3 minutes et quelques au format OGG ou FLAC je ne sais plus…</p>
<p>Et voici le script que j'utilise :</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5</pre></div></td><td class="code"><div class="codehilite"><pre>find Musique -type f -name <span class="s2">"*.flac"</span> -or -name <span class="s2">"*.ogg"</span> <span class="p">|</span> <span class="k">while</span> <span class="nb">read </span>line<span class="p">;</span> <span class="k">do</span>
<span class="nv">file</span><span class="o">=</span><span class="s2">"</span><span class="si">${</span><span class="nv">line</span><span class="p">%.*</span><span class="si">}</span><span class="s2">.mp3"</span>
ffmpeg -i <span class="s2">"</span><span class="nv">$line</span><span class="s2">"</span> <span class="s2">"</span><span class="nv">$file</span><span class="s2">"</span> -y
rm <span class="s2">"</span><span class="nv">$line</span><span class="s2">"</span>
<span class="k">done</span>
</pre></div>
</td></tr></table>
<p>Et non les fichiers ne subissent aucunes modifications à ce que je sache, je ferme toutes mes applis et lance le script, le problème arrive quand même! Mais je me disait que c'était peut être parce que il cherche un fichier du nom de <code>ue/Coldplay/Parachutes/10. Everything's Not Lost _ Life Is for Living.ogg</code> alors que c'est <code>Musique/Coldplay/Parachutes/10. Everything's Not Lost _ Life Is for Living.ogg</code>, non ?</p>
<p>Merci de votre aide !</p>Script pour convertir des musiques, message #674062015-07-28T12:20:46+02:00Taurre/@Taurrehttps://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67406<p>Salut,</p>
<figure><blockquote>
<p>Le problème c'est que je suis incapable de comprendre ton petit script, mais il fonctionne !
</p>
</blockquote>
<figcaption><p><a href="http://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67349">Wizix</a></p></figcaption></figure><p>Pour l'explication :</p>
<ul>
<li>La commande <strong>find</strong>(1) est utilisée pour opérer des recherches au sein d'une arborescence de dossiers. Dans l'exemple, il lui est demandé de rechercher les fichiers (option <code>-type f</code>) dont le nom se termine, sans ternir compte des majuscules ou minuscules, par <em>.flac</em> ou <em>.ogg</em> (options <code>-iname "*.flac" -or -iname "*.ogg"</code>) et qui sont présents dans le dossier <em>Musique</em> ou ses sous-dossiers.</li>
<li>Normalement, la commande <strong>find</strong> affiche chacun de ses résultats sur une ligne, mais il est possible de lui demander de séparer chaque résultat par un caractère nul à l'aide de l'option <code>-print0</code> (c'est utile en cas de noms de fichier tordus, mais dans ce cas ci c'est superflu).</li>
<li>La commande <strong>read</strong> (qui est une fonction interne de <strong>bash</strong>(1)) lit par défaut une ligne depuis l'entrée standard, la scinde en plusieurs parties suivant la valeur de la variable IFS et assigne chacune d'elle aux variables spécifiées comme derniers arguments. Dans ce cas ci, la variable IFS est mise à zéro, ce qui fait que la séparation de la ligne est désactivée. Pour ce qui est des options : l'option <strong>-r</strong> précise que le caractère <code>\</code> doit être traité comme tel et l'option <code>-d $'\0'</code> spécifie qu'une ligne est délimitée par un caractère nul et non par un caractère de fin de ligne. Enfin, chaque ligne est assignée à la variable <em>ligne</em>.</li>
<li>La commande <strong>sed</strong>(1) opère différentes opérations sur un flux de texte. En l'occurrence, il lui est demandé de supprimer la première suite de caractères composée de n'importe quel caractère (<code>.</code>) suivie des caractères <em>ogg</em> ou <em>flac</em> (<code>\(ogg\|flac\)</code>) si cette dernière est rencontrée à la fin d'une ligne (<code>$</code>). Le texte ainsi modifié (le nom d'un fichier, donc) est assigné à la variable <em>file</em>.</li>
<li>Le texte <em>.mp3</em> est ajouté au contenu de la variable <em>file</em>.</li>
<li>La commande <strong>ffmpeg</strong>(1) est appelée.</li>
</ul>
<p>En fait, le script aurait pu être écrit de manière plus légère comme suit :</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4</pre></div></td><td class="code"><div class="codehilite"><pre>find Musique -type f -name <span class="s2">"*.flac"</span> -or -name <span class="s2">"*.ogg"</span> <span class="p">|</span> <span class="k">while</span> <span class="nb">read </span>line<span class="p">;</span> <span class="k">do</span>
<span class="nv">file</span><span class="o">=</span><span class="s2">"</span><span class="si">${</span><span class="nv">line</span><span class="p">%.*</span><span class="si">}</span><span class="s2">.mp3"</span>
ffmpeg -i <span class="s2">"</span><span class="nv">$line</span><span class="s2">"</span> <span class="s2">"</span><span class="nv">$file</span><span class="s2">"</span>
<span class="k">done</span>
</pre></div>
</td></tr></table>
<p>La suite <code>${line%.*}</code> signifie : « supprime du contenu de la variable <em>line</em> la pemière suite de caractères commençant par un point en débutant ta recherche par la fin ».</p>
<figure><blockquote>
<p>Le problème c'est qu'il bloque à un fichier :</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="codehilite"><pre>Bastille/All This Bad Blood/08. Oblivion.ogg: No such file or directory
</pre></div>
</td></tr></table>
<p>Alors que le fichier est bien là ! <br>
</p>
</blockquote>
<figcaption><p><a href="http://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67349">Wizix</a></p></figcaption></figure><p>Le nom de fichier affiché est bien le bon ? Il n'a pas subi une modifications ?</p>Script pour convertir des musiques, message #673492015-07-28T00:22:51+02:00Wizix/@Wizixhttps://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67349<p>Salut à tous !</p>
<p>J'ai retenu la réponse de @adri1 qui est celle que je recherchais. Bon je ne la trouve pas forcément si simple et finalement les boucles imbriquées n'étaient pas si méchantes ! <img alt=":p" src="/static/smileys/langue.png"> </p>
<p>Le problème c'est que je suis incapable de comprendre ton petit script, mais il fonctionne ! Le problème c'est qu'il bloque à un fichier :</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="codehilite"><pre>Bastille/All This Bad Blood/08. Oblivion.ogg: No such file or directory
</pre></div>
</td></tr></table>
<p>Alors que le fichier est bien là ! <br>
Aussi il faudrait pouvoir faire en sorte que le script supprime le ogg/flac après que celui-ci soit converti. Je ne sais absolument pas si ça marche mais j'ai rajouté ça :</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5
6</pre></div></td><td class="code"><div class="codehilite"><pre>find Musique -type f -iname <span class="s2">"*.flac"</span> -or -iname <span class="s2">"*.ogg"</span> -print0 <span class="p">|</span> <span class="k">while</span> <span class="nv">IFS</span><span class="o">=</span> <span class="nb">read</span> -r -d <span class="s1">$'\0'</span> line<span class="p">;</span> <span class="k">do</span>
<span class="nv">file</span><span class="o">=</span><span class="k">$(</span><span class="nb">echo</span> -n <span class="nv">$line</span> <span class="p">|</span> sed <span class="s1">'s/.\(ogg\|flac\)$//'</span><span class="k">)</span>
<span class="nv">file</span><span class="o">=</span><span class="s2">"</span><span class="si">${</span><span class="nv">file</span><span class="si">}</span><span class="s2">.mp3"</span>
ffmpeg -i <span class="s2">"</span><span class="nv">$line</span><span class="s2">"</span> <span class="s2">"</span><span class="nv">$file</span><span class="s2">"</span> -y
rm <span class="s2">"</span><span class="nv">$line</span><span class="s2">"</span> // là!
<span class="k">done</span>
</pre></div>
</td></tr></table>
<p>Merci de votre aide!</p>Script pour convertir des musiques, message #672672015-07-27T14:02:21+02:00WinXaito/@WinXaitohttps://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67267<p>Je n'ai pas testé si ça fonctionnait, </p>
<p>mais voilà ce que j'ai pu trouver: <a href="http://stackoverflow.com/questions/26109837/convert-flac-to-mp3-with-ffmpeg-keeping-all-metadata"><a href="http://stackoverflow.com/questions/26109837/convert-flac-to-mp3-with-ffmpeg-keeping-all-metadata">http://stackoverflow.com/questions/26109837/convert-flac-to-mp3-with-ffmpeg-keeping-all-metadata</a></a></p>Script pour convertir des musiques, message #672492015-07-27T11:02:41+02:00unidan/@unidanhttps://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67249<p>Je n'ai pas testé ça, les vidéos n'ont pas vraiment de tag, mais ffmpeg a forcément des options pour les conserver effectivement. <img alt=";)" src="/static/smileys/clin.png"></p>Script pour convertir des musiques, message #672452015-07-27T10:43:15+02:00adri1/@adri1https://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67245<p>Salut,</p>
<p>@Wizix : tu te compliques la vie de manière extraordinaire. <img alt="^^" src="/static/smileys/hihi.png"> Pas besoin de faire toutes ces boucles imbriquées, quelque chose comme :</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5</pre></div></td><td class="code"><div class="codehilite"><pre>find musique -type f -iname "*.flac" -or -iname "*.ogg" -print0 | while IFS= read -r -d $'\0' line; do
file=$(echo -n $line | sed 's/.\(ogg\|flac\)$//')
file="${file}.mp3"
ffmpeg -i "$line" "$file"
done
</pre></div>
</td></tr></table>
<p>devrait faire l'affaire (test sur des copies avant).</p>Script pour convertir des musiques, message #672432015-07-27T10:20:25+02:00Wizix/@Wizixhttps://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67243<p>Et il conservait les tags des musiques aussi ? (C'est vraiment quelque chose de super important, car au pire Rhythmbox est capable de refaire toutes la hiérarchie mais il a besoin des tags!) </p>Script pour convertir des musiques, message #672422015-07-27T10:17:28+02:00unidan/@unidanhttps://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67242<p>J'avais écrit un script en python, ça te permet d'avoir tous les outils python avec (en particulier si tu veux manipuler les tags). J'appelais ffmpeg pour faire les conversions des fichiers d'un dossier (des vidéos youtube téléchargées avec un autre script), qui est très simple à utiliser. </p>Script pour convertir des musiques, message #672402015-07-27T10:08:44+02:00Wizix/@Wizixhttps://zestedesavoir.com/forums/sujet/3732/script-pour-convertir-des-musiques/?page=1#p67240<p>Bonjour à tous, </p>
<p>Je précise que je ne connais absolument pas le bash. J'ai besoin d'un script qui me converti mes musiques (ogg et flac) au format mp3. Seulement, il ne faut pas changer la hiérarchie des fichiers ni leurs tags ! </p>
<p>J'ai commencé un petit algorithme :</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22</pre></div></td><td class="code"><div class="codehilite"><pre># ALGO DE CONVERTION
# Dans mon dossier musique, les fichiers sont triés ainsi :
# Artiste > Album > fichier.extension
# L'algo entre dans le dossier de chaque artiste, puis de chaque album
# Il observe le format des fichiers et si besoin les convertis (en gardant le nom du # fichier et ses tags !!)
POUR chaque_artiste FAIRE POUR artiste:
ENTRER DANS artiste
POUR chaque_album FAIRE POUR album:
ENTRER DANS album
POUR chaque_chanson FAIRE POUR chanson:
SI chanson.format == "flac":
flac_vers_mp3(chanson)
SINON SI chanson.format == "ogg":
ogg_vers_mp3(chanson)
SINON chanson.format == "mp3":
ignorer()
FIN POUR
FIN POUR
FIN POUR
</pre></div>
</td></tr></table>
<p>Je pensais réaliser ce programme en Bash, ce qui me parait le choix le plus logique. Seulement je ne connais absolument pas ce langage, bien qu'il ne doit pas trop différer du Python ou du Ruby (deux langages que je connais mieux). Le problème, c'est que j'ai peur de faire une bêtise et du coup de mettre le bazar dans toutes mon organisation. Et surtout pour les tags, je ne sais absolument pas comment m'y prendre…</p>
<p>Du coup, je me demandais si vous connaissiez un script déjà écrit, je ne dois pas être le premier à avoir besoin de ça… </p>
<p>Merci de votre aide !</p>