Convertendo arquivos de audio pelo Nautilus

Iniciado por LedStyle, 25 de Outubro de 2005, 18:29

tópico anterior - próximo tópico

LedStyle

Para converter entre os formatos MP3, OGG e WAV, primeiro instale lame, gdialog e o vorbis tools.

sudo apt-get install lame vorbis-tools

Depois crie o script:

gedit ~/.gnome2/nautilus-scripts/Converter\ arquivo\ de\ audio

Entre com o seguinte código no arquivo:

#!/bin/bash

# Naudilus - Nautilus script for audio file conversion
# by Rafael Rigues <<EMAIL: PROTECTED>> - 02/28/2002
# Translations and feedback are welcome!

# Depends on lame (3.91 recommended), gidalog and vorbis tools and libraries (rc 3 or newer)
# Based on code from convert_to_jpeg (David Westlund)
# Based on code from Archiver/Unarchiver (Patrick Largey & David Westlund)
# Thanks to Aurélio Marinho Jargas for miscellaneous help

# Put on ~/.gnome/nautilus-scripts, and chmod +x it!

# Changelog:

# 03/17/2002 * Version 0.5
# * Info: This version was finished on 03/05/2002, and was meant for personal use only.
#  (at least until I had implemented everything I wanted). However, I'm releasing it now
#  to get feedback from other users.
# * I've discovered the cause for oggenc always encoding files at 342 kbps. It seems to
#  be a bug triggered by the combination of glibc-2.2.4-19.3 and vorbis rc 1. Upgrading
#  the vorbis tools and libraries to rc 3 solved the problem.
# * I've also found that not all versions of lame have the --decode option. I don't know
#  when it was added to lame (and I'm too lazy to check the changelog now), but I'm
#  using lame 3.91.
# * Now I'm using pipes to decode/encode the file simultaneously (thanks to FRS for being
#  so persistent about this), so there's no need to create (and delete, afterwards) a
#  temporary WAV file. It's also one less thing to check if it will be overwritten or not.
# * More code cleanups. "...Smarter! Stronger! More Aggressive! I feellike I could..." :)
# * Now also converts WAVE files to MP3 or Vorbis!

# 03/03/2002 * Version 0.4

# * Spent a whole day trying to reorganize the code, tighten it up and make it look
#  smarter and prettier. Did I succeed? :)
# * Now Naudilus detects if the file exists (both the temporary .wav file created during
#  the conversion and the resulting .mp3 or .ogg file) and asks the user if he wants the
#  the file to be overwritten. If not, the file is ignored, and Naudilus will proceed
#  with the next file.
# * I've found a strange bug where oggenc is now ALWAYS encoding the files at an average
#  342 Kbps, regardless of the arguments I pass to it. I suspect it is a fault on the ogg
#  encoder, caused by a full-scale system update (which included a new version of glibc) I
#  did today. I will find out more about this tomorrow, when I test the script on my
#  machine at work.

# 03/02/2002 * Version 0.3

# * Naudilus now asks which format to convert the files to. Note that if you choose
#  to convert a file to it's current format (eg. convert an MP3 file to MP3), it
#  will be simply ignored, and Naudilus will proceed with the next file.
# * Possible conversions are: MP3 -> WAV, Ogg -> WAV, MP3 -> Ogg and Ogg -> MP3.

# 03/01/2002 * Version 0.2

# * Changed the name to "Naudilus". Thanks to Fabio Ricardo Schmidlin for the name!
# * Detects the filetype before attempting to convert the file.
# * Uses the file extension to determine which kind of file it is, if the filetype
#  detection fails.
# * Added Vorbis to MP3 conversion.

# 02/28/2002 * First version. It seems to work! :)

# And now, the incredible, ever expanding TO-DO list!!

# * Check for write permission before trying to create a file. If such permission does not exist, ask
#  the user where to write the file.
# * Recurse directories and subdirectories (Dangerous??)
# * Generate MP3/Ogg files with complete tags (artist, album, genre, etc...). Grab the tags from the
#  original MP3/Ogg file

