Draw text string or text from specified file on top of video using the libfreetype library.
To enable compilation of this filter you need to configure FFmpeg with
--enable-libfreetype
.
The filter also recognizes strftime() sequences in the provided text and expands them accordingly. Check the documentation of strftime().
The filter accepts parameters as a list of key=value pairs, separated by ":".
The description of the accepted parameters follows.
- fontfile
-
The font file to be used for drawing text. Path must be included. This parameter is mandatory.
- text
-
The text string to be drawn. The text must be a sequence of UTF-8 encoded characters. This parameter is mandatory if no file is specified with the parameter textfile.
- textfile
-
A text file containing text to be drawn. The text must be a sequence of UTF-8 encoded characters.
This parameter is mandatory if no text string is specified with the parameter text.
If both text and textfile are specified, an error is thrown.
- x, y
-
The offsets where text will be drawn within the video frame. Relative to the top/left border of the output image.
The default value of x and y is 0.
- fontsize
-
The font size to be used for drawing text. The default value of fontsize is 16.
- fontcolor
-
The color to be used for drawing fonts. Either a string (e.g. "red") or in 0xRRGGBB[AA] format (e.g. "0xff000033"), possibly followed by an alpha specifier. The default value of fontcolor is "black".
- boxcolor
-
The color to be used for drawing box around text. Either a string (e.g. "yellow") or in 0xRRGGBB[AA] format (e.g. "0xff00ff"), possibly followed by an alpha specifier. The default value of boxcolor is "white".
- box
-
Used to draw a box around text using background color. Value should be either 1 (enable) or 0 (disable). The default value of box is 0.
- shadowx, shadowy
-
The x and y offsets for the text shadow position with respect to the position of the text. They can be either positive or negative values. Default value for both is "0".
- shadowcolor
-
The color to be used for drawing a shadow behind the drawn text. It can be a color name (e.g. "yellow") or a string in the 0xRRGGBB[AA] form (e.g. "0xff00ff"), possibly followed by an alpha specifier. The default value of shadowcolor is "black".
- ft_load_flags
-
Flags to be used for loading the fonts.
The flags map the corresponding flags supported by libfreetype, and are a combination of the following values:
- default
- no_scale
- no_hinting
- render
- no_bitmap
- vertical_layout
- force_autohint
- crop_bitmap
- pedantic
- ignore_global_advance_width
- no_recurse
- ignore_transform
- monochrome
- linear_design
- no_autohint
- end table
Default value is "render".
For more information consult the documentation for the FT_LOAD_* libfreetype flags.
- tabsize
-
The size in number of spaces to use for rendering the tab. Default value is 4.
For example the command:
drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
will draw "Test Text" with font FreeSerif, using the default values for the optional parameters.
The command:
drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\ x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
will draw ’Test Text’ with font FreeSerif of size 24 at position x=100 and y=50 (counting from the top-left corner of the screen), text is yellow with a red box around it. Both the text and the box have an opacity of 20%.
Note that the double quotes are not necessary if spaces are not used within the parameter list.
For more information about libfreetype, check: http://www.freetype.org/.