Cómo convertir por lotes archivos mp4 a ogg con ffmpeg usando un comando bash o Ruby

Estoy ejecutando un OSX, no sé mucho acerca de las conversiones de video. Pero tengo como 200 videos que están todos en formato mp4 y no se reproducirán en Firefox. Necesito convertirlos a ogg para usar la etiqueta de video html5.

Estos archivos viven en una estructura de carpetas que dificulta la creación de archivos de uno en uno. Me gustaría que el comando bash o el comando Ruby pasen por todas las carpetas secundarias y encuentren todos los .mp4 y los conviertan.

Encontré una referencia de cómo hacer esto con Google: http://athmasagar.wordpress.com/2011/05/12/a-bash-script-to-convert-mp4-files-to-oggogv/

#!/bin/bash for f in $(ls *mp4 | sed 's/\(.*\)\..*/\1/') do ffmpeg -i $f.mp4 -acodec vorbis -vcodec libtheora $f.ogg done 

Pero no tengo idea de cómo convertir esto de Linux a OSX.

Si bien la respuesta directa a tu pregunta sería así:

 #!/bin/bash MOVIES=~/Movies/ find "$MOVIES" -name '*.mp4' -exec sh -c 'ffmpeg -i "$0" -sameq "${0%%.mp4}.ogg"' {} \; exit; 

Creo que podrías encontrar mejores resultados usando el codec VP8 o webm, ya que te dará mejores resultados y es realmente preferido en las versiones modernas de Firefox. Teniendo en cuenta eso, deberías probar esto:

 #!/bin/bash MOVIES=~/Movies/ find "$MOVIES" -name '*.mp4' -exec sh -c 'ffmpeg -i "$0" -sameq "${0%%.mp4}.webm"' {} \; exit; 

Ambos métodos darán como resultado una pérdida de calidad en los videos resultantes, ya que están recodificando el material ya codificado y, en mi opinión, incluso el códec webm no es tan bueno como un MP4 codificado correctamente usando el h.264 codec

Esto es usar Ruby, asumiendo que el ffmpeg que usaste es correcto:

 Dir.glob("**/*.mp4").each do |filename| new_filename = File.join( File.dirname(filename), "#{File.basename(filename, ".mp4")}.ogg") `ffmpeg -i "#{filename}" -acodec vorbis -vcodec libtheora "#{new_filename}"` end 

Dir.glob con "**/*.mp4" coincidir todos los archivos dentro de los subdirectorios con una extensión .mp4.