Här finns tips och guider för Ubuntu.

tisdag 30 januari 2007

Konvertera ljudfiler i Ubuntu 6.10

Att konvertera ljudfiler mellan olika format är enkelt att ordna i Ubuntu. Det finns olika metoder för att ordna detta. Jag kommer här visa en metod som bygger på att man använder scripts. Resultatet är väldigt smidigt, bara att högerklicka på en eller flera ljudfiler och välja från högerklicksmenyn: scripts och därefter så väljer du konvertera ljud. Ett popup fönster dyker upp och frågar vilket format du vill konvertera till. Observera att det krävs att du kör Ubuntu och inte Kubuntu elelr Xubuntu för att detta ska fungera.



Om du inte kan se filmen ovan så följ min flash 9 guide.

För att ordna denna funktion så skriv in följande i ett terminalfönster.

sudo apt-get install bash zenity original-awk lame vorbis-tools flac faac faad


När detta är klart så kopiera in nedanstående text till ett tomt dokument och döp filen till Konvertera Ljud. högerklicka sedan på filen, välj egenskaper, välj fliken rättigheter och klicka i "Tillåt körning av filen som program". Slutligen flytta filen till /.gnome2/nautilus-scripts/ foldern i din hemmakatalog. (.gnome2 är en dold katalog, tryck ctrl+h för att se dolda filer när du befinner dig i din hemkatalog).


#!/bin/bash
#
#
# audio convert 0.3.1
#
# a program to convert wav, ogg, mp3, mpc, flac, ape, aac or wma files into
# wav, ogg, mp3, mpc, flac, ape or aac files. with an easy to use interface
# it's actually possible to fill in the tags for a few formats, pass them on
# from format to format, and choose the quality of compression.
#
# copyright (C) 2005 linfasoft
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
# USA
#
# dependencies
# bash
# zenity
# awk
# file >= 4.16
# mplayer -- if you want to decode wma files
# lame
# vorbis tools
# id3tag
# musepack-tools
# flac
# mac
# faac,faad
#
# based on
# wom_audioconverter, by yekcim , http://yeknan.free.fr.
#

set -x

