Configure FFmpeg Overlay Coordinates and Display Time
The FFmpeg overlay filter is a powerful tool for
superimposing images, logos, or secondary videos onto a main video
stream. This guide explains how to precisely position your overlay using
X and Y coordinates and control its visibility over time using timeline
editing parameters.
Position Overlay with Coordinates
The overlay filter positions the top-left corner of the
overlay source (the second input) onto the main video source (the first
input) using x and y coordinates.
FFmpeg provides shorthand variables to calculate these positions
dynamically: * main_w or W: Width of the main
video. * main_h or H: Height of the main
video. * overlay_w or w: Width of the overlay
source. * overlay_h or h: Height of the
overlay source.
Common Positioning Formulas
- Top-Left Corner (Default):
x=0:y=0 - Top-Right Corner:
x=W-w:y=0 - Bottom-Right Corner (with 10px padding):
x=W-w-10:y=H-h-10 - Centered:
x=(W-w)/2:y=(H-h)/2
Command Example
To place a logo in the top-right corner with a 10-pixel padding:
ffmpeg -i main.mp4 -i logo.png -filter_complex "overlay=x=W-w-10:y=10" output.mp4Control Overlay Timing
To make the overlay appear and disappear at specific times, use the
enable option. This option utilizes FFmpeg’s timeline
editing feature, where the variable t represents the
current time in seconds.
Common Timing Functions
- Show between specific seconds:
enable='between(t,start_second,end_second)' - Show after a specific second:
enable='gte(t,start_second)'
Command Example
To display the overlay only from second 5 to second 15 of the video:
ffmpeg -i main.mp4 -i logo.png -filter_complex "overlay=enable='between(t,5,15)'" output.mp4Combining Coordinates and Timing
To configure both the location and the active duration of the
overlay, combine the parameters inside the overlay filter
by separating them with a colon (:).
Command Example
To position an overlay in the bottom-right corner (with 15px padding) and have it display only between seconds 10 and 20:
ffmpeg -i main.mp4 -i logo.png -filter_complex "overlay=x=W-w-15:y=H-h-15:enable='between(t,10,20)'" output.mp4