11/19/2025

Add a logo or image watermark to video with FFmpeg overlay. Includes bottom-right positioning, scaling, opacity notes, quality settings, and common fixes.

How to Add an Image Watermark to Video with FFmpeg

Use FFmpeg's overlay filter to place a logo, PNG watermark, badge, or image on top of a video. This is different from a text watermark, which uses the drawtext filter.

For the short command page, see Add Image Watermark with FFmpeg. For a form-based command builder, use the Add Image Watermark tool.

Bottom-Right Logo Watermark

ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=W-w-20:H-h-20" -c:v libx264 -crf 23 -preset medium -c:a copy watermarked.mp4

This places logo.png 20 pixels from the bottom-right corner.

What the Options Mean

Option Meaning
-i input.mp4 Main video input.
-i logo.png Watermark image input.
overlay=W-w-20:H-h-20 Places the logo near the bottom-right corner.
W and H Width and height of the main video.
w and h Width and height of the watermark image.
-c:a copy Copies the original audio stream.

Common Positions

Position Overlay expression
Top-left overlay=20:20
Top-right overlay=W-w-20:20
Bottom-left overlay=20:H-h-20
Bottom-right overlay=W-w-20:H-h-20
Center overlay=(W-w)/2:(H-h)/2

Resize the Watermark Image

If the logo is too large, scale it before overlaying:

ffmpeg -i input.mp4 -i logo.png -filter_complex "[1:v]scale=120:-1[logo];[0:v][logo]overlay=W-w-20:H-h-20" -c:v libx264 -crf 23 -preset medium -c:a copy watermarked.mp4

This scales the logo to 120 pixels wide and keeps its aspect ratio.

Does Adding a Watermark Reduce Quality?

Adding an image watermark changes the video frames, so FFmpeg must re-encode the video. Use CRF to control quality:

ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=W-w-20:H-h-20" -c:v libx264 -crf 20 -preset medium -c:a copy watermarked.mp4

Lower CRF means better quality and a larger file.

Common Problems

The logo is too large.
Use the scale variant and set a smaller width such as 80, 120, or 160.

The watermark background is not transparent.
Use a PNG image with transparency. JPG does not support transparency.

The output file is too large.
Use CRF 23-28, or compress the result with the Compress Video tool.

I want a text watermark, not a logo.
Use the text watermark guide.

Related FFmpeg Pages

Related tool

Add Image Watermark with FFmpeg

Generate FFmpeg overlay commands to add a logo or PNG watermark to a video.

Open the command generator