Convertire piu’ file audio contemporaneamente

Trovare soluzioni per convertire i nostri file audio nel formato che può interessarci, è cosa assai facile, su GNU/Linux ci sono una miriade di programmi appositi, sia per un singolo file che per piu’ d’uno. Di seguito parleremo però di due script realizzati appositamente con lo scopo di convertirne piu’ d’uno, nello specifico dal formato .ogg al formato .mp3 e trasferirli, a conversione avvenuta in una diversa directory o su di una periferica esterna, per fare ciò useremo ffmpeg strumento dalle possibiltà incredibili, come ho già avuto modo di parlarne. Il primo script, da me realizzato, converte e sposta i file in una diversa directory sempre nella nostra workstation, da usare con comando dal terminale o con una voce aggiunta nel menu’ contestuale di Gnome, con una unica finestra di dialogo che ci avvisa dell’avvenuta conversione, realizzata con Zenity. Il secondo, realizzato da un utente di fedoraonline, compie le stesse azioni ma sposta i file convertiti in un lettore multimediale esterno ed ha l’ausilio di finestre di dialogo realizzate con Yad. Per la cronaca i due script sono stati testati sulla distribuzione Fedora con Gnome, ma si possono usare su di una qualunque distro GNU/Linux. Vediamoli nel dettaglio, il primo:

#!/bin/sh

#Variabili
for f in *.ogg; do

#Modifica nome traccia
if echo "$f" | grep -q [[:space:]]; then
    newname=`echo $f | tr ' ' '_'`
    mv "$f" $newname
    f=$newname
  fi
  
#Convert audio
ffmpeg -i "$f" -ab 128 ${f/.ogg/.mp3}
done

#Sposta
mv *.mp3 ~/prova;

# Waits for the user to press enter.
echo ""
echo "Press ENTER to finish."
read nothing

zenity --title="daoggamp31.sh" --info --text="La Conversione è Finita"
exit 0  

Come potete vedere lo script, rileva tutti i file in .ogg, sostituisce nei nomi dei file spazi o caratteri che ffmpeg potrebbe interpretare male, inizia la conversione ed alla fine sposta i file convertiti in .mp3 in diversa directory.
Aprite il vostro editor preferito copiateci lo script e salvatelo in /usr/bin/nomescript.sh con il nome che preferite con estensione .sh rendetelo eseguibile chmod +x nome.sh ed usatelo. Ovviamente prima di salvarlo modificate i percorsi inserendo quelli che servono a voi e se vi serve di fare da .mp3 a .ogg basta invertire i formati nello script.
Per usarlo apriremo il nostro terminale ci posizioniamo nella directory dove abbiamo i file da convertire e lanciamo lo script $nomescript.sh > invio ed aspettiamo.

Se volete possiamo evitare il terminale inserendo una voce nel menu contestuale di gnome cosi:

$ln -s /usr/bin/daoggamp31.sh ~/.gnome2/nautilus-scripts/daoggamp31.sh

Sostituite il nome con quello da voi scelto.
Stavolta invece del terminale useremo il file manager (nautilus) e sempre nella directory dei nostri file basta posizionarsi sul primo tasto destro e nel menu troveremo la voce scripts > nome.sh clicchiamo e parte la conversione di tutti i file, al termine la solita finestra ci avviserà dell’avvenuta conversione.

Mostriamo ora il secono script, molto piu’ elaborato e ben fatto, che con l’ausilio di Yad si avvale di divestre finestre di dialogo e trasferisce i file in una unità esterna.

#!/bin/bash

# Step 0 - Costante
ddir=/media/sdb2829

# Step 1 - Menù di controllo
if [ -d $ddir ]; then
opt=$(yad --form --title "Sincronizzazione" --text "Procedere?" --image "multimedia-player" --button "Si:0" --button "No:1" --field="Da..:CB" 'ogg!flac!mp4' --field="A..:CB" 'mp3!wma!wav' --field="In..:DIR" '$ddir' --expander "Opzioni" )
else
yad --form --text "La destinazione di default ('$ddir';) non è disponibile.\nReimpostato su /media" --image "emblem-important" --button "Continua:0" --button "Esci:1"
if [ $? != 0 ]; then
exit
else
opt=$(yad --form --title "Sincronizzazione" --text "Procedere?" --image "multimedia-player" --button "Si:0" --button "No:1" --field="Da..:CB" 'ogg!flac!mp4' --field="A..:CB" 'mp3!wma!wav' --field="In..:DIR" '/media/sdb2829' --expander "Opzioni" )
if [ $? = 0 ]; then
exto=$(echo ${opt} | awk '{print $1}' | cut -d'|' -f1)
extd=$(echo ${opt} | awk '{print $1}' | cut -d'|' -f2)
dir=$(echo ${opt} | awk '{print $1}' | cut -d'|' -f3)

# Step 2 - Conversione
for i in "$@"; do
ffmpeg -i "$i" -aq 5 "$i.$extd" 2>&1 | yad --progress --pulsate --auto-close
done
rename .$exto.$extd .$extd *.$exto.$extd

# 3 - Taglia / Incolla
mv *.$extd $dir

#if [ $dir != $ddir ]
#echo $dir

# 4 - Dialogo di chiusura
opfin=$(yad --form --text "Fatto!" --image "dialog-apply" --field "Vedi files:CHK" --button "Esci")
opdir=$(echo ${opfin} | awk '{print $1}' | cut -d'|' -f1)
if [ $opdir = "TRUE" ]; then
nautilus $dir
fi
fi
fi
fi

Tutti i miei piu’ sinceri complimenti all’autore.

Di seguito un mio video del primo script all’opera nei due metodi.

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

*


*

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

[+] kaskus emoticons nartzco