# Talk is cheap! Now show me the code!!!

# Version number

version="0.5"

# Messages
# English, by Myself
wait="Naudilus "$version" - Please Wait..."
warning="Naudilus "$version" - WARNING!"
converting="Converting your audio files. Get some coffee and come back later"
which_format="Convert files to which format?"
format_mp3="Mpeg Layer III (MP3)"
format_ogg="Ogg Vorbis"
format_wav="Microsoft WAV"
overwrite="The file: "
proceed=" will be overwritten. Proceed?"

case $LANG in

pt* )
# Brazilian Portuguese, also by Myself
wait="Naudilus "$version" - Aguarde..."
warning="Naudilus "$version" - AVISO!"
converting="Convertendo seus arquivos de áudio. Pegue um café e volte mais tarde"
which_format="Converter arquivos para qual formato?"
format_mp3="Mpeg Layer III (MP3)"
format_ogg="Ogg Vorbis"
format_wav="Microsoft WAV"
overwrite="O arquivo: "
proceed=" será sobrescrito. Devo continuar?";;


fr* )
wait=3D"Naudilus "$version" - Veuillez patienter..."
               warning=3D"Naudilus "$version" - ATTENTION!"
               converting=3D"La conversion de vos fichiers audio est en cours, veuillez prendre un caf=E9 et revenir plus tard"
               which_format=3D"Dans quel format voulez-vous convertir le(s) fichier(s)?"
               format_mp3=3D"Mpeg Layer III (MP3)"
               format_ogg=3D"Ogg Vorbis"
               format_wav=3D"Microsoft WAV"
               overwrite=3D"Le fichier : "
               proceed=3D" sera =E9cras=E9, voulez-vous poursuivre?";;

eo* )
wait="Naudilus "$version" - Bonvolu atendi..."
warning="Naudilus "$version" - AVERTU!"
converting="Konvertas viajn aÅ­diajn dosierojn.  Trinku iom da kafo kaj revenu poste."
which_format="Konvertu dosierojn al kiu formato?"
format_mp3="Mpeg Layer III (MP3)"
format_ogg="Ogg Vorbis"
format_wav="Microsoft WAV"
overwrite="La dosiero: "
proceed=" estas superskribota.  Ä?u procedu?";;

sv*)
wait="Naudilus "$version" - Var god vänta..."
warning="Naudilus "$version" - Varning!"
converting="Konverterar dina ljudfiler. Hämta lite kaffe och kom tillbaks senare"
which_format="Vilket format ska filerna konverteras till?"
format_mp3="Mpeg Lager III (MP3)"
format_ogg="Ogg Vorbis"
format_wav="Microsoft WAV"
overwrite="Filen: "
proceed=" Kommer skrivas över. Vill du fortsätta?";;

esac

# Select file format to convert file to

selected_format=`gdialog --title "Naudilus "$version"" --radiolist "$which_format" 260 100 3 ".ogg" "$format_ogg" on ".mp3" "$format_mp3" off ".wav" "$format_wav" off 2>&1`

if [ "$selected_format" != "" ]
then
# Do Nothing...
echo "$selected_format" > /dev/null
else
exit 0
fi

# Warn the user that the conversion will take a LONG time...

gdialog --title "$wait" --msgbox "$converting" 100 100&

# Do the conversion

