Dagi3d v4

Convertir ficheros m4a a mp3 con ruby

Buscando cómo convertir  los ficheros de audio en formato m4a a mp3 bajo linux, vi que la solución más común era realizar un script en bash que se encargase de llamar a los programas mplayer y lame.
El problema es que si bien las soluciones que proponían eran totalmente funcionales, los scripts en bash siempre me han parecido un tanto crípticos, así que me decidí a implementar uno en ruby(el próximo paso será utilizar wxRuby para seguir trasteando y añadirle una interfaz al frontend):
#!/usr/bin/env ruby

if ARGV.length < 2
puts "usage: #{File.basename(__FILE__)} <source dir> <target dir>"
exit(1)
end

src = ARGV[0]
target = ARGV[1]

if !File.exist?(src) || !File.readable?(src) || !File.directory?(src)
puts "#{src} access denied"
exit(1)
end

if !File.exist?(target) || !File.writable?(target) || !File.directory?(target)
puts "#{target} access denied"
exit(1)
end

src_dir = Dir.new(src)

src_dir.entries.each do |entry|

src_file = File.join(src, entry)

if File.extname(src_file).downcase == ".m4a"

target_file = File.join(target, File.basename(src_file).gsub(/\.m4a$/i, ""))
puts "Converting #{src_file}"

%x(mplayer -ao pcm:file="#{target_file}.wav" "#{src_file}")
%x(lame -h -b 192 "#{target_file}.wav" "#{target_file}.mp3")
File.delete("#{target_file}.wav")
end

end
Tan sólo hay que indicarle al script en el primer parámetro el directorio origen que contiene los ficheros m4a, y como segundo parámetro dónde queremos que se generen los ficheros mp3.
Fabian
05/03/2008 11:11

Necesito convertir m4a a mp3

Deja un comentario
*: campos obligatorios. La dirección de correo no será publicada