Pagina 1 di 1
Script conversione mp3
Inviato: mer 22 nov 2006, 19:41
da tgmx
Ciao Ragazzi,
purtroppo non sono molto ferrato in materia di script...
Ho delle directory contenenti degli mp3 molti dei quali sono a 192 Kbps.
Che voi sappiate c'è il modo per convertirli a 128 Kbps senza perderci troppo tempo? magari con uno script che usa lame?
Grazie
Inviato: mer 22 nov 2006, 22:42
da pino_otto
Con "sox" puoi fare un sacco di conversioni di file audio in maniera molto semplice da riga di comando.
http://sox.sourceforge.net/
Installalo e poi fai "man sox" per vedere tutte le opzioni.
Fammi sapere, se ti e' stato utile.
Inviato: mer 22 nov 2006, 22:47
da airex
anche con lame potresti provare (man lame per le info). Poi i tuoi file mp3 li potresti convertire con qualcosa di simile a
find dir_base -name "*.mp3" -exec prog_conversione paramteri_prog_conversione {}\;
Inviato: mer 22 nov 2006, 23:12
da tgmx
Sox sembra buono, tra l'altro non lo conoscevo ma credo che con lame posso fare prima.
Ho visto che se lancio:
parte la conversione e tutto è apposto.
Però lame non accetta un asterisco al posto del nome_file quindi non so come fargli processare tutti i file ed inoltre i file sono divisi in più directory.
PS X airex
purtroppo il parametro -exec non sembra funzionare
Inviato: gio 23 nov 2006, 10:20
da airex
Codice: Seleziona tutto
#!/bin/sh
# metti la dir dove sono i file mp3
DIRMP3="....."
D=`pwd`
CD $DIRMP3
for i in *.mp3;
do
lame -b 128 $i;
done
cd $D
altrimenti se i i file sono in piu' dir aventi puoi provare
Codice: Seleziona tutto
#!/bin/sh
# metti la dir (path assoluto) da cui cominciare a cercare i file mp3
DIRMP3="....."
D=`pwd`
CD $DIRMP3
for i in `find . -name "*.mp3"`;
do
cd `dirname $i`
lame -b 128 `basename $i`;
CD $DIRMP3
done
cd $D
Mi pare strano comunque che find -exec non vada ... potresti fare un copia e incolla del comando che hai usato?
Inviato: gio 23 nov 2006, 10:52
da tgmx
Grazie airex,
lo script funziona, almeno il primo, il secondo non l'ho ancora provato però adesso si è presentato un problema; quello script funziona solo con mp3 che non contengono spazi nel nome ed io, guarda caso, li ho quasi tutti con degli spazi...
Per quanto riguarda -exec, ho lanciato un comando praticamente identico a quello che mi hai consigliato dato che non ne conosco personalmente la sintassi:
Codice: Seleziona tutto
find ./ -name "*.mp3" -exec lame -b 128 {}\;
find: missing argument to `-exec'
Inviato: gio 23 nov 2006, 11:02
da airex
Eccoti la versione per i file con gli spazi
Codice: Seleziona tutto
#!/bin/sh
# metti la dir dove sono i file mp3
DIRMP3="....."
D=`pwd`
CD $DIRMP3
for i in *.mp3;
do
lame -b 128 "$i";
done
cd $D
Codice: Seleziona tutto
#!/bin/sh
# metti la dir (path assoluto) da cui cominciare a cercare i file mp3
DIRMP3="....."
D=`pwd`
CD $DIRMP3
for i in `find . -name "*.mp3"|sed -es/\ /x666x/`;
do
cd `dirname $i`
F=`basename $i`
F=`echo $F|sed -es/x666x/\ /`
lame -b 128 "$F";
CD $DIRMP3
done
cd $D
ps.
odio gli spazi nei nomi di file

Inviato: gio 23 nov 2006, 11:43
da gioco
tgmx ha scritto:
Per quanto riguarda -exec, ho lanciato un comando praticamente identico a quello che mi hai consigliato dato che non ne conosco personalmente la sintassi:
Codice: Seleziona tutto
find ./ -name "*.mp3" -exec lame -b 128 {}\;
find: missing argument to `-exec'
Prova questo:
Inviato: gio 23 nov 2006, 12:16
da tgmx
@ airex
Grazie mille ora funziona!!!
@ gioco
ora funziona anche con find... Grazie!!!
Non mi resta che capire perchè lame nel fare quella riduzione di bitrate perda tutti i tag id3, ma questa è un'altra storia e cercando un po' in giro sembra che sia normale così.
Bisognerebbe ogni volta recuperarli dal vecchio file, fare la conversione e rimetterli nel nuovo... mi sa che li tengo senza tag
