Take the 2-minute tour ×
Video Production Stack Exchange is a question and answer site for engineers, producers, editors, and enthusiasts spanning the fields of video, and media creation. It's 100% free, no registration required.

I have an MP4 file of a screen recording that I need to crop down. How can I accomplish this without using expensive tools like Adobe Premier or Final Cut? I prefer ffmpeg because I have used it before.

share|improve this question

1 Answer 1

up vote 40 down vote accepted

In recent versions of FFmpeg, use the crop filter:

ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4

Where the options are as follows:

  • out_w is the width of the output rectangle
  • out_h is the height of the output rectangle
  • x and y specify the top left corner of the output rectangle

Original image

original image
Original 320x240 image

Example 1

80x60

To crop a 80×60 section, starting from position (200, 100):

ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4
  • The audio is stream copied in this example, so re-encoding is avoided.

Example 2

bottom right quarter

To crop the bottom right quarter:

ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4

This is the same as:

ffmpeg -i in.mp4 -filter:v "crop=320/2:240/2:320/2:240/2" -c:a copy out.mp4

Which is the same as:

ffmpeg -i in.mp4 -filter:v "crop=240:120:240:120" -c:a copy out.mp4
  • You can refer to the input image size with in_w and in_h as shown in this first example. The output width and height can also be used with out_w and out_h.

Example 3

20 pixels from the top, and 20 from the bottom

Crop 20 pixels from the top, and 20 from the bottom:

 ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4
  • The filter will automatically center the crop if x and y are omitted such as in this example.

Previewing

You can take a crop (heh heh) and preview it live with ffplay:

ffplay -i input -vf "crop=in_w:in_h-40"

This way you can experiment and adjust your cropping without the need to encode, view, repeat.

Notes

  • crop filter documentation

  • Default encoder for MP4 is libx264 (H.264 video) or mpeg4 (MPEG-4 Part 2 video) depending on your ffmpeg build. See FFmpeg Wiki: H.264 Video Encoding Guide for more info.

  • Instead of cropping and re-encoding, consider cropping upon playback. This is possible with any player worth using.

  • Ancient ffmpeg builds used -croptop, -cropbottom, -cropleft, -cropright options instead of the crop filter. If this is the case for you then get a modern ffmpeg. Development is very active and there is no reason to use an antique.

share|improve this answer
    
Thanks so much! I'm actually on Mac OS X, but I use ffmpeg compiled through MacPorts. This does exactly what I need. –  stephenwade Aug 15 '12 at 14:00

protected by AJ Henderson Jan 15 at 22:38

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.