I think it has a "blackness" video filter, which can determine if a picture sequence is black. Maybe it also has a filter to determine crop values automatically to remove black borders form edges of a video. Or maybe it is possible somehow to write a script using the "blackness" filter.

3 Answers 3


Yes, it is possible.

First play your video to see if it is OK:

ffplay -i YourMovie.mp4 -vf "cropdetect=24:16:0"

The cropdetect filter values are:


limit = black threshold (default 24)
round = output resolution must be divisible to this
reset = after how many frames the detection process will start over

If it looks OK, crop it:

ffmpeg -i YourMovie.mp4 -vf "crop=640:256:0:36" YourCroppedMovie.mp4

Source and more info: René Calles blog renevolution.com

  • 9
    It might be helpful to put a start point (-ss 00:05:00) in when using cropdetect (before input -i) as some video will have a solid black screen when starting.
    – user465731
    Jul 4, 2015 at 13:45
  • I would like to use this to crop python matplotlib.animation videos, which have a white border. Is it possible to alter the color of the border being detected? Oct 8, 2015 at 11:51
  • 1
    Can you specify something else than black as border color? White for example?
    – DanMan
    Mar 8, 2018 at 13:03
  • This does not answer the question as you still need to do manual action
    – Freedo
    Sep 8, 2019 at 8:32
  • 1
    Your ffplay cropdetect command played my video but still had black on the right and bottom sides. Then I saw superuser.com/a/1035399/74576. And it occurs to me that maybe ffmpeg.org/ffmpeg-filters.html#cropdetect can't help at all for videos that have black sides of asymmetrical thicknesses. The documentation is not great.
    – Ryan
    May 24, 2020 at 13:47

From: https://stackoverflow.com/questions/17265381/ffmpeg-get-value-from-cropdetect

ffmpeg -i input -t 1 -vf cropdetect -f null - 2>&1 | awk '/crop/ { print $NF }' | tail -1
  • 1
    ok, this will generate the "crop values" to use with ffmpeg in a simple and very clear way :), thx! Apr 13, 2016 at 0:11
  • 1
    This fails miserably if there's a bit of black at the beginning of the video, such as in an intro. This is solved by adding -ss 5 before -i, to run cropdetect after skipping the first 5 seconds. Apr 5, 2021 at 19:11

Putting the other two answers together into a script:

#ffmpeg_zoom ver 20180128202453
I="$@";X=${I##*.};O=${I%.*}_zoomed.${X};f=$(which ffmpeg 2>/dev/null)
if [ ! "$f" ]||[ "$f" = '' ];then echo "Install ffmpeg";exit 1;fi
C=$($f -i "$I" -t 1 -vf cropdetect -f null - 2>&1|awk '/crop/{print $NF}'|tail -n1)
echo $f -i "$I" -vf "$C" "$O"; $f -i "$I" -vf "$C" "$O"

This question has some relevant ffmpeg examples


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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