Center Image Watermark on Video Using FFmpeg
This article provides a quick, step-by-step guide on how to position
an image watermark precisely in the center of a video using FFmpeg’s
overlay filter. You will learn the exact command-line
syntax and the mathematical formulas required to achieve a perfectly
centered overlay, regardless of the video or image resolution.
To place an image watermark in the exact center of a video, you must calculate the horizontal and vertical offset by subtracting the watermark’s dimensions from the video’s dimensions and dividing the result by two.
The FFmpeg Command
Use the following basic command structure to center your watermark:
ffmpeg -i input_video.mp4 -i watermark.png -filter_complex "overlay=(W-w)/2:(H-h)/2" output_video.mp4How the Formula Works
The overlay filter uses specific variables to calculate
the positioning coordinates (x and y):
W(ormain_w): The width of the main input video.H(ormain_h): The height of the main input video.w(oroverlay_w): The width of the input watermark image.h(oroverlay_h): The height of the input watermark image.
By setting x=(W-w)/2, FFmpeg subtracts
the watermark’s width from the video’s width and halves the remaining
space, centering the image horizontally.
By setting y=(H-h)/2, FFmpeg does the
same with the heights, centering the image vertically.
Handling Video Encoding Options
To ensure high-quality output and fast encoding, you can specify a video codec (like H.264) and audio copy settings:
ffmpeg -i input_video.mp4 -i watermark.png -filter_complex "overlay=(W-w)/2:(H-h)/2" -c:v libx264 -crf 23 -c:a copy output_video.mp4-c:v libx264: Encodes the output video using the H.264 codec.-crf 23: Sets the Constant Rate Factor for quality (lower values mean higher quality; 18–28 is the standard range).-c:a copy: Copies the original audio stream without re-encoding to save processing time.