Conversione di WAV in MP3 usando LAME e Automator

7

Mi piacerebbe convertire molti file WAV in file MP3 usando LAME e Automator. Ho bisogno di uno script che possa fare clic destro su una cartella e convertire tutti i file WAV all'interno della cartella in file MP3. Sono stato in grado di trovare uno script per convertire un singolo file, ma non so come modificarlo in modo da poter convertire molti file con un solo clic.

Utilizzo script che ho trovato qui per singoli file. Qui è una domanda simile ma invece di usare " Esegui Applescript "utilizza" Esegui script di shell ". Ho provato a sostituire i parametri LAME tra "do" e "done" ma non sono riuscito a convertire nulla.

Quindi, come posso convertire la cartella piena di file WAV in file MP3? Per me non importa è fatto usando Applescript o Shell Script in Automator se sono possibili entrambi i modi.

    
posta nqw1 22.08.2011 - 14:22
fonte

3 risposte

4

Automator "si blocca" quando si tenta di utilizzare il codificatore LAME, sfortunatamente. Inoltre, non è efficiente o consigliabile provare e utilizzare un processo multi-thread come servizio di automazione. Per attività come questa è meglio eseguire uno script semplice o utilizzare un metodo alternativo.

Lo script seguente codificherà da 20 Mb .wav a .mp3 in 3 secondi! (con le impostazioni di qualità più elevata)

file="$1"

find . -name '*.wav' -maxdepth 1 -exec /usr/local/bin/lame -V 0 -q 0 '{}' \;

for file in *.mp3
do
  mv "$file" "${file/wav./}"
done

Per installare, scaricare, quindi aprire il terminale:

sudo install encode-mp3 /usr/local/bin

Per utilizzare, navigare nella cartella di conversione desiderata e digitare:

encode-mp3

Questo codificherà i tuoi file .wav in .mp3

Converti .wav in .mp3 | LAME Encoder Shell Script [md5: 72d4e24f14ea9139136900f2c4281a7f]

[original]

I just wrote a one-liner that will do this for you in Terminal, just cd to the directory of files you want to convert and enter:

find ./ -name "*.wav" -execdir lame -V 3 -q 0 {} \;
    
risposta data 22.08.2011 - 16:02
fonte
3

Puoi utilizzare quanto segue nell'azione "Esegui script shell" di Automator (assicurati di cambiare "Passa input" in "come argomenti"):

find "$1" -name "*.wav" -execdir /usr/local/bin/lame -V 0 -q 0 {} \;

Questo troverà tutti i file .wav nella cartella selezionata, comprese le sottocartelle (e salterà su qualsiasi file non-wav). Se non vuoi che analizzi le sottocartelle, puoi modificarlo in questo modo:

find "$1" -name "*.wav" -maxdepth 1 -execdir /usr/local/bin/lame -V 0 -q 0 {} \;

Ovviamente, cambieresti -V 0 -q 0 in qualsiasi opzione lame che preferisci.

Se vuoi essere avvisato quando è fatto, puoi aggiungere un comando say , usare un'azione "Mostra notifica Growl" (se hai Growl installato), oppure usa un comando beep in un'azione "Esegui AppleScript".

Di seguito è riportato uno screenshot del funzionamento del mio flusso di lavoro con il comando extra say e la notifica Growl. Notare anche che ho cambiato l'opzione "Servizio riceve selezionato" in alto in "cartelle" (sarà "testo" per impostazione predefinita).

    
risposta data 22.08.2011 - 18:42
fonte
3

Il thread è un po 'aggiornato, ma per coloro che potrebbero trovarlo utile,

Ho usato la configurazione di Automator descritta qui, ed ero in grado di evitare di bloccarla con l'opzione -S di lame, quindi il comando "Esegui script di shell" ha il seguente aspetto:

    find "$1" -name "*.wav" -maxdepth 1 -execdir /usr/bin/lame -b 160 -q 0 -S {} \;

(inoltre, il mio lame exec è in un altro posto)

L'opzione -S disattiva il rapporto di avanzamento di Lames

    
risposta data 26.03.2012 - 19:08
fonte

Leggi altre domande sui tag