Customising subtitle font and colors
Note: This tutorial is for advanced users, producing videos with Narakeet scripts. For basic information on how to control subtitles with videos created from presentations, check out How to add subtitles to video.
Subtitles and closed captions can help you engage the audience on social networks, where videos autoplay without sound, and to make the content accessible to disabled users. This tutorial explains the key customization options for closed captions/subtitles.
- Choose between overlay and embedded subtitles
- Using standard subtitle styles
- Specifying subtitle properties
- Samples and examples
- More information
Choose between overlay and embedded subtitles
There are two primary way of creating subtitles with Narakeet.
- You can generate an external subtitle track (in SubRip/SRT and Web Video Text Track/VTT formats). Many online video hosting and sharing platforms (such as YouTube, Facebook and LinkedIn) let you upload these files to take advantage of their native subtitle/closed captioning system.
- You can overlay the subtitles on top of the video permanently. This “burns” the subtitles into the video, obscuring part of the video frame.
The first option lets users choose whether to show or hide subtitles, and in many cases also lets users style subtitles themselves (they can choose the font size, type and colour in the video player).
The second option fixes the subtitles into the video, so they cannot be turned off or on. It’s better for publishing to platforms that do not have native subtitle/closed caption features (such as Twitter), or when you want to make sure the subtitles are always visible.
For overlaid subtitles, because Narakeet writes the subtitles directly into the video as images, users cannot style them directly. The subtitles normally show as white text with a black outline or background, to create enough contrast with video content. Narakeet automatically chooses an appropriate font size for the video frame to fit in roughly two lines of text, so that the captions do not obscure too much video content. This is suitable for most usages, but you can also customise it for your needs. For example, you can increase the font size or reduce the amount of text shown on the screen at any single time.
Using standard subtitle styles
There are three standard subtitle styles, which you can specify using the subtitles
header.
embed
: create an embedded subtitle track in the result video, and generate SRT and VTT files as separate downloads. Users can turn on/off subtitles in the video player, but a video player must support subtitles to show them.overlay
: burn the subtitles onto the video (permanently shown). Users cannot turn off these subtitles, but they work in all video players.overlay-background
: burn the subtitles onto the video, with a semi-transparent black background.none
: do not include any subtitles
To set one of the standard styles, use the style name as the value of the subtitles header. For example, the following script will turn on overlay with background subtitles:
---
size: 720p
subtitles: overlay-background
---
Where do you want to go for coffee?
![](pic.jpg)
The big difference between overlay
and overlay-background
is in how the contrasting background is shown. With outline
, a small border around the font gets shown in a contrasting color, as in the image below:
With outline-background
, the text is shown on a semi-transparent background box, as in the image below:
Specifying subtitle properties
You can set many subtitle properties directly in the header, such as colors and sizes. In that case, the subtitle property becomes a key-value map, and you must specify the mode
sub-property. With mode
, use either embed
or overlay
.
---
size: 720p
subtitles:
mode: overlay
# additional properties optionally
---
Where do you want to go for coffee?
![](pic.jpg)
Controlling the number of characters in a single frame
Narakeet breaks long narration lines into individual subtitles to avoid overcrowding a single video frame. The standard line break method allows between 130 and 140 characters on a screen.
It’s sometimes useful to reduce or increase the number of characters that can be shown in a single frame. For example, arabic script characters can get very long, so you may want to show fewer on a single frame. If you use a very large video frame and a small subtitle font, then increase the limit so you can show more text.
You can control the maximum breaking limit by setting the break property. For example, the following script will restrict subtitles to up to 30 characters in a single frame:
---
size: 720p
subtitles:
mode: overlay
break: 30
---
Where do you want to go for coffee?
![](pic.jpg)
Note that you can use the break property with overlay
and embed
subtitles. The other styling properties only apply to overlay
subtitles (since the video player itself controls the styling for embedded video tracks).
Changing the font size
Narakeet automatically chooses the font size depending on the video frame, to fit approximately two lines of text to a video frame. You can modify the font size by using the scale
property, and set it to a multiplier you would like to apply to the font size. Because this is a multiplier, 0.5 would produce a font half the normal size, and 2 would produce font twice the normal size. For example, the following script will show subtitles in twice the normal font size:
---
size: 720p
subtitles:
mode: overlay
scale: 2
---
Where do you want to go for coffee?
![](pic.jpg)
The result will look as in the image below:
For more precise control, you can also use the size
property and set it to a pixel font size. For example, the following script uses a 40 pixel font for subtitles:
---
size: 720p
subtitles:
mode: overlay
size: 40
---
Where do you want to go for coffee?
![](pic.jpg)
Note that you can use either the scale
or the size
property, but not both. We generally recommend using the scale
property, since it will adjust to the video frame. Use the size
property only when you absolutely want to control the text sizing, for example to fit it into some prepared background box on the video materials.
Changing the outline color
You can specify a color using CSS color names or hex codes. All standard web color names are supported (e.g. black or aqua), as well as RGB/A codes in the standard CSS format (# followed by 6 hex values RRGGBB or 8 hex values RRGGBBAA). Because the header is technically YAML, and YAML uses the hash symbol (#) as a comment marker, make sure to enclose RGB/A colors in quotes.
The following example will set the outline color to red.
---
size: 720p
subtitles:
mode: overlay
scale: 2
outline: red
---
Where do you want to go for coffee?
![](pic.jpg)
The output will look like the picture below:
Changing the background color
To show subtitles over a background box instead of using an outline, specify the background
property. Here is an example, setting the background to a highly transparent black (“#000000BB” means black color (RGB=000000) with BB as the alpha channel setting transparency.
---
size: 720p
subtitles:
mode: overlay
scale: 2
background: "#000000BB"
---
Where do you want to go for coffee?
![](pic.jpg)
The output will look like the picture below:
Note that you can either use the background
or the outline
color, but not both.
Changing the primary color
You can also change the primary font color - just remember to make the background contrasting. For example, we could use black font on semi-transparent white background. Using the RGBA hex code, #FFFFFF88 shows a white color (FFFFFF) with roughly 50% alpha-channel (88).
---
size: 720p
subtitles:
mode: overlay
scale: 2
color: black
background: "#FFFFFF88"
---
Where do you want to go for coffee?
![](pic.jpg)
The result will look like in the picture below:
Changing the font position
You can move the captions/subtitles to the top or the middle of the video frame, using the position
property. Valid options are middle
, top
and bottom
. By default, the captions will be shown at the bottom.
---
size: 720p
subtitles:
mode: overlay
position: middle
---
Where do you want to go for coffee?
![](pic.jpg)
Using a custom font
To use your own font file and get custom-shaped letters, use the font
property and set it to the name of a TrueType font file included with your project. For example, the header in the sample below will use a custom font file, set the captions in the middle of the video frame and use a huge font size, in the style of popular TikTok videos.
---
size: 1920x1080
subtitles:
mode: overlay
size: 40
break: 20
position: middle
font: Waltograph.TTF
---
Where do you want to go for coffee?
![](pic.jpg)
Samples and examples
Check out the following two projects on GitHubto see the key features explained in this tutorial in action
- subtitle-styling shows how to apply color and styling
- Tiktok-style Subtitled Videos shows how to apply positions and custom fonts
More information
For more information, check out the subtitles
header format documentation.