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.
Necesito convertir m4a a mp3