version="0.3.1"
#################################################
# TRADUCTIONS
###### Default = English #####
title="audio convert "$version""
pleasesel="please select at least one file."
noselec=""$title" converts audio files. "$pleasesel""
choix="extension of output file:"
warning="warning"
proceed="already exists. overwrite?"
recur=""$title" can't convert a directory. "$pleasesel""
conversion="converting file:"
ask_artist="enter the artist name:"
ask_album="enter the album name:"
ask_song="enter the song name:"
ask_track="enter the track number:"
ask_quality="select the desired quality:"
ask_compression="select the desired compression level:"
confirmation="do you want to convert"
decoding="decoding file:"
ask_fields="manually enter file metatags"
ask_confirmation_question="get prompted a confirmation question before convertin' each file"
no_codec="you don't have the right codec to decode the selected file. missin' codec:"
not_supported="format not supported"
completed="conversion completed. goodbye!"
ask_to_pass="pass the metatags on to the new files"
options="choose from the followin' options:"
options_conflict="options one and two conflict. please unselect one of them"
case $LANG in
######## Français ########
fr* )
title="audio convert "$version""
pleasesel="Merci de selectionner au moins un fichier."
noselec=""$title" permet de convertir des fichiers audio. "$pleasesel""
choix="Format du fichier de sortie :"
warning="Attention"
proceed="existe deja. Ecraser ?"
recur=""$title" ne permet pas la conversion de dossiers. "$pleasesel""
conversion="Conversion du fichier :"
ask_artist="Nom de l'artiste:"
ask_album="Nom de l'album:"
ask_song="Nom de la chanson:"
ask_track="Numero de la piste:"
ask_quality="Choisir la qualite voulue:"
confirmation="voulez-vous convertir"
decoding="decodage du fichier:"
ask_fields="voulez-vous completer les metatags du fichier?"
ask_confirmation_question="voulez-vous confirmer avant de convertir chaque
fichier?";;
######## italiano #########
it* )
title="audio convert "$version""
pleasesel="per favore, scegli almeno un file."
noselec=""$title" converte i file audio. "$pleasesel""
choix="formato di conversione:"
warning="attenzione"
proceed="esiste! sovrascrivo?"
recur=""$title" non può convertire directory. "$pleasesel""
conversion="sto convertendo il file:"
ask_artist="immetti il nome dell'artista:"
ask_album="immetti il nome dell'album:"
ask_song="immetti il nome della canzone:"
ask_track="immetti il numero della traccia:"
ask_quality="scegli la qualità del file:"
ask_compression="scegli il livello di compressione:"
confirmation="vuoi convertire"
decoding="sto decodificando il file:"
ask_fields="completare manualmente le metatags"
ask_confirmation_question="chiedi una conferma per ogni file da convertire"
no_codec="non hai il codec corretto per decodificare il file selezionato. codec mancante:"
not_supported="formato non supportato"
completed="conversione completata. arrivederci!"
ask_to_pass="copiare le metatags nel nuovo file"
options="scegli fra le seguenti opzioni:"
options_conflict="le opzioni uno e due sono in conflitto. per favore deselezionane una";;
###### Brazilian Portuguese ######
pt-br* )
title="audio convert "$version""
pleasesel="por favor, selecione pelo menos um arquivo."
noselec=""$title" converter arquivos de audio. "$pleasesel""
choix="extensão do arquivo de saída:"
warning="atenção"
proceed="já existe! sobrescrever?"
recur=""$title" não e possível converter pasta. "$pleasesel""
conversion="convertendo arquivo:"
ask_artist="digite o nome do artista:"
ask_album="digite o nome do album:"
ask_song="digite o nome da música:"
ask_track="digite o número da faixa:"
ask_quality="selecione a qualidade desejada:"
confirmation="você quer converter"
decoding="decodificando arquivo:";;
######## dutch ########
nl* )
title="audio convert "$version""
pleasesel="selecteer minimaal 1 bestand."
noselec=""$title" converteer audio bestanden. "$pleasesel""
choix="extensie van uitvoerbestanden:"
warning="waarschuwing"
proceed="bestaat al. overschrijven?"
recur=""$title" kan geen directory converteren. "$pleasesel""
conversion="converteren van bestand:"
ask_artist="voer naam van artiest in:"
ask_album="voer naam van album in:"
ask_song="voer naam van nummer in:"
ask_track="voer volgnummer in:"
ask_quality="selecteer de gewenste kwaliteit:"
confirmation="wil je converteren"
decoding="decoderen bestand:"
ask_fields="Wil je metatags aan de bestanden toevoegen?"
ask_confirmation_question="Wil je bevestiging voor het converteren van elk bestand?"
no_codec="Je hebt niet de juiste codec voor het converteren van dit bestand. Missende codec:"
not_supported="Formaat niet ondersteund"
completed="Conversie compleet."
ask_to_pass="Wil je de metatags toevoegen aan de nieuwe bestanden?";;
######## german ########
de* )
title="Audio konvertier Skript "$version""
pleasesel="Bitte wählen Sie mindestens eine Datei."
noselec=""$title" verarbeitet Dateien. "$pleasesel""
choix="Erweiterung der Ausgabedatei:"
warning="Warnung"
proceed="existiert bereits. Überschreiben?"
recur=""$title" kann kein Verzeichnis konvertieren. "$pleasesel""
conversion="Konvertierung der Datei:"
ask_artist="Künstlername:"
ask_album="Albumname:"
ask_song="Songname:"
ask_track="Titelnummer:"
ask_quality="Wählen Sie die gewuenschte Qualitaet:"
confirmation="Wollen Sie jetzt konvertieren?"
decoding="dekodiere Datei:"
ask_compression="gib die gewünschte Komprimierungsstaerke an:"
ask_confirmation_question="willst Du für jede Datei vor der Konvertierung eine Bestätigungsfrage?"
ask_fields="Du willst keine metatags angeben?"
completed="Konvertierung abgeschlossen. Tschüss"
no_codec="Du hast keinen passenden codec um die Datei zu dekodieren"
not_supported="Format wird nicht unterstützt";;
######## Spanish(Español - Castellano) ########
es* )
title="audio convert "$version""
pleasesel="Seleccione al menos un archivo."
noselec=""$title" - Convierte archivos de audio."$pleasesel""
choix="Formato del archivo resultante:"
warning="Atención"
proceed="Ya existe, sobreescribir?"
recur=""$title" No se puede convertir el directorio. "$pleasesel""
conversion="Convirtiendo archivo:"
ask_artist="Nombre del artista:"
ask_album="Nombre del álbum:"
ask_song="Nombre de la canción:"
ask_track="Número de la pista:"
ask_quality="Seleccione la calidad deseada:"
confirmation="Convertir?"
decoding="Decodificando archivo:"
ask_fields="Editar las \"metatags\" del archivo?"
ask_confirmation_question="Desea una pregunta de confirmación antes de convertir cada archivo?"
ask_compression="seleccione el nivel de compresión deseable:"
completed="conversión completo. Adiós!"
no_codec="No tenrs el codec correcto para descodificar el elijido archivo. Falta:"
not_supported="Format no es soportado";;
######## polish ########
pl* )
title="konwersja audio "$version""
pleasesel="wybierz co najmniej jeden plik."
noselec="konwersja pliku "$title". "$pleasesel""
choix="rozszerzenie pliku wynikowego:"
warning="ostrzeżenie"
proceed="już istnieje. zastÄ~EpiÄ~G ?"
recur=""$title" nie można konwertowaÄ~G katalogów. "$pleasesel""
conversion="konwersja pliku:"
ask_artist="podaj nazwÄ~Y wykonawcy:"
ask_album="podaj nazwÄ~Y albumu:"
ask_song="podaj nazwÄ~Y utworu:"
ask_track="podaj numer Å~[cieżki:"
ask_quality="wybierz wymagany poziom jakoÅ~[ci:"
ask_compression="wybierz wymagany poziom kompresji:"
confirmation="chcesz użyÄ~G konwersji"
decoding="dekodowany plik:"
ask_fields="chcesz umieÅ~[ciÄ~G tagi ?"
ask_confirmation_question="chcesz używaÄ~G potwierdzenia przed każdÄ~E konwersjÄ~E ?"
no_codec="nie posiadasz odpowiedniego kodeka dla wykonania wymaganej operacji. missin' codec:"
not_supported="brak obsÅ~Bugi wskazanego formatu"
completed="konwersjÄ~Y zakoÅ~Dczono. Pa, pa!"
ask_to_pass="chcesz eksportowaÄ~G metatagi do innych plików?"
esac