while [ $# -gt 0 ]; do

in_file=$1
out_file=`echo "$in_file" | sed 's/\.\w*$/'$selected_format'/'`

while `true`; do

# Is the input file different from the output file?

if  [ "$in_file" = "$out_file" ]
then
# No, break and go to the next file...
break
fi

# Does the output file exists? If yes, asks the user if he wants to
# overwrite.

if [ "`ls "$out_file" | grep -v "^ls"`" != "" ]
then
if !(`gdialog --title "$warning" --yesno "$overwrite \"$out_file\"$proceed" 200 100`)
then
# Don't owerwrite, so we get out of here.
break
fi
fi

# Lets see... Is it an MP3 file?
# Some MP3 files created with Apple's iTunes or some Windows encoders
# do not report the correct filetype when the 'file' command is used
# (it says "data", instead of "MP3, xxx kBits, xx.x kHz, Stereo...").
# So, we need to also check the file extension, and hope it's a real
# MP3 file...

if [ "`file -b "$1" | grep 'MP3'`" != "" ] || [ "`echo $in_file | grep -i '\.mp3$'`" != "" ]
then
if [ "$selected_format" = ".ogg" ]
then
lame --quiet --decode "$in_file" - | oggenc - -Q -b 128 -M 160 -o "$out_file"
else
lame --quiet --decode "$in_file" "$out_file"
fi
break
fi

# Hmmm... Does not have an MP3 signature, nor .mp3 extension. Maybe
# an Ogg-Vorbis file? Just to be sure, we also check the file extension

if [ "`file -b "$1" | grep 'Vorbis'`" != "" ] || [ "`echo $in_file | grep -i '\.ogg$'`" != "" ]
then
if [ "$selected_format" = ".mp3" ]
then
ogg123 -q --device=wav "$in_file" -f - | lame --quiet -m auto -v -F -b 128 -B 160 -h - "$out_file"
else
ogg123 -q --device=wav "$in_file" -f "$out_file"
fi
break
fi

# The last resort is to see if it is a .WAV file.. Also checking
# the file extension, of course!

if [ "`file -b "$1" | grep 'WAVE'`" != "" ] || [ "`echo $in_file | grep -i '\.wav$'`" != "" ]
then
if [ "$selected_format" = ".mp3" ]
then
lame --quiet -m auto -h -v -F -b 128 -B 160 "$in_file" "$out_file"
else
oggenc "$in_file" -Q -b 128 -M 160 -o "$out_file"
fi
break
fi

break
shift
done

shift
done

# Kill the warning

kill `ps -ef | grep "gdialog --title" | gawk '{ print $8, $2}' | grep gdialog | gawk '{ print $2 }'` 2> /dev/null


Salve e feche o gedit. Depois entre com o comando:

chmod +x ~/.gnome2/nautilus-scripts/Converter\ arquivo\ de\ audio

Pronto. Agora basta clicar com o botão direito do mouse em cima de um arquivo de áudio e ir em Scripts > Converter arquivo de audio.

[]s

Xterminator


LedStyle

Olha... agora que vi a foto parece que é a mesma coisa... rs. Mas eu peguei o script la no site do G-scripts. Tava procurando uns scripts legais pro nautilus e encontrei isso ai.

De qualquer forma funciona que eu ja testei hehehe.

[]s

diego_maciel

Fiz igual vc falou e qnd cliquei no arquivo>converter não apareceu nada...

Kan

Citação de: diego_maciel online 25 de Abril de 2008, 08:41...cliquei no arquivo > converter não apareceu nada.

Eu busco a praticidade da vida, complicar pra que? Para converter para Ogg Vorbis, MP3, FLAC ou WAV, eu uso e recomendo o SoundConverter. O único defeito que acho é q a maior qualidade é só 256 kb/s.
Amicus Plato, sed magis amica veritas

gony64

#5
Citação de: diego_maciel online 25 de Abril de 2008, 08:41
Fiz igual vc falou e qnd cliquei no arquivo>converter não apareceu nada...

tem que mudar o DONO e  o  GRUPO do arquivo para "root"

ai aparece.

e o script é legal demais, usava muito isto no KUBUNTU, pois o KONQUEROR, tem muito mais opcões que facilitam a vida usando o "gerenciador de aquivos" acho que quanto mais opções tiver melhor para manipular os arquivos.
converter, abrir com.., editar, mandar pra p*** q** p****.

diego_maciel

Citação de: gony64 online 25 de Abril de 2008, 17:25
Citação de: diego_maciel online 25 de Abril de 2008, 08:41
Fiz igual vc falou e qnd cliquei no arquivo>converter não apareceu nada...

tem que mudar o DONO e  o  GRUPO do arquivo para "root"

Fiz e não deu certo...