How we checked these commands: every command on this page was run with FFmpeg 8.1.2 on macOS on 24 October 2026, on short generated test clips, and the output was inspected with ffprobe (resolution, frame rate, duration, streams). Results on your files can differ if your FFmpeg build or input files are different.
The overlay filter places the second input (your logo) on top of the first (your video). In the position values, W and H are the video size and w and h are the logo size. The video is re-encoded, and -c:a copy keeps the audio as it is.
Logo in the top-left corner
ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=10:10" -c:a copy output-watermarked.mp4
The logo sits 10 pixels from the top and left edges at its original size.
Logo scaled to 200 px wide in the bottom-right corner
ffmpeg -i input.mp4 -i logo.png -filter_complex "[1:v]scale=200:-1[wm];[0:v][wm]overlay=W-w-10:H-h-10" -c:a copy output-watermarked-br.mp4
The labels matter. [1:v] is the logo (the second input) and [0:v] is the video. An earlier version of this page left out [1:v]. When we tested it, FFmpeg shrank the video itself to 200 pixels wide and pasted it into the corner of the full-size video; the logo was not scaled at all. The command above scales only the logo.
Semi-transparent watermark in the centre
ffmpeg -i input.mp4 -i logo.png -filter_complex "[1:v]format=rgba,colorchannelmixer=aa=0.5[wm];[0:v][wm]overlay=(W-w)/2:(H-h)/2" -c:a copy output-watermarked-center.mp4
colorchannelmixer=aa=0.5 multiplies the logo's opacity by 0.5. Lower values make it fainter.
Other positions
| Top-right | overlay=W-w-10:10 |
| Bottom-left | overlay=10:H-h-10 |
| Bottom-right | overlay=W-w-10:H-h-10 |
| Centre | overlay=(W-w)/2:(H-h)/2 |
The options are described in the overlay filter documentation.