#################################################
# FONCTIONS
get_field_names ()
{
artist_name=`zenity --entry --title="$title" --text="$ask_artist" --entry-text="$artist_name"`
album_name=`zenity --entry --title="$title" --text="$ask_album" --entry-text="$album_name"`
song_name=`zenity --entry --title="$title" --text="$ask_song"`
track_number=`zenity --entry --title="$title" --text="$ask_track"`
}

get_ogg_quality ()
{
zenity --title="$title" --list --radiolist --column="" --column="$ask_quality" -- "-1" FALSE "0" FALSE "1" FALSE "2" FALSE "3" FALSE "4" FALSE "5" FALSE "6" TRUE "7" FALSE "8" FALSE "9" FALSE "10"
}

get_mp3_quality ()
{
zenity --title="$title" --list --radiolist --column="" --column="$ask_quality" FALSE "medium" FALSE "standard" TRUE "extreme" FALSE "insane"
}

get_mpc_quality ()
{
zenity --title="$title" --list --radiolist --column="" --column="$ask_quality" FALSE "thumb" FALSE "radio" TRUE "standard" FALSE "xtreme"
}

get_flac_quality ()
{
zenity --title="$title" --list --radiolist --column="" --column="$ask_compression" FALSE "0" FALSE "1" FALSE "2" FALSE "3" FALSE "4" FALSE "5" FALSE "6" FALSE "7" TRUE "8"
}

get_mac_quality ()
{
zenity --title="$title" --list --radiolist --column="" --column="$ask_compression" FALSE "1000" FALSE "2000" TRUE "3000" FALSE "4000" FALSE "5000"
}

get_aac_quality ()
{
zenity --title="$title" --list --radiolist --column="" --column="$ask_compression" FALSE "100" FALSE "200" TRUE "300" FALSE "400" FALSE "500"
}

get_quality ()
{
if [ "$1" == "mp3" ]
then
quality="$(get_mp3_quality)"
fi
if [ "$1" == "ogg" ]
then
quality="$(get_ogg_quality)"
fi
if [ "$1" == "mpc" ]
then
quality="$(get_mpc_quality)"
fi
if [ "$1" == "flac" ]
then
quality="$(get_flac_quality)"
fi
if [ "$1" == "ape" ]
then
quality="$(get_mac_quality)"
fi
if [ "$1" == "aac" ]
then
quality="$(get_aac_quality)"
fi
}

get_metatags ()
{
if (is_mp3 "$1")
then
artist_name=`id3info "$1" | awk '/TPE1/ { print substr($0, match($0, /:/) + 2 ) }'`
album_name=`id3info "$1" | awk '/TALB/ { print substr($0, match($0, /:/) + 2 ) }'`
song_name=`id3info "$1" | awk '/TIT2/ { print substr($0, match($0, /:/) + 2 ) }'`
track_number=`id3info "$1" | awk '/TRCK/ { print substr($0, match($0, /:/) + 2 ) }'`
fi
if (is_ogg "$1")
then
artist_name=`ogginfo "$1" | grep artist | cut -d \= -f 2`
album_name=`ogginfo "$1" | grep album | cut -d \= -f 2`
song_name=`ogginfo "$1" | grep title | cut -d \= -f 2`
track_number=`ogginfo "$1" | grep tracknumber | cut -d \= -f 2`
fi
if (is_flac "$1")
then
artist_name=`metaflac --show-tag=artist "$1" | cut -d \= -f 2`
album_name=`metaflac --show-tag=album "$1" | cut -d \= -f 2`
song_name=`metaflac --show-tag=title "$1" | cut -d \= -f 2`
track_number=`metaflac --show-tag=tracknumber "$1" | cut -d \= -f 2`
fi
if (is_aac "$1")
then
artist_name=`faad -i "$1" 2>&1 | awk '/artist/ { print substr($0, match($0, /:/) + 2 ) }'`
album_name=`faad -i "$1" 2>&1 | awk '/album/ { print substr($0, match($0, /:/) + 2 ) }'`
song_name=`faad -i "$1" 2>&1 | awk '/title/ { print substr($0, match($0, /:/) + 2 ) }'`
track_number=`faad -i "$1" 2>&1 | awk '/track/ { print substr($0, match($0, /:/) + 2 ) }'`
fi
}

