Understandably, most people are a little lost when it comes to using command-line programs like FFmpeg. But don’t worry, I was there not too long ago, and now I’ll try explain as thoroughly as I can how to install it and start using it.
But first, a little info from their site:
FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge.
So really, you’re doing yourself a huge favour by installing it, you just need a little help to get started.
(click to expand each section)
Head on over to http://ffmpeg.zeranoe.com/builds/ and download either the 32 or 64-bit Static version (depending on your system). Most modern computers are 64-bit, but just in case you’re not sure, it’s pretty easy to check.
At the time of writing this, the latest build is from 2014-05-30:
To make the download size nice and small, it’s compressed into a .7z file, which is just like a .zip file but smaller. Chances are you know exactly what this is and how to extract it, but if not, you’ll just need to download a program called 7zip which will allow you to unzip it. I know it sounds like I’m sending you further down the rabbit hole, but 7zip is another program you’ll not regret you installed.
Unzip it to a folder that’s easy to find, like directly to your C:\ drive. It should create a folder like ffmpeg-20140530-git-98a6806-win64-static, but just rename it to ffmpeg for simplicities sake. You’ll thank me later.
It should look something like this:
3: Add to Path
Finally, we need to add the bin folder, which contains the ffmpeg.exe file, to our system path to allow us to run the commands easily.
Technically, you could always do something like
but it’s much easier to type
If you try that right now, you’ll get an error saying that the ffmpeg is not recognized as an internal or external command.
That basically means windows has not idea what you’re talking about.
All we need to do is add
C:\ffmpeg\bin to our system path, and it’ll understand us.
So, in the Start Menu, right click on Computer and choose Properties.
Then select Advanced system settings:
Open up the Environment Variables:
And then edit the Path variable:
The Path is just a list of folders that contain commands you’re allowed to use without typing in the full path of the exe files.
So, go ahead and add
C:\ffmpeg\bin to the end of the line, making sure that there’s a semi-colon (
;) after the previous folder:
4: Use it!
Since FFmpeg is a command-line program, we’re going to need to open a command line!
There are several ways to do this:
- Search in the start menu for command prompt or just cmd
- Hit Win+R to open the Run utility and type cmd there
- Shift+Right Click in a folder (without any files selected) and choose Open command window here. That’s what I usually do.
Once you’ve got a console open, check that FFmpeg is installed properly by typing
ffmpeg -codecs, which will show you all the codecs you have access to, including audio and video.
If it still tells you that it doesn’t recognize the command, double check that you successfully added the ffmpeg bin folder to the system path.
If all is well – congratulations, it’s installed!
Now you can play around with all sorts of things, like converting an image sequence into a video, a video into an image sequence, rotate and scale videos, discover information about a video, stabilize that shaky video you took at you Great Aunt’s 4th wedding, stream the webcam you planted in your girlfriend’s ex-boyfriend’s bedroom, or convert your 250 frame cube render to a super-crispy lossless h264 of unparalleled awesomeness.
There’s really an endless number of things you can do, so have a look at the documentation some time. But if that sounds like too much hard work, here’s my own personal reference I keep to remind me of common tasks:
Make video from image sequence:
ffmpeg -i frame_%04d.png -c:v h264 test.mp4 – ‘%04d’ is the padding, like ‘frame_0001.png’
ffmpeg -i frame%04d.png -c:v libx264 -preset veryslow -qp 0 vid.mkv
ffmpeg -i frame%04d.png -c:v libx264 -preset ultrafast -qp 0 vid.mkv – larger file size, but quicker to encode
quicktime (camtasia can use these):
ffmpeg -i frame%04d.png -c:v prores vid_prores.mov
ffmpeg -i frame%04d.png -c:v qtrle qtrle.mov – possibly lossless compression
HTML5 supported video:
ffmpeg -i frame%04d.png -c:v libx264 -b:v 1M -c:a aac -r 10 output.mp4 – ‘-r 10’ specifies a framerate of 10 fps
ffmpeg -i frame%04d.png -c:v libvpx -b:v 2M -c:a libvorbis -r 10 output.webm
ffmpeg -i frame%04d.png -vf scale=680:-1 -c:v libvpx -b:v 2M output.webm – 680p (auto height), no audio
Make image sequence from video:
ffmpeg -i video.avi image%04d.png
ffmpeg -i video.avi .\imgs\image%04d.png – outputs the images to a folder (the folder must already exist!)
Get info on video:
ffmpeg -i video.avi
Deshake video (stabalize):
ffmpeg -i input.mov -vf deshake output.mov
ffmpeg -i left_video.mov -vf "[in] scale=iw/2:ih/2, pad=2*iw:ih [left];movie=right_video.mov, scale=iw/2:ih/2 [right];[left][right] overlay=main_w/2:0 [out]" sidebyside.mov
If you weren’t successful, just post a comment below and I’ll help you out :)