Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to batch convert mp4 files to ogg with ffmpeg using a bash command or Ruby

I am running a OSX, don't know tons about video conversions. But I have like 200 videos that are all in mp4 format and won't play in Firefox. I need to convert them to ogg to use the html5 video tag.

These files live in a folder structure that makes it hard to do files one at a time. I would like the bash command or Ruby command to go through all child folders and find all .mp4's and convert them.

I found one reference of how to do this with 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

But have no idea how to convert this from linux to osx.

like image 282
TJ Sherrill Avatar asked May 26 '12 15:05

TJ Sherrill


People also ask

What is FFmpeg command?

Here is a collection of useful ffmpeg commands for converting image stacks to mp4s. The basic command should look like this: ffmpeg -i frame_%5d. png -vcodec libx264 -pix_fmt yuv420p out.

Is FFmpeg a command line?

Command line toolsffmpeg is a command-line tool that converts audio or video formats. It can also capture and encode in real-time from various hardware and software sources such as a TV capture card. ffplay is a simple media player utilizing SDL and the FFmpeg libraries.


1 Answers

While the direct answer to your question would be like this:

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

I think you might find better results using the VP8 or webm codec as it will give you much better results and is actually preferred in modern versions of Firefox. Given that, you should try this:

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

Both of these methods WILL result in a loss of quality in your resulting videos as they are re-encoding the already encoded material and, in my opinion, even the webm codec is not nearly as good as a properly encoded MP4 using the h.264 codec.

like image 130
Jim Martin Avatar answered Sep 29 '22 18:09

Jim Martin