mp3_parse_fields ()
{
if [ "$artist_name" ]
then
mp3_fields=(-a"$artist_name")
fi
if [ "$album_name" ]
then
mp3_fields=("${mp3_fields[@]}" -A"$album_name")
fi
if [ "$song_name" ]
then
mp3_fields=("${mp3_fields[@]}" -s"$song_name")
fi
if [ "$track_number" ]
then
mp3_fields=("${mp3_fields[@]}" -t"$track_number")
fi
}

ogg_parse_fields ()
{
if [ "$artist_name" ]
then
ogg_fields=(-a "$artist_name")
fi
if [ "$album_name" ]
then
ogg_fields=("${ogg_fields[@]}" -l "$album_name")
fi
if [ "$song_name" ]
then
ogg_fields=("${ogg_fields[@]}" -t "$song_name")
fi
if [ "$track_number" ]
then
ogg_fields=("${ogg_fields[@]}" -N "$track_number")
fi
}

flac_set_tags ()
{
if [ $pass_metatags -eq 0 ] || [ $fields -eq 0 ]
then
if [ "$artist_name" ]
then
metaflac --set-tag=ARTIST="$artist_name" "$1"
fi
if [ "$album_name" ]
then
metaflac --set-tag=ALBUM="$album_name" "$1"
fi
if [ "$song_name" ]
then
metaflac --set-tag=TITLE="$song_name" "$1"
fi
if [ "$track_number" ]
then
metaflac --set-tag=TRACKNUMBER="$track_number" "$1"
fi
fi
}

aac_parse_fields ()
{
if [ "$artist_name" ]
then
aac_fields=(--artist "$artist_name")
fi
if [ "$album_name" ]
then
aac_fields=("${aac_fields[@]}" --album "$album_name")
fi
if [ "$song_name" ]
then
aac_fields=("${aac_fields[@]}" --title "$song_name")
fi
if [ "$track_number" ]
then
aac_fields=("${aac_fields[@]}" --track "$track_number")
fi
}

is_mp3 ()
{
file -b "$1" | grep 'MP3' || echo $1 | grep -i '\.mp3$'
}

is_ogg()
{
file -b "$1" | grep 'Vorbis' || echo $1 | grep -i '\.ogg$'
}

is_mpc()
{
file -b "$1" | grep 'Musepack' || echo $1 | grep -i '\.mpc$'
}

is_flac()
{
file -b "$1" | grep 'FLAC' || echo $1 | grep -i '\.flac$'
}

is_mac()
{
file -b "$1" | grep 'data' && echo $1 | grep -i '\.ape$'
}

is_aac()
{
file -b "$1" | grep 'AAC' || echo $1 | grep -i '\.aac$'
}

is_wav()
{
file -b "$1" | grep 'WAVE' || echo $1 | grep -i '\.wav$'
}

is_wma()
{
file -b "$1" | grep 'Microsoft' || echo $1 | grep -i '\.wma$'
}

mp3_encode ()
{
lame -m auto --preset $quality "$2" "$3" 2>&1 | awk -vRS='\r' '(NR>3){gsub(/[()%|]/," ");print $2; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
}

ogg_encode ()
{
if [ $fields -eq 0 ] || [ $pass_metatags -eq 0 ]
then
ogg_parse_fields
oggenc "$2" "${ogg_fields[@]}" -q $quality -o "$3" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $2; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
else
oggenc "$2" -q $quality -o "$3" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $2; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
fi
}

mpc_encode ()
{
mppenc --$quality "$2" "$3" 2>&1 | awk -vRS='\r' '!/^$/{if (NR>5) print $1; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
}

flac_encode ()
{
flac --compression-level-$quality "$2" -o "$3" 2>&1 | awk -vRS='\r' -F':' '!/wrote/{gsub(/ /,"");if(NR>1)print $2; fflush();}' | awk -F'%' '{print $1; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
}

mac_encode ()
{
mac "$2" "$3" -c$quality 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $2; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
}

aac_encode ()
{
if [ $fields -eq 0 ] || [ $pass_metatags -eq 0 ]
then
aac_parse_fields
faac -w "${aac_fields[@]}" -q $quality -o "$3" "$2" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $3; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
else
faac -q $quality -o "$3" "$2" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $3; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
fi
}

mp3_decode ()
{
temp_file=`echo "$1" | sed 's/\.\w*$/'.wav'/'`
lame --decode "$1" "$temp_file" 2>&1 | awk -vRS='\r' -F'[ /]+' '(NR>2){if((100*$2/$3)<=100)print 100*$2/$3; fflush();}' | zenity --progress --title="$title" --text="$2 $1" --auto-close
}

