aboutsummaryrefslogtreecommitdiffstats
path: root/doc/filters.texi
diff options
context:
space:
mode:
authorThilo Borgmann <thilo.borgmann@mail.de>2022-07-30 13:10:45 +0200
committerThilo Borgmann <thilo.borgmann@mail.de>2022-07-30 13:17:28 +0200
commit9d66417cc5bd705dca15e90aea3fa59d07422705 (patch)
tree440fa109716711117b2dac843a2d90c5a76c3087 /doc/filters.texi
parentcf1f57443158bcbe84a213e8dc631a302993f9a2 (diff)
downloadffmpeg-9d66417cc5bd705dca15e90aea3fa59d07422705.tar.gz
lavfi/cropdetect: Add new mode to detect crop-area based on motion vectors and edges
This filter allows crop detection even if the video is embedded in non-black areas.
Diffstat (limited to 'doc/filters.texi')
-rw-r--r--doc/filters.texi53
1 files changed, 52 insertions, 1 deletions
diff --git a/doc/filters.texi b/doc/filters.texi
index 9c4dea9abc..4a5412c91d 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -10138,12 +10138,23 @@ Auto-detect the crop size.
It calculates the necessary cropping parameters and prints the
recommended parameters via the logging system. The detected dimensions
-correspond to the non-black area of the input video.
+correspond to the non-black or video area of the input video according to @var{mode}.
It accepts the following parameters:
@table @option
+@item mode
+Depending on @var{mode} crop detection is based on either the mere black value of surrounding pixels or a combination of motion vectors and edge pixels.
+
+@table @samp
+@item black
+Detect black pixels surrounding the playing video. For fine control use option @var{limit}.
+
+@item mvedges
+Detect the playing video by the motion vectors inside the video and scanning for edge pixels typically forming the border of a playing video.
+@end table
+
@item limit
Set higher black value threshold, which can be optionally specified
from nothing (0) to everything (255 for 8-bit based formats). An intensity
@@ -10169,8 +10180,48 @@ detect the current optimal crop area. Default value is 0.
This can be useful when channel logos distort the video area. 0
indicates 'never reset', and returns the largest area encountered during
playback.
+
+@item mv_threshold
+Set motion in pixel units as threshold for motion detection. It defaults to 8.
+
+@item low
+@item high
+Set low and high threshold values used by the Canny thresholding
+algorithm.
+
+The high threshold selects the "strong" edge pixels, which are then
+connected through 8-connectivity with the "weak" edge pixels selected
+by the low threshold.
+
+@var{low} and @var{high} threshold values must be chosen in the range
+[0,1], and @var{low} should be lesser or equal to @var{high}.
+
+Default value for @var{low} is @code{5/255}, and default value for @var{high}
+is @code{15/255}.
@end table
+@subsection Examples
+
+@itemize
+@item
+Find video area surrounded by black borders:
+@example
+ffmpeg -i file.mp4 -vf cropdetect,metadata=mode=print -f null -
+@end example
+
+@item
+Find an embedded video area, generate motion vectors beforehand:
+@example
+ffmpeg -i file.mp4 -vf mestimate,cropdetect=mode=mvedges,metadata=mode=print -f null -
+@end example
+
+@item
+Find an embedded video area, use motion vectors from decoder:
+@example
+ffmpeg -flags2 +export_mvs -i file.mp4 -vf cropdetect=mode=mvedges,metadata=mode=print -f null -
+@end example
+@end itemize
+
@anchor{cue}
@section cue