diff options
author | Stefano Sabatini <stefasab@gmail.com> | 2012-12-11 23:26:01 +0100 |
---|---|---|
committer | Stefano Sabatini <stefasab@gmail.com> | 2012-12-13 00:10:43 +0100 |
commit | c51f090ff9658d6acc83e7ee7a507032b58cd07e (patch) | |
tree | f93ec10f86976d194f8f492d67327f7cb4d38047 /doc/filters.texi | |
parent | f5461face5b015ade1f3c2b0bc3ec0433f95a579 (diff) | |
download | ffmpeg-c51f090ff9658d6acc83e7ee7a507032b58cd07e.tar.gz |
lavfi: mv vf_select.c -> f_select.c
The file now contains also an audio select implementation. Also move the
aselect/select documentation from video filters to the multimedia filters
section.
Diffstat (limited to 'doc/filters.texi')
-rw-r--r-- | doc/filters.texi | 268 |
1 files changed, 134 insertions, 134 deletions
diff --git a/doc/filters.texi b/doc/filters.texi index d7af64a81c..1043911f2c 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -3506,140 +3506,6 @@ scale='min(500\, iw*3/2):-1' @end example @end itemize -@section aselect, select -Select frames to pass in output. - -It accepts in input an expression, which is evaluated for each input -frame. If the expression is evaluated to a non-zero value, the frame -is selected and passed to the output, otherwise it is discarded. - -The expression can contain the following constants: - -@table @option -@item n -the sequential number of the filtered frame, starting from 0 - -@item selected_n -the sequential number of the selected frame, starting from 0 - -@item prev_selected_n -the sequential number of the last selected frame, NAN if undefined - -@item TB -timebase of the input timestamps - -@item pts -the PTS (Presentation TimeStamp) of the filtered video frame, -expressed in @var{TB} units, NAN if undefined - -@item t -the PTS (Presentation TimeStamp) of the filtered video frame, -expressed in seconds, NAN if undefined - -@item prev_pts -the PTS of the previously filtered video frame, NAN if undefined - -@item prev_selected_pts -the PTS of the last previously filtered video frame, NAN if undefined - -@item prev_selected_t -the PTS of the last previously selected video frame, NAN if undefined - -@item start_pts -the PTS of the first video frame in the video, NAN if undefined - -@item start_t -the time of the first video frame in the video, NAN if undefined - -@item pict_type @emph{(video only)} -the type of the filtered frame, can assume one of the following -values: -@table @option -@item I -@item P -@item B -@item S -@item SI -@item SP -@item BI -@end table - -@item interlace_type @emph{(video only)} -the frame interlace type, can assume one of the following values: -@table @option -@item PROGRESSIVE -the frame is progressive (not interlaced) -@item TOPFIRST -the frame is top-field-first -@item BOTTOMFIRST -the frame is bottom-field-first -@end table - -@item consumed_sample_n @emph{(audio only)} -the number of selected samples before the current frame - -@item samples_n @emph{(audio only)} -the number of samples in the current frame - -@item sample_rate @emph{(audio only)} -the input sample rate - -@item key -1 if the filtered frame is a key-frame, 0 otherwise - -@item pos -the position in the file of the filtered frame, -1 if the information -is not available (e.g. for synthetic video) - -@item scene @emph{(video only)} -value between 0 and 1 to indicate a new scene; a low value reflects a low -probability for the current frame to introduce a new scene, while a higher -value means the current frame is more likely to be one (see the example below) - -@end table - -The default value of the select expression is "1". - -Some examples follow: - -@example -# select all frames in input -select - -# the above is the same as: -select=1 - -# skip all frames: -select=0 - -# select only I-frames -select='eq(pict_type\,I)' - -# select one frame every 100 -select='not(mod(n\,100))' - -# select only frames contained in the 10-20 time interval -select='gte(t\,10)*lte(t\,20)' - -# select only I frames contained in the 10-20 time interval -select='gte(t\,10)*lte(t\,20)*eq(pict_type\,I)' - -# select frames with a minimum distance of 10 seconds -select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)' - -# use aselect to select only audio frames with samples number > 100 -aselect='gt(samples_n\,100)' -@end example - -Complete example to create a mosaic of the first scenes: - -@example -ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png -@end example - -Comparing @var{scene} against a value between 0.3 and 0.5 is generally a sane -choice. - @section setdar, setsar The @code{setdar} filter sets the Display Aspect Ratio for the filter @@ -4768,6 +4634,140 @@ tools. Below is a description of the currently available multimedia filters. +@section aselect, select +Select frames to pass in output. + +It accepts in input an expression, which is evaluated for each input +frame. If the expression is evaluated to a non-zero value, the frame +is selected and passed to the output, otherwise it is discarded. + +The expression can contain the following constants: + +@table @option +@item n +the sequential number of the filtered frame, starting from 0 + +@item selected_n +the sequential number of the selected frame, starting from 0 + +@item prev_selected_n +the sequential number of the last selected frame, NAN if undefined + +@item TB +timebase of the input timestamps + +@item pts +the PTS (Presentation TimeStamp) of the filtered video frame, +expressed in @var{TB} units, NAN if undefined + +@item t +the PTS (Presentation TimeStamp) of the filtered video frame, +expressed in seconds, NAN if undefined + +@item prev_pts +the PTS of the previously filtered video frame, NAN if undefined + +@item prev_selected_pts +the PTS of the last previously filtered video frame, NAN if undefined + +@item prev_selected_t +the PTS of the last previously selected video frame, NAN if undefined + +@item start_pts +the PTS of the first video frame in the video, NAN if undefined + +@item start_t +the time of the first video frame in the video, NAN if undefined + +@item pict_type @emph{(video only)} +the type of the filtered frame, can assume one of the following +values: +@table @option +@item I +@item P +@item B +@item S +@item SI +@item SP +@item BI +@end table + +@item interlace_type @emph{(video only)} +the frame interlace type, can assume one of the following values: +@table @option +@item PROGRESSIVE +the frame is progressive (not interlaced) +@item TOPFIRST +the frame is top-field-first +@item BOTTOMFIRST +the frame is bottom-field-first +@end table + +@item consumed_sample_n @emph{(audio only)} +the number of selected samples before the current frame + +@item samples_n @emph{(audio only)} +the number of samples in the current frame + +@item sample_rate @emph{(audio only)} +the input sample rate + +@item key +1 if the filtered frame is a key-frame, 0 otherwise + +@item pos +the position in the file of the filtered frame, -1 if the information +is not available (e.g. for synthetic video) + +@item scene @emph{(video only)} +value between 0 and 1 to indicate a new scene; a low value reflects a low +probability for the current frame to introduce a new scene, while a higher +value means the current frame is more likely to be one (see the example below) + +@end table + +The default value of the select expression is "1". + +Some examples follow: + +@example +# select all frames in input +select + +# the above is the same as: +select=1 + +# skip all frames: +select=0 + +# select only I-frames +select='eq(pict_type\,I)' + +# select one frame every 100 +select='not(mod(n\,100))' + +# select only frames contained in the 10-20 time interval +select='gte(t\,10)*lte(t\,20)' + +# select only I frames contained in the 10-20 time interval +select='gte(t\,10)*lte(t\,20)*eq(pict_type\,I)' + +# select frames with a minimum distance of 10 seconds +select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)' + +# use aselect to select only audio frames with samples number > 100 +aselect='gt(samples_n\,100)' +@end example + +Complete example to create a mosaic of the first scenes: + +@example +ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png +@end example + +Comparing @var{scene} against a value between 0.3 and 0.5 is generally a sane +choice. + @section asendcmd, sendcmd Send commands to filters in the filtergraph. |