ogg_decode ()
{
temp_file=`echo "$1" | sed 's/\.\w*$/'.wav'/'`
oggdec "$1" -o "$temp_file" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $2; fflush();}' | zenity --progress --title="$title" --text="$2 $1" --auto-close
}

mpc_decode ()
{
temp_file=`echo "$1" | sed 's/\.\w*$/'.wav'/'`
mppdec "$1" "$temp_file" 2>&1 | awk -vRS='\r' -F'[ (]+' '!/s/{gsub(/(%)/," ");if(NR>5)print $5; fflush();}' | zenity --progress --title="$title" --text="$2 $1" --auto-close
}

flac_decode ()
{
temp_file=`echo "$1" | sed 's/\.\w*$/'.wav'/'`
flac -d "$1" -o "$temp_file" 2>&1 | awk -vRS='\r' -F':' '!/done/{gsub(/ /,"");gsub(/% complete/,"");if(NR>1)print $2; fflush();}' | zenity --progress --title="$title" --text="$2 $1" --auto-close
}

mac_decode ()
{
temp_file=`echo "$1" | sed 's/\.\w*$/'.wav'/'`
mac "$1" "$temp_file" -d 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $2; fflush();}' | zenity --progress --title="$title" --text="$2 $1" --auto-close
}

aac_decode ()
{
temp_file=`echo "$1" | sed 's/\.\w*$/'.wav'/'`
faad -o "$temp_file" "$1" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $1; fflush();}' | zenity --progress --title="$title" --text="$2 $1" --auto-close
}

wma_decode ()
{
temp_file=`echo "$1" | sed 's/\.\w*$/'.wav'/'`
mplayer -ao pcm:file="$temp_file" "$1" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print 100-$5; fflush();}' | zenity --progress --title="$title" --text="$2 $1" --auto-close
}

ask_for_fields ()
{
#zenity --question --text="$ask_fields"
#fields=$?
questions=("${questions[@]}" FALSE "$ask_fields")
}

ask_for_confirmation ()
{
#zenity --question --text="$ask_confirmation_question"
#confirmation_question=$?
questions=("${questions[@]}" FALSE "$ask_confirmation_question")
}

ask_to_pass_metatags ()
{
#zenity --question --text="$ask_to_pass"
#pass_metatags=$?
questions=(FALSE "$ask_to_pass")
}

question_list ()
{
if [ "$formatout" == "mp3" ] || [ "$formatout" == "ogg" ] || [ "$formatout" == "flac" ] || \
[ "$formatout" == "aac" ]
then
#pass_metatags=1

if (is_mp3 "$1") || (is_ogg "$1") || (is_flac "$1") || (is_aac "$1")
then
ask_to_pass_metatags # ask if user wants metatags to be passed on
fi

ask_for_fields # ask if user wants to edit metatags
fi
if [ "$2" -gt 1 ]
then
ask_for_confirmation # ask if user wants a confirmation question for each file
#else
# confirmation_question=1
fi
}

ask_questions ()
{
repeat=1

while [ $repeat -eq 1 ]
do
answers=`zenity --list --checklist --column "" --column "$options" "${questions[@]}"`

if (echo "$answers" | grep -i "$ask_to_pass") && \
(echo "$answers" | grep -i "$ask_fields")
then
zenity --error --title="$warning" --text="$options_conflict"
repeat=1
continue
fi

repeat=0
done
}

parse_questions ()
{
if (echo "$answers" | grep -i "$ask_to_pass")
then
pass_metatags=0
else
pass_metatags=1
fi

if (echo "$answers" | grep -i "$ask_fields")
then
fields=0
else
fields=1
fi

if (echo "$answers" | grep -i "$ask_confirmation_question")
then
confirmation_question=0
else
confirmation_question=1
fi
}

completed_message ()
{
zenity --info --title "$title" --text="$completed"
}

