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:

Codice: Seleziona tutto

lame -b 128 nome_file.mp3
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 :D

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:

Codice: Seleziona tutto

find ./ -name "*.mp3" -exec lame -b 128 '{}' \; 

Inviato: gio 23 nov 2006, 12:16
da tgmx
@ airex

Grazie mille ora funziona!!! :D


@ 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 :D