The correct way to do this with recent ffmpeg is to use the overlay filter. The following command will place
watermark.png on top of
input.flv, with the upper-left corner of the watermark fifteen pixels to the right and ten pixels down from the upper-left corner of the main video:
ffmpeg -i input.flv -i watermark.png -filter_complex \
'[0:v][1:v]overlay=15:10[outv]' -map [outv] -map 0:a \
-c:a copy -c:v libx264 -crf 22 -preset veryfast output.mp4
Obviously, change 15 or 10 to whatever values you want.
There are also a few constants you may find useful, if you're putting watermarks on multiple videos with separate resolutions:
- W and H are the width and height of the main video (
- w and h are the width and height of the overlay video (
These can come in handy many times. For example, to place the watermark over the centre of the video, you could use:
Similarly, to centre the watermark over the upper-left sixth of the video:
For the lower-left sixth of the video:
You can pretty much do whatever you need to.
See the overlay filter documentation for more information.