caf () # fonction "convert audio file"
{
### Format in_file = mp3 ###
if (is_mp3 "$1")
then
if [ "$3" = "ogg" ]
then # mp3-2-ogg
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
mp3_decode "$1" "$decoding"
ogg_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "mpc" ]
then # mp3-2-mpc
mp3_decode "$1" "$decoding"
mpc_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "flac" ]
then # mp3-2-flac
mp3_decode "$1" "$decoding"
flac_encode "$1" "$temp_file" "$2"
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_set_tags "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "ape" ]
then # mp3-2-ape
mp3_decode "$1" "$decoding"
mac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "aac" ]
then # mp3-2-aac
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
mp3_decode "$1" "$decoding"
aac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "wav" ]
then # mp3-2-wav
mp3_decode "$1" "$conversion"
fi
break
fi
### Format in_file = ogg ###
if (is_ogg "$1")
then
if [ "$3" = "mp3" ]
then # ogg-2-mp3
ogg_decode "$1" "$decoding"
mp3_encode "$1" "$temp_file" "$2"
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
if [ $pass_metatags -eq 0 ] || [ $fields -eq 0 ]
then
mp3_parse_fields
id3tag "${mp3_fields[@]}" "$2"
fi
rm -f "$temp_file"
break
fi
if [ "$3" = "mpc" ]
then # ogg-2-mpc
ogg_decode "$1" "$decoding"
mpc_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "flac" ]
then # ogg-2-flac
ogg_decode "$1" "$decoding"
flac_encode "$1" "$temp_file" "$2"
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_set_tags "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "ape" ]
then # ogg-2-ape
ogg_decode "$1" "$decoding"
mac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "aac" ]
then # ogg-2-aac
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
ogg_decode "$1" "$decoding"
aac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "wav" ]
then # ogg-2-wav
ogg_decode "$1" "$conversion"
fi
break
fi
### Format in_file = mpc ###
if (is_mpc "$1")
then
if [ "$3" = "mp3" ]
then # mpc-2-mp3
mpc_decode "$1" "$decoding"
mp3_encode "$1" "$temp_file" "$2"
if [ $fields -eq 0 ]
then
get_field_names "$1"
mp3_parse_fields
id3tag "${mp3_fields[@]}" "$2"
break
fi
mpc_decode "$1" "$decoding"
mp3_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "ogg" ]
then # mpc-2-ogg
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
mpc_decode "$1" "$decoding"
ogg_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "flac" ]
then # mpc-2-flac
mpc_decode "$1" "$decoding"
flac_encode "$1" "$temp_file" "$2"
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_set_tags "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "ape" ]
then # mpc-2-ape
mpc_decode "$1" "$decoding"
mac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "aac" ]
then # mpc-2-aac
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
mpc_decode "$1" "$decoding"
aac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "wav" ]
then # mpc-2-wav
mpc_decode "$1" "$conversion"
fi
break
fi
### Format in_file = flac ###
if (is_flac "$1")
then
if [ "$3" = "mp3" ]
then # flac-2-mp3
flac_decode "$1" "$decoding"
mp3_encode "$1" "$temp_file" "$2"
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
if [ $pass_metatags -eq 0 ] || [ $fields -eq 0 ]
then
mp3_parse_fields
id3tag "${mp3_fields[@]}" "$2"
fi
rm -f "$temp_file"
break
fi
if [ "$3" = "ogg" ]
then # flac-2-ogg
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_decode "$1" "$decoding"
ogg_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "mpc" ]
then # flac-2-mpc
flac_decode "$1" "$decoding"
mpc_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "ape" ]
then # flac-2-ape
flac_decode "$1" "$decoding"
mac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "aac" ]
then # flac-2-aac
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_decode "$1" "$decoding"
aac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "wav" ]
then # flac-2-wav
flac_decode "$1" "$conversion"
fi
break
fi
### Format in_file = ape ###
if (is_mac "$1")
then
if [ "$3" = "mp3" ]
then # ape-2-mp3
mac_decode "$1" "$decoding"
mp3_encode "$1" "$temp_file" "$2"
if [ $fields -eq 0 ]
then
get_field_names "$1"
mp3_parse_fields
id3tag "${mp3_fields[@]}" "$2"
break
fi
mac_decode "$1" "$decoding"
mp3_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "ogg" ]
then # ape-2-ogg
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
mac_decode "$1" "$decoding"
ogg_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "mpc" ]
then # ape-2-mpc
mac_decode "$1" "$decoding"
mpc_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "flac" ]
then #ape-2-flac
mac_decode "$1" "$decoding"
flac_encode "$1" "$temp_file" "$2"
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_set_tags "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "aac" ]
then # ape-2-aac
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
mac_decode "$1" "$decoding"
aac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "wav" ]
then #ape-2-wav
mac_decode "$1" "$conversion"
fi
break
fi
### Format in_file = aac ###
if (is_aac "$1")
then
if [ "$3" = "mp3" ]
then # aac-2-mp3
aac_decode "$1" "$decoding"
mp3_encode "$1" "$temp_file" "$2"
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
if [ $pass_metatags -eq 0 ] || [ $fields -eq 0 ]
then
mp3_parse_fields
id3tag "${mp3_fields[@]}" "$2"
fi
rm -f "$temp_file"
break
fi
if [ "$3" = "ogg" ]
then # aac-2-ogg
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
aac_decode "$1" "$decoding"
ogg_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "mpc" ]
then # aac-2-mpc
aac_decode "$1" "$decoding"
mpc_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "flac" ]
then # aac-2-flac
aac_decode "$1" "$decoding"
flac_encode "$1" "$temp_file" "$2"
if [ $pass_metatags -eq 0 ]
then
get_metatags "$1"
elif [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_set_tags "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "ape" ]
then # aac-2-ape
aac_decode "$1" "$decoding"
mac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "wav" ]
then # aac-2-wav
aac_decode "$1" "$conversion"
fi
break
fi
### Format in_file = wav ###
if (is_wav "$1")
then
if [ "$3" = "mp3" ]
then # wav-2-mp3
mp3_encode "$1" "$1" "$2"
if [ $fields -eq 0 ]
then
get_field_names "$1"
mp3_parse_fields
id3tag "${mp3_fields[@]}" "$2"
break
fi
break
fi
if [ "$3" = "ogg" ]
then # wav-2-ogg
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
ogg_encode "$1" "$1" "$2"
break
fi
if [ "$3" = "mpc" ]
then # wav-2-mpc
mpc_encode "$1" "$1" "$2"
fi
if [ "$3" = "flac" ]
then # wav-2-flac
flac_encode "$1" "$1" "$2"
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_set_tags "$2"
fi
if [ "$3" = "aac" ]
then # wav-2-aac
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
aac_encode "$1" "$1" "$2"
break
fi
if [ "$3" = "ape" ]
then # wav-2-ape
mac_encode "$1" "$1" "$2"
fi
break
fi
### Format in_file = wma ###
if (is_wma "$1")
then
if [ "$3" = "mp3" ]
then # wma-2-mp3
wma_decode "$1" "$decoding"
mp3_encode "$1" "$temp_file" "$2"
if [ $fields -eq 0 ]
then
get_field_names "$1"
mp3_parse_fields
id3tag "${mp3_fields[@]}" "$2"
break
fi
rm -f "$temp_file"
break
fi

