
The -s option specifies our frame size, the -b option specifies the desired bitrate, and the -bt option is the bitrate tolerance. It also will have a detrimental effect on file size. With a smaller number, your output will have more keyframes, which means that streaming clients will be able to recover more quickly if they drop packets for some reason.

The -g option is the “group of pictures” (GOP) size, which is the number of frames between keyframes. The -r option specifies that our output will be 20 frames per second. We are going to crop our video a few pixels around the border, as we were getting some noise around the edges of our source video. The -threads 0 option instructs ffmpeg to use the optimal number of threads when encoding. I have not seen this documented very well. The first is quality, and the second is the profile to use (main, baseline, etc., with “main” being the default). The -vpre option means that we will use the default quality preset (note that when using libx264 to encode, you can specify two -vpre options. We’re going to use H.264 compression, as provided by the libx264 library. Here we are specifying our video output options. croptop 6 -cropbottom 6 -cropleft 9 -cropright 9 \ vcodec libx264 -vpre default -threads 0 \ acodec libfaac -ac 2 -ab 192k -ar 44100 \
