Converting movies to flv format.

I’ve decided to convert all  movies to flv (flash video) format before saving them, inna youtube stylee.

This page seems to spell out how to do that – there’s a lot involved.  Here goes.

Step 1:  Get the source for ffmpeg from subversion.  It involves a checkout, which seems odd…i don’t want to check anything back in (real open source coding is still scary to me), i just want a copy.  Ah well, i’ll follow the instructions.

I made a new folder outside of my rails app (i hope this was the right thing to do) and in it typed this at the command line:

svn checkout svn:// ffmpeg

This copied over a load of stuff.  Next step is to configure and compile it.  This sounds complicated.   First hurdle – the instructions are all for mac!

Mencoder looks promising as well…

OK, going with a different guide

Step 1 – mencoder.  DLd and installed mplayer and mencoder and associated codecs.

Step 2 – test mencoder, with this, at the command line:

mencoder input.avi -o output.avi -oac lavc -ovc lavc -lavcopts vcodec=xvid:acodec=mp3 > output.txt

I get this error:

Cannot find codec ‘xvid’ in libavcodec…
Couldn’t open video filter ‘lavc’.
Failed to open the encoder.

After a bit of mucking around i got it to work (blob_woman2.avi is my test video, converted to output.avi using the lavc codec).  I had to remove the -oac lavc bit, and the -lavcopts vcodec etc bit as well.

mencoder blob_woman2.avi -ovc lavc -o output.avi  > output.txt 

It reduced to about 10% of previous size which is impressive, but i think it was an unoptimal avi in the first place.  Let’s try with a 237 meg divx movie now:  ok, it’s working….i’m getting messages about duplicate frames andthe occasional missing frame but it seems to be working away there…Finished!  237meg down to 130meg, that’s pretty good!  I had to specify an audio codec as well this time: lavc as well.

Following the instructions in the guide, the next thing to do is to incorporate it into rails.  Dmytro, who’s blog i’m using, sets up a helper method that takes a command line instruction, and generates a new type of exception (which is also defined but simply extends StandardError).  To be continued.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s