if [ "$3" = "wav" ]
then # wma-2-wav
wma_decode "$1" "$conversion"
fi

if [ "$3" = "ogg" ]
then # wma-2-ogg
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
wma_decode "$1" "$decoding"
ogg_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "mpc" ]
then # wma-2-mpc
wma_decode "$1" "$decoding"
mpc_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "flac" ]
then # wma-2-flac
wma_decode "$1" "$decoding"
flac_encode "$1" "$temp_file" "$2"
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
flac_set_tags "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "ape" ]
then # wma-2-ape
wma_decode "$1" "$decoding"
mac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
if [ "$3" = "aac" ]
then # wma-2-aac
if [ $fields -eq 0 ]
then
get_field_names "$1"
fi
wma_decode "$1" "$decoding"
aac_encode "$1" "$temp_file" "$2"
rm -f "$temp_file"
break
fi
break
fi
}

#################################################
# PROGRAMME
#### Pas de fichiers sélectionné ###
if [ $# -eq 0 ]; then
zenity --error --title="$warning" --text="$noselec"
exit 1
fi
######## make a list of available formats, and check if we can decode the file #######
if !(is_mp3 "$1") && !(is_ogg "$1") && !(is_mpc "$1") && !(is_flac "$1") && !(is_mac "$1") && \
!(is_aac "$1") && !(is_wav "$1") && !(is_wma "$1")
then
zenity --error --title="$warning" --text="$not_supported"
exit 1
fi
depformat=""
if which lame 2>/dev/null
then
if !(is_mp3 "$1") # if we have lame, and the file to convert is not an mp3,
then # add mp3 to the list of formats to convert to
depformat="mp3"
fi
else # if we don't have lame, check if the file to convert is an mp3
if (is_mp3 "$1")
then
zenity --error --title="$warning" --text="$no_codec lame"
exit 1
fi
fi
if which oggenc 2>/dev/null
then
if !(is_ogg "$1") # if we have vorbis-tools, and the file to convert is not an
then # ogg, add ogg to the list of formats to convert to
depformat="$depformat ogg"
fi
else # if we don't have vorbis-tools, check if the file to convert is an ogg
if (is_ogg "$1")
then
zenity --error --title="$warning" --text="$no_codec vorbis-tools"
exit 1
fi
fi
if which mppenc 2>/dev/null
then
if !(is_mpc "$1") # if we have musepack-tools, and the file to convert is not
then # an mpc, add mpc to the list of formats to convert to
depformat="$depformat mpc"
fi
fi
if !(which mppdec 2>/dev/null)
then # if we don't have musepack-tools, check if the file to convert is an mpc
if (is_mpc "$1")
then
zenity --error --title="$warning" --text="$no_codec musepack-tools"
exit 1
fi
fi
if which flac 2>/dev/null
then
if !(is_flac "$1") # if we have flac, and the file to convert is not a
then # flac, add flac to the list of formats to convert to
depformat="$depformat flac"
fi
else # if we don't have flac, check if the file to convert is a flac
if (is_flac "$1")
then
zenity --error --title="$warning" --text="$no_codec flac"
exit 1
fi
fi
if which mac 2>/dev/null
then
if !(is_mac "$1") # if we have mac, and the file to convert is not an ape,
then # add ape to the list of formats to convert to
depformat="$depformat ape"
fi
else # if we don't have mac, check if the file to convert is an ape
if (is_mac "$1")
then
zenity --error --title="$warning" --text="$no_codec mac"
exit 1
fi
fi
if which faac 2>/dev/null
then
if !(is_aac "$1") # if we have faac, and the file to convert to is not an aac,
then # add aac to the list of formats to convert to
depformat="$depformat aac"
fi
fi
if !(which faad 2>/dev/null) # if we don't have faad, check if the file to convert to is an aac
then
if (is_aac "$1")
then
zenity --error --title="$warning" --text="$no_codec faad"
exit 1
fi
fi
if !(which mplayer 2>/dev/null) # if we don't have mplayer, check if the file to convert is a wma
then
if (is_wma "$1")
then
zenity --error --title="$warning" --text="$no_codec mplayer"
exit 1
fi
fi
if !(is_wav "$1") # if the file to convert is not a wav, add wav to the list of
then # formats to convert to
depformat="$depformat wav"
fi
######## Fenêtre principale ########
while [ ! "$formatout" ] # Réafficher la fenêtre tant que l'utilisateur n'a pas fait de choix
do


formatout=`zenity --title "$title" --list --column="Format" $depformat --text "$choix"`
###### Choix -> Sortie boucle ######
if [ $? != 0 ]; then
exit 1
fi
[ $? -ne 0 ] && exit 2 # Annulation
done
########## Conversion ############
#let "nbfiles = $#"
#compteur=0;
question_list "$1" "$#" # prepare all of the various conversion questions
ask_questions # ask all of the various conversion questions
parse_questions # parse all of the various conversion questions
if [ "$formatout" != "wav" ]
then
get_quality "$formatout" # ask for quality of compression
fi
file_number=$#
(while [ $# -gt 0 ]; do
for i in $formatout; do
in_file=$1
out_file=`echo "$in_file" | sed 's/\.\w*$/'.$formatout'/'`
#echo "# $conversion $in_file"
i=`echo $i | sed 's/"//g'`
while `true`; do
########## Le fichier de sortie existe déjÃ| , l'écraser ? ##########
if ls "$out_file" | grep -v "^ls"
then
if !(`gdialog --title "$warning" --yesno "$out_file $proceed" 200 100`)
then
break
fi
fi
if [ "$file_number" -gt 1 ] && [ "$confirmation_question" -eq 0 ]
then
zenity --question --text="$confirmation $in_file in $out_file?"
if [ $? -eq 1 ]
then
break
fi
fi
caf "$in_file" "$out_file" "$formatout" # Lancer la conversion
break
shift
done
######### Progression ########
# let "compteur += 1"
# let "progress = compteur*100/nbfiles"
# echo $progress
done
shift
done
)

completed_message








/home/dittanvändarnamn/.gnome2/nautilus-scripts/

När detta är klart så är det bara att köra.



Andra bloggar om: , , , , , , , , , , ,

10 kommentarer:

sfox sa...

Hej ! När jag klickade på din länk "script" för att ladda ner det kom denna sida upp "http://files-upload.com/files/82885/Konverteraljud.000.html"
Synnerligen mycket info där, lyckades inte hitta scriptet hmm ;( Tack för övrigt till fina tips du har här.

Bossieman sa...

Har uppdaterat bloggen och lagt in hela scriptet istället. Hoppas detta löser problemet för dig.

Anonym sa...

Hej är ny på Ubuntu och har inte provat så här avancerade saker tidigare,började med flash player vilket gick bra men det här med konvertera ljud gick sämre jag undrar nu vad som gick fel, om det kan vara att när jag lade in kommandona i terminalen så tryckte jag inte enter utan provade det efteråt och då går det inte att att skriva in lösenordet och sen ser inte rutan när man väljer script likadan ut som din beskr.
Tacksam för svar

Bossieman sa...

Testa att göra om hela guiden. Det ska inte synas när du skriver in ditt lösenord. Det är en säkerhetsdetalj.

Anonym sa...

Hej,

Går det att ordna så att det går konvertera från *.ape till wav också? Jag har lagt i samma fråga på Ubuntu Sverige forumet under Ljud/Multimedia. Vill helst slippa hålla på i terminalen. Mina ape-filer är gamla inspelningar med mitt gamla coverband, packade dom i APE eftersom det är lossless format för ljudfiler (behåller kvalitén till nästan 100%). Vill packa upp dessa nu och mixa lite i Ardour.

//Tobbe

Bossieman sa...

@Tobbe: Det går säkert att få in det i scriptet med, men det kräver allt lite mixtrande skulle jag tro.

Anonym sa...

Funkar klockrent, tackar!

Anonym sa...

Tack för snyggt och prydligt script!

Dock får jag det inte att fungera att konvertera från ape. Beror det på att mac inte längre finns?

Anonym sa...

försöker konvertera en amw fil men får upp ett meddelande om Mplayer codec saknas. Har installerat Ubuntu extras men det hjälper inte.

h4xp3t sa...

Du kunde ju kanske nämna att du knyckt skripten härifrån: http://savannah.nongnu.org/projects/audio-convert