mirror of https://git.ffmpeg.org/ffmpeg.git
doc/filters: put vidstab filters documentation in a sensible order
This commit is contained in:
parent
cb23de1904
commit
16cecf9c3d
437
doc/filters.texi
437
doc/filters.texi
|
@ -5306,140 +5306,6 @@ much, but it will increase the amount of blurring needed to cover over
|
||||||
the image and will destroy more information than necessary, and extra
|
the image and will destroy more information than necessary, and extra
|
||||||
pixels will slow things down on a large logo.
|
pixels will slow things down on a large logo.
|
||||||
|
|
||||||
@anchor{vidstabtransform}
|
|
||||||
@section vidstabtransform
|
|
||||||
|
|
||||||
Video stabilization/deshaking: pass 2 of 2,
|
|
||||||
see @ref{vidstabdetect} for pass 1.
|
|
||||||
|
|
||||||
Read a file with transform information for each frame and
|
|
||||||
apply/compensate them. Together with the @ref{vidstabdetect}
|
|
||||||
filter this can be used to deshake videos. See also
|
|
||||||
@url{http://public.hronopik.de/vid.stab}. It is important to also use
|
|
||||||
the unsharp filter, see below.
|
|
||||||
|
|
||||||
To enable compilation of this filter you need to configure FFmpeg with
|
|
||||||
@code{--enable-libvidstab}.
|
|
||||||
|
|
||||||
This filter accepts the following options:
|
|
||||||
|
|
||||||
@table @option
|
|
||||||
|
|
||||||
@item input
|
|
||||||
path to the file used to read the transforms (default: @file{transforms.trf})
|
|
||||||
|
|
||||||
@item smoothing
|
|
||||||
number of frames (value*2 + 1) used for lowpass filtering the camera movements
|
|
||||||
(default: 10). For example a number of 10 means that 21 frames are used
|
|
||||||
(10 in the past and 10 in the future) to smoothen the motion in the
|
|
||||||
video. A larger values leads to a smoother video, but limits the
|
|
||||||
acceleration of the camera (pan/tilt movements).
|
|
||||||
|
|
||||||
@item maxshift
|
|
||||||
maximal number of pixels to translate frames (default: -1 no limit)
|
|
||||||
|
|
||||||
@item maxangle
|
|
||||||
maximal angle in radians (degree*PI/180) to rotate frames (default: -1
|
|
||||||
no limit)
|
|
||||||
|
|
||||||
@item crop
|
|
||||||
How to deal with borders that may be visible due to movement
|
|
||||||
compensation. Available values are:
|
|
||||||
|
|
||||||
@table @samp
|
|
||||||
@item keep
|
|
||||||
keep image information from previous frame (default)
|
|
||||||
@item black
|
|
||||||
fill the border black
|
|
||||||
@end table
|
|
||||||
|
|
||||||
@item invert
|
|
||||||
@table @samp
|
|
||||||
@item 0
|
|
||||||
keep transforms normal (default)
|
|
||||||
@item 1
|
|
||||||
invert transforms
|
|
||||||
@end table
|
|
||||||
|
|
||||||
|
|
||||||
@item relative
|
|
||||||
consider transforms as
|
|
||||||
@table @samp
|
|
||||||
@item 0
|
|
||||||
absolute
|
|
||||||
@item 1
|
|
||||||
relative to previous frame (default)
|
|
||||||
@end table
|
|
||||||
|
|
||||||
|
|
||||||
@item zoom
|
|
||||||
percentage to zoom (default: 0)
|
|
||||||
@table @samp
|
|
||||||
@item >0
|
|
||||||
zoom in
|
|
||||||
@item <0
|
|
||||||
zoom out
|
|
||||||
@end table
|
|
||||||
|
|
||||||
@item optzoom
|
|
||||||
if 1 then optimal zoom value is determined (default).
|
|
||||||
Optimal zoom means no (or only little) border should be visible.
|
|
||||||
Note that the value given at zoom is added to the one calculated
|
|
||||||
here.
|
|
||||||
|
|
||||||
@item interpol
|
|
||||||
type of interpolation
|
|
||||||
|
|
||||||
Available values are:
|
|
||||||
@table @samp
|
|
||||||
@item no
|
|
||||||
no interpolation
|
|
||||||
@item linear
|
|
||||||
linear only horizontal
|
|
||||||
@item bilinear
|
|
||||||
linear in both directions (default)
|
|
||||||
@item bicubic
|
|
||||||
cubic in both directions (slow)
|
|
||||||
@end table
|
|
||||||
|
|
||||||
@item tripod
|
|
||||||
virtual tripod mode means that the video is stabilized such that the
|
|
||||||
camera stays stationary. Use also @code{tripod} option of
|
|
||||||
@ref{vidstabdetect}.
|
|
||||||
@table @samp
|
|
||||||
@item 0
|
|
||||||
off (default)
|
|
||||||
@item 1
|
|
||||||
virtual tripod mode: equivalent to @code{relative=0:smoothing=0}
|
|
||||||
@end table
|
|
||||||
|
|
||||||
@end table
|
|
||||||
|
|
||||||
@subsection Examples
|
|
||||||
|
|
||||||
@itemize
|
|
||||||
@item
|
|
||||||
typical call with default default values:
|
|
||||||
(note the unsharp filter which is always recommended)
|
|
||||||
@example
|
|
||||||
ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
|
|
||||||
@end example
|
|
||||||
|
|
||||||
@item
|
|
||||||
zoom in a bit more and load transform data from a given file
|
|
||||||
@example
|
|
||||||
vidstabtransform=zoom=5:input="mytransforms.trf"
|
|
||||||
@end example
|
|
||||||
|
|
||||||
@item
|
|
||||||
smoothen the video even more
|
|
||||||
@example
|
|
||||||
vidstabtransform=smoothing=30
|
|
||||||
@end example
|
|
||||||
|
|
||||||
@end itemize
|
|
||||||
|
|
||||||
|
|
||||||
@section scale
|
@section scale
|
||||||
|
|
||||||
Scale (resize) the input video, using the libswscale library.
|
Scale (resize) the input video, using the libswscale library.
|
||||||
|
@ -5838,92 +5704,6 @@ in [-30,0] will filter edges. Default value is 0.
|
||||||
If a chroma option is not explicitly set, the corresponding luma value
|
If a chroma option is not explicitly set, the corresponding luma value
|
||||||
is set.
|
is set.
|
||||||
|
|
||||||
@anchor{vidstabdetect}
|
|
||||||
@section vidstabdetect
|
|
||||||
|
|
||||||
Video stabilization/deshaking: pass 1 of 2, see @ref{vidstabtransform}
|
|
||||||
for pass 2.
|
|
||||||
|
|
||||||
Generates a file with relative transform information translation,
|
|
||||||
rotation about subsequent frames.
|
|
||||||
|
|
||||||
To enable compilation of this filter you need to configure FFmpeg with
|
|
||||||
@code{--enable-libvidstab}.
|
|
||||||
|
|
||||||
This filter accepts the following options:
|
|
||||||
|
|
||||||
@table @option
|
|
||||||
@item result
|
|
||||||
path to the file used to write the transforms (default:@file{transforms.trf})
|
|
||||||
|
|
||||||
@item shakiness
|
|
||||||
how shaky is the video and how quick is the camera? (default: 5)
|
|
||||||
@table @samp
|
|
||||||
@item 1
|
|
||||||
little (fast)
|
|
||||||
@item ...
|
|
||||||
@item 10
|
|
||||||
very strong/quick (slow)
|
|
||||||
@end table
|
|
||||||
|
|
||||||
@item accuracy
|
|
||||||
accuracy of detection process (>=shakiness) (default: 9)
|
|
||||||
@table @samp
|
|
||||||
@item 1
|
|
||||||
low (fast)
|
|
||||||
@item 15
|
|
||||||
high (slow)
|
|
||||||
@end table
|
|
||||||
|
|
||||||
@item stepsize
|
|
||||||
stepsize of search process, region around minimum is scanned with 1 pixel
|
|
||||||
resolution (default: 6)
|
|
||||||
|
|
||||||
@item mincontrast
|
|
||||||
below this contrast a local measurement field is discarded (0-1) (default: 0.3)
|
|
||||||
|
|
||||||
@item tripod
|
|
||||||
virtual tripod mode: @code{tripod=framenum} if framenum>0 otherwise disabled.
|
|
||||||
The motion of the frames is compared to a reference frame (framenum).
|
|
||||||
The idea is to compensate all movements in a more-or-less static scene
|
|
||||||
and keep the camera view absolutely still.
|
|
||||||
(default: 0 (disabled))
|
|
||||||
|
|
||||||
@item show
|
|
||||||
draw nothing (default); 1,2: show fields and transforms in the resulting frames
|
|
||||||
|
|
||||||
@end table
|
|
||||||
|
|
||||||
@subsection Examples
|
|
||||||
|
|
||||||
@itemize
|
|
||||||
@item
|
|
||||||
use default values:
|
|
||||||
@example
|
|
||||||
vidstabdetect
|
|
||||||
@end example
|
|
||||||
|
|
||||||
@item
|
|
||||||
strongly shaky movie and put the results in @code{mytransforms.trf}
|
|
||||||
@example
|
|
||||||
vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
|
|
||||||
@end example
|
|
||||||
|
|
||||||
@item
|
|
||||||
visualize some internals in the resulting video
|
|
||||||
@example
|
|
||||||
vidstabdetect=show=1
|
|
||||||
@end example
|
|
||||||
|
|
||||||
|
|
||||||
@item
|
|
||||||
Typical call with visualization
|
|
||||||
@example
|
|
||||||
ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
|
|
||||||
@end example
|
|
||||||
@end itemize
|
|
||||||
|
|
||||||
|
|
||||||
@section stereo3d
|
@section stereo3d
|
||||||
|
|
||||||
Convert between different stereoscopic image formats.
|
Convert between different stereoscopic image formats.
|
||||||
|
@ -6438,6 +6218,223 @@ unsharp=7:7:-2:7:7:-2
|
||||||
@end example
|
@end example
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
|
@anchor{vidstabdetect}
|
||||||
|
@section vidstabdetect
|
||||||
|
|
||||||
|
Video stabilization/deshaking: pass 1 of 2, see @ref{vidstabtransform}
|
||||||
|
for pass 2.
|
||||||
|
|
||||||
|
Generates a file with relative transform information translation,
|
||||||
|
rotation about subsequent frames.
|
||||||
|
|
||||||
|
To enable compilation of this filter you need to configure FFmpeg with
|
||||||
|
@code{--enable-libvidstab}.
|
||||||
|
|
||||||
|
This filter accepts the following options:
|
||||||
|
|
||||||
|
@table @option
|
||||||
|
@item result
|
||||||
|
path to the file used to write the transforms (default:@file{transforms.trf})
|
||||||
|
|
||||||
|
@item shakiness
|
||||||
|
how shaky is the video and how quick is the camera? (default: 5)
|
||||||
|
@table @samp
|
||||||
|
@item 1
|
||||||
|
little (fast)
|
||||||
|
@item ...
|
||||||
|
@item 10
|
||||||
|
very strong/quick (slow)
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@item accuracy
|
||||||
|
accuracy of detection process (>=shakiness) (default: 9)
|
||||||
|
@table @samp
|
||||||
|
@item 1
|
||||||
|
low (fast)
|
||||||
|
@item 15
|
||||||
|
high (slow)
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@item stepsize
|
||||||
|
stepsize of search process, region around minimum is scanned with 1 pixel
|
||||||
|
resolution (default: 6)
|
||||||
|
|
||||||
|
@item mincontrast
|
||||||
|
below this contrast a local measurement field is discarded (0-1) (default: 0.3)
|
||||||
|
|
||||||
|
@item tripod
|
||||||
|
virtual tripod mode: @code{tripod=framenum} if framenum>0 otherwise disabled.
|
||||||
|
The motion of the frames is compared to a reference frame (framenum).
|
||||||
|
The idea is to compensate all movements in a more-or-less static scene
|
||||||
|
and keep the camera view absolutely still.
|
||||||
|
(default: 0 (disabled))
|
||||||
|
|
||||||
|
@item show
|
||||||
|
draw nothing (default); 1,2: show fields and transforms in the resulting frames
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@subsection Examples
|
||||||
|
|
||||||
|
@itemize
|
||||||
|
@item
|
||||||
|
use default values:
|
||||||
|
@example
|
||||||
|
vidstabdetect
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@item
|
||||||
|
strongly shaky movie and put the results in @code{mytransforms.trf}
|
||||||
|
@example
|
||||||
|
vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@item
|
||||||
|
visualize some internals in the resulting video
|
||||||
|
@example
|
||||||
|
vidstabdetect=show=1
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@item
|
||||||
|
Typical call with visualization
|
||||||
|
@example
|
||||||
|
ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
|
||||||
|
@end example
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
@anchor{vidstabtransform}
|
||||||
|
@section vidstabtransform
|
||||||
|
|
||||||
|
Video stabilization/deshaking: pass 2 of 2,
|
||||||
|
see @ref{vidstabdetect} for pass 1.
|
||||||
|
|
||||||
|
Read a file with transform information for each frame and
|
||||||
|
apply/compensate them. Together with the @ref{vidstabdetect}
|
||||||
|
filter this can be used to deshake videos. See also
|
||||||
|
@url{http://public.hronopik.de/vid.stab}. It is important to also use
|
||||||
|
the unsharp filter, see below.
|
||||||
|
|
||||||
|
To enable compilation of this filter you need to configure FFmpeg with
|
||||||
|
@code{--enable-libvidstab}.
|
||||||
|
|
||||||
|
This filter accepts the following options:
|
||||||
|
|
||||||
|
@table @option
|
||||||
|
|
||||||
|
@item input
|
||||||
|
path to the file used to read the transforms (default: @file{transforms.trf})
|
||||||
|
|
||||||
|
@item smoothing
|
||||||
|
number of frames (value*2 + 1) used for lowpass filtering the camera movements
|
||||||
|
(default: 10). For example a number of 10 means that 21 frames are used
|
||||||
|
(10 in the past and 10 in the future) to smoothen the motion in the
|
||||||
|
video. A larger values leads to a smoother video, but limits the
|
||||||
|
acceleration of the camera (pan/tilt movements).
|
||||||
|
|
||||||
|
@item maxshift
|
||||||
|
maximal number of pixels to translate frames (default: -1 no limit)
|
||||||
|
|
||||||
|
@item maxangle
|
||||||
|
maximal angle in radians (degree*PI/180) to rotate frames (default: -1
|
||||||
|
no limit)
|
||||||
|
|
||||||
|
@item crop
|
||||||
|
How to deal with borders that may be visible due to movement
|
||||||
|
compensation. Available values are:
|
||||||
|
|
||||||
|
@table @samp
|
||||||
|
@item keep
|
||||||
|
keep image information from previous frame (default)
|
||||||
|
@item black
|
||||||
|
fill the border black
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@item invert
|
||||||
|
@table @samp
|
||||||
|
@item 0
|
||||||
|
keep transforms normal (default)
|
||||||
|
@item 1
|
||||||
|
invert transforms
|
||||||
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@item relative
|
||||||
|
consider transforms as
|
||||||
|
@table @samp
|
||||||
|
@item 0
|
||||||
|
absolute
|
||||||
|
@item 1
|
||||||
|
relative to previous frame (default)
|
||||||
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@item zoom
|
||||||
|
percentage to zoom (default: 0)
|
||||||
|
@table @samp
|
||||||
|
@item >0
|
||||||
|
zoom in
|
||||||
|
@item <0
|
||||||
|
zoom out
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@item optzoom
|
||||||
|
if 1 then optimal zoom value is determined (default).
|
||||||
|
Optimal zoom means no (or only little) border should be visible.
|
||||||
|
Note that the value given at zoom is added to the one calculated
|
||||||
|
here.
|
||||||
|
|
||||||
|
@item interpol
|
||||||
|
type of interpolation
|
||||||
|
|
||||||
|
Available values are:
|
||||||
|
@table @samp
|
||||||
|
@item no
|
||||||
|
no interpolation
|
||||||
|
@item linear
|
||||||
|
linear only horizontal
|
||||||
|
@item bilinear
|
||||||
|
linear in both directions (default)
|
||||||
|
@item bicubic
|
||||||
|
cubic in both directions (slow)
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@item tripod
|
||||||
|
virtual tripod mode means that the video is stabilized such that the
|
||||||
|
camera stays stationary. Use also @code{tripod} option of
|
||||||
|
@ref{vidstabdetect}.
|
||||||
|
@table @samp
|
||||||
|
@item 0
|
||||||
|
off (default)
|
||||||
|
@item 1
|
||||||
|
virtual tripod mode: equivalent to @code{relative=0:smoothing=0}
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@subsection Examples
|
||||||
|
|
||||||
|
@itemize
|
||||||
|
@item
|
||||||
|
typical call with default default values:
|
||||||
|
(note the unsharp filter which is always recommended)
|
||||||
|
@example
|
||||||
|
ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@item
|
||||||
|
zoom in a bit more and load transform data from a given file
|
||||||
|
@example
|
||||||
|
vidstabtransform=zoom=5:input="mytransforms.trf"
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@item
|
||||||
|
smoothen the video even more
|
||||||
|
@example
|
||||||
|
vidstabtransform=smoothing=30
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@end itemize
|
||||||
|
|
||||||
@section vflip
|
@section vflip
|
||||||
|
|
||||||
Flip the input video vertically.
|
Flip the input video vertically.
|
||||||
|
|
Loading…
Reference in New Issue