You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

517 lines
14KB

  1. @chapter Audio Filters
  2. @c man begin AUDIO FILTERS
  3. When you configure your FFmpeg build, you can disable any of the
  4. existing filters using --disable-filters.
  5. The configure output will show the audio filters included in your
  6. build.
  7. Below is a description of the currently available audio filters.
  8. @section anull
  9. Pass the audio source unchanged to the output.
  10. @c man end AUDIO FILTERS
  11. @chapter Video Filters
  12. @c man begin VIDEO FILTERS
  13. When you configure your FFmpeg build, you can disable any of the
  14. existing filters using --disable-filters.
  15. The configure output will show the video filters included in your
  16. build.
  17. Below is a description of the currently available video filters.
  18. @section crop
  19. Crop the input video to @var{out_w}:@var{out_h}:@var{x}:@var{y}.
  20. The parameters are expressions containing the following constants:
  21. @table @option
  22. @item E, PI, PHI
  23. the corresponding mathematical approximated values for e
  24. (euler number), pi (greek PI), PHI (golden ratio)
  25. @item x, y
  26. the computed values for @var{x} and @var{y}. They are evaluated for
  27. each new frame.
  28. @item in_w, in_h
  29. the input width and heigth
  30. @item iw, ih
  31. same as @var{in_w} and @var{in_h}
  32. @item out_w, out_h
  33. the output (cropped) width and heigth
  34. @item ow, oh
  35. same as @var{out_w} and @var{out_h}
  36. @item n
  37. the number of input frame, starting from 0
  38. @item pos
  39. the position in the file of the input frame, NAN if unknown
  40. @item t
  41. timestamp expressed in seconds, NAN if the input timestamp is unknown
  42. @end table
  43. The @var{out_w} and @var{out_h} parameters specify the expressions for
  44. the width and height of the output (cropped) video. They are
  45. evaluated just at the configuration of the filter.
  46. The default value of @var{out_w} is "in_w", and the default value of
  47. @var{out_h} is "in_h".
  48. The expression for @var{out_w} may depend on the value of @var{out_h},
  49. and the expression for @var{out_h} may depend on @var{out_w}, but they
  50. cannot depend on @var{x} and @var{y}, as @var{x} and @var{y} are
  51. evaluated after @var{out_w} and @var{out_h}.
  52. The @var{x} and @var{y} parameters specify the expressions for the
  53. position of the top-left corner of the output (non-cropped) area. They
  54. are evaluated for each frame. If the evaluated value is not valid, it
  55. is approximated to the nearest valid value.
  56. The default value of @var{x} is "(in_w-out_w)/2", and the default
  57. value for @var{y} is "(in_h-out_h)/2", which set the cropped area at
  58. the center of the input image.
  59. The expression for @var{x} may depend on @var{y}, and the expression
  60. for @var{y} may depend on @var{x}.
  61. Follow some examples:
  62. @example
  63. # crop the central input area with size 100x100
  64. crop=100:100
  65. # crop the central input area with size 2/3 of the input video
  66. "crop=2/3*in_w:2/3*in_h"
  67. # crop the input video central square
  68. crop=in_h
  69. # delimit the rectangle with the top-left corner placed at position
  70. # 100:100 and the right-bottom corner corresponding to the right-bottom
  71. # corner of the input image.
  72. crop=in_w-100:in_h-100:100:100
  73. # crop 10 pixels from the lefth and right borders, and 20 pixels from
  74. # the top and bottom borders
  75. "crop=in_w-2*10:in_h-2*20"
  76. # keep only the bottom right quarter of the input image
  77. "crop=in_w/2:in_h/2:in_w/2:in_h/2"
  78. # crop height for getting Greek harmony
  79. "crop=in_w:1/PHI*in_w"
  80. # trembling effect
  81. "crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(n/10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(n/7)"
  82. # erratic camera effect depending on timestamp and position
  83. "crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(t*10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(t*13)"
  84. # set x depending on the value of y
  85. "crop=in_w/2:in_h/2:y:10+10*sin(n/10)"
  86. @end example
  87. @section fifo
  88. Buffer input images and send them when they are requested.
  89. This filter is mainly useful when auto-inserted by the libavfilter
  90. framework.
  91. The filter does not take parameters.
  92. @section format
  93. Convert the input video to one of the specified pixel formats.
  94. Libavfilter will try to pick one that is supported for the input to
  95. the next filter.
  96. The filter accepts a list of pixel format names, separated by ":",
  97. for example "yuv420p:monow:rgb24".
  98. The following command:
  99. @example
  100. ./ffmpeg -i in.avi -vf "format=yuv420p" out.avi
  101. @end example
  102. will convert the input video to the format "yuv420p".
  103. @section frei0r
  104. Apply a frei0r effect to the input video.
  105. To enable compilation of this filter you need to install the frei0r
  106. header and configure FFmpeg with --enable-frei0r.
  107. The filter supports the syntax:
  108. @example
  109. @var{filter_name}:@var{param1}:@var{param2}:...:@var{paramN}
  110. @end example
  111. @var{filter_name} is the name to the frei0r effect to load. If the
  112. environment variable @env{FREI0R_PATH} is defined, the frei0r effect
  113. is searched in each one of the directories specified by the colon
  114. separated list in @env{FREIOR_PATH}, otherwise in the standard frei0r
  115. paths, which are in this order: @file{HOME/.frei0r-1/lib/},
  116. @file{/usr/local/lib/frei0r-1/}, @file{/usr/lib/frei0r-1/}.
  117. @var{param1}, @var{param2}, ... , @var{paramN} specify the parameters
  118. for the frei0r effect.
  119. A frei0r effect parameter can be a boolean (whose values are specified
  120. with "y" and "n"), a double, a color (specified by the syntax
  121. @var{R}/@var{G}/@var{B}, @var{R}, @var{G}, and @var{B} being float
  122. numbers from 0.0 to 1.0) or by an @code{av_parse_color()} color
  123. description), a position (specified by the syntax @var{X}/@var{Y},
  124. @var{X} and @var{Y} being float numbers) and a string.
  125. The number and kind of parameters depend on the loaded effect. If an
  126. effect parameter is not specified the default value is set.
  127. Some examples follow:
  128. @example
  129. # apply the distort0r effect, set the first two double parameters
  130. frei0r=distort0r:0.5:0.01
  131. # apply the colordistance effect, takes a color as first parameter
  132. frei0r=colordistance:0.2/0.3/0.4
  133. frei0r=colordistance:violet
  134. frei0r=colordistance:0x112233
  135. # apply the perspective effect, specify the top left and top right
  136. # image positions
  137. frei0r=perspective:0.2/0.2:0.8/0.2
  138. @end example
  139. For more information see:
  140. @url{http://piksel.org/frei0r}
  141. @section hflip
  142. Flip the input video horizontally.
  143. For example to horizontally flip the video in input with
  144. @file{ffmpeg}:
  145. @example
  146. ffmpeg -i in.avi -vf "hflip" out.avi
  147. @end example
  148. @section noformat
  149. Force libavfilter not to use any of the specified pixel formats for the
  150. input to the next filter.
  151. The filter accepts a list of pixel format names, separated by ":",
  152. for example "yuv420p:monow:rgb24".
  153. The following command:
  154. @example
  155. ./ffmpeg -i in.avi -vf "noformat=yuv420p, vflip" out.avi
  156. @end example
  157. will make libavfilter use a format different from "yuv420p" for the
  158. input to the vflip filter.
  159. @section null
  160. Pass the video source unchanged to the output.
  161. @section ocv_smooth
  162. Apply smooth transform using libopencv.
  163. To enable this filter install libopencv library and headers and
  164. configure FFmpeg with --enable-libopencv.
  165. The filter accepts the following parameters:
  166. @var{type}:@var{param1}:@var{param2}:@var{param3}:@var{param4}.
  167. @var{type} is the type of smooth filter to apply, and can be one of
  168. the following values: "blur", "blur_no_scale", "median", "gaussian",
  169. "bilateral". The default value is "gaussian".
  170. @var{param1}, @var{param2}, @var{param3}, and @var{param4} are
  171. parameters whose meanings depend on smooth type. @var{param1} and
  172. @var{param2} accept integer positive values or 0, @var{param3} and
  173. @var{param4} accept float values.
  174. The default value for @var{param1} is 3, the default value for the
  175. other parameters is 0.
  176. These parameters correspond to the parameters assigned to the
  177. libopencv function @code{cvSmooth}. Refer to the official libopencv
  178. documentation for the exact meaning of the parameters:
  179. @url{http://opencv.willowgarage.com/documentation/c/image_filtering.html}
  180. @section pad
  181. Add paddings to the input image, and places the original input at the
  182. given coordinates @var{x}, @var{y}.
  183. It accepts the following parameters:
  184. @var{width}:@var{height}:@var{x}:@var{y}:@var{color}.
  185. Follows the description of the accepted parameters.
  186. @table @option
  187. @item width, height
  188. Specify the size of the output image with the paddings added. If the
  189. value for @var{width} or @var{height} is 0, the corresponding input size
  190. is used for the output.
  191. The default value of @var{width} and @var{height} is 0.
  192. @item x, y
  193. Specify the offsets where to place the input image in the padded area
  194. with respect to the top/left border of the output image.
  195. The default value of @var{x} and @var{y} is 0.
  196. @item color
  197. Specify the color of the padded area, it can be the name of a color
  198. (case insensitive match) or a 0xRRGGBB[AA] sequence.
  199. The default value of @var{color} is "black".
  200. @end table
  201. @section pixdesctest
  202. Pixel format descriptor test filter, mainly useful for internal
  203. testing. The output video should be equal to the input video.
  204. For example:
  205. @example
  206. format=monow, pixdesctest
  207. @end example
  208. can be used to test the monowhite pixel format descriptor definition.
  209. @section scale
  210. Scale the input video to @var{width}:@var{height} and/or convert the image format.
  211. For example the command:
  212. @example
  213. ./ffmpeg -i in.avi -vf "scale=200:100" out.avi
  214. @end example
  215. will scale the input video to a size of 200x100.
  216. If the input image format is different from the format requested by
  217. the next filter, the scale filter will convert the input to the
  218. requested format.
  219. If the value for @var{width} or @var{height} is 0, the respective input
  220. size is used for the output.
  221. If the value for @var{width} or @var{height} is -1, the scale filter will
  222. use, for the respective output size, a value that maintains the aspect
  223. ratio of the input image.
  224. The default value of @var{width} and @var{height} is 0.
  225. @section slicify
  226. Pass the images of input video on to next video filter as multiple
  227. slices.
  228. @example
  229. ./ffmpeg -i in.avi -vf "slicify=32" out.avi
  230. @end example
  231. The filter accepts the slice height as parameter. If the parameter is
  232. not specified it will use the default value of 16.
  233. Adding this in the beginning of filter chains should make filtering
  234. faster due to better use of the memory cache.
  235. @section unsharp
  236. Sharpen or blur the input video.
  237. It accepts the following parameters:
  238. @var{luma_msize_x}:@var{luma_msize_y}:@var{luma_amount}:@var{chroma_msize_x}:@var{chroma_msize_y}:@var{chroma_amount}
  239. Negative values for the amount will blur the input video, while positive
  240. values will sharpen. All parameters are optional and default to the
  241. equivalent of the string '5:5:1.0:0:0:0.0'.
  242. @table @option
  243. @item luma_msize_x
  244. Set the luma matrix horizontal size. It can be an integer between 3
  245. and 13, default value is 5.
  246. @item luma_msize_y
  247. Set the luma matrix vertical size. It can be an integer between 3
  248. and 13, default value is 5.
  249. @item luma_amount
  250. Set the luma effect strength. It can be a float number between -2.0
  251. and 5.0, default value is 1.0.
  252. @item chroma_msize_x
  253. Set the chroma matrix horizontal size. It can be an integer between 3
  254. and 13, default value is 0.
  255. @item chroma_msize_y
  256. Set the chroma matrix vertical size. It can be an integer between 3
  257. and 13, default value is 0.
  258. @item luma_amount
  259. Set the chroma effect strength. It can be a float number between -2.0
  260. and 5.0, default value is 0.0.
  261. @end table
  262. @example
  263. # Strong luma sharpen effect parameters
  264. unsharp=7:7:2.5
  265. # Strong blur of both luma and chroma parameters
  266. unsharp=7:7:-2:7:7:-2
  267. # Use the default values with @command{ffmpeg}
  268. ./ffmpeg -i in.avi -vf "unsharp" out.mp4
  269. @end example
  270. @section vflip
  271. Flip the input video vertically.
  272. @example
  273. ./ffmpeg -i in.avi -vf "vflip" out.avi
  274. @end example
  275. @c man end VIDEO FILTERS
  276. @chapter Video Sources
  277. @c man begin VIDEO SOURCES
  278. Below is a description of the currently available video sources.
  279. @section buffer
  280. Buffer video frames, and make them available to the filter chain.
  281. This source is mainly intended for a programmatic use, in particular
  282. through the interface defined in @file{libavfilter/vsrc_buffer.h}.
  283. It accepts the following parameters:
  284. @var{width}:@var{height}:@var{pix_fmt_string}
  285. All the parameters need to be explicitely defined.
  286. Follows the list of the accepted parameters.
  287. @table @option
  288. @item width, height
  289. Specify the width and height of the buffered video frames.
  290. @item pix_fmt_string
  291. A string representing the pixel format of the buffered video frames.
  292. It may be a number corresponding to a pixel format, or a pixel format
  293. name.
  294. @end table
  295. For example:
  296. @example
  297. buffer=320:240:yuv410p
  298. @end example
  299. will instruct the source to accept video frames with size 320x240 and
  300. with format "yuv410p". Since the pixel format with name "yuv410p"
  301. corresponds to the number 6 (check the enum PixelFormat definition in
  302. @file{libavutil/pixfmt.h}), this example corresponds to:
  303. @example
  304. buffer=320:240:6
  305. @end example
  306. @section color
  307. Provide an uniformly colored input.
  308. It accepts the following parameters:
  309. @var{color}:@var{frame_size}:@var{frame_rate}
  310. Follows the description of the accepted parameters.
  311. @table @option
  312. @item color
  313. Specify the color of the source. It can be the name of a color (case
  314. insensitive match) or a 0xRRGGBB[AA] sequence, possibly followed by an
  315. alpha specifier. The default value is "black".
  316. @item frame_size
  317. Specify the size of the sourced video, it may be a string of the form
  318. @var{width}x@var{heigth}, or the name of a size abbreviation. The
  319. default value is "320x240".
  320. @item frame_rate
  321. Specify the frame rate of the sourced video, as the number of frames
  322. generated per second. It has to be a string in the format
  323. @var{frame_rate_num}/@var{frame_rate_den}, an integer number, a float
  324. number or a valid video frame rate abbreviation. The default value is
  325. "25".
  326. @end table
  327. For example the following graph description will generate a red source
  328. with an opacity of 0.2, with size "qcif" and a frame rate of 10
  329. frames per second, which will be overlayed over the source connected
  330. to the pad with identifier "in".
  331. @example
  332. "color=red@@0.2:qcif:10 [color]; [in][color] overlay [out]"
  333. @end example
  334. @section nullsrc
  335. Null video source, never return images. It is mainly useful as a
  336. template and to be employed in analysis / debugging tools.
  337. It accepts as optional parameter a string of the form
  338. @var{width}:@var{height}, where @var{width} and @var{height} specify the size of
  339. the configured source.
  340. The default values of @var{width} and @var{height} are respectively 352
  341. and 288 (corresponding to the CIF size format).
  342. @c man end VIDEO SOURCES
  343. @chapter Video Sinks
  344. @c man begin VIDEO SINKS
  345. Below is a description of the currently available video sinks.
  346. @section nullsink
  347. Null video sink, do absolutely nothing with the input video. It is
  348. mainly useful as a template and to be employed in analysis / debugging
  349. tools.
  350. @c man end VIDEO SINKS