How to add transparent watermark in center of a video with ffmpeg?

前端 未结 1 738
佛祖请我去吃肉
佛祖请我去吃肉 2020-11-22 15:05

I am currently using these commands:

Top left corner
ffmpeg –i inputvideo.avi -vf \"movie=watermarklogo.png [watermark]; [in][watermark] overlay=10:10 [out]\         


        
相关标签:
1条回答
  • 2020-11-22 15:50

    Examples to add a watermark / logo image on video using the overlay filter.

    Centered

    ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" -codec:a copy output.mp4
    

    or with the shortened overlay options:

    overlay=(W-w)/2:(H-h)/2
    

    Top left

    This is the easy one because the default, if you provide no options to overlay, is to place the image in the top left.

    This example adds 5 pixels of padding so the image is not touching the edges:

    overlay=5:5
    

    Top right

    With 5 pixels of padding:

    overlay=main_w-overlay_w-5:5
    

    or with the shortened options:

    overlay=W-w-5:5
    

    Bottom right

    With 5 pixels of padding:

    overlay=main_w-overlay_w-5:main_h-overlay_h-5
    

    or with the shortened options:

    overlay=W-w-5:H-h-5
    

    Bottom left

    With 5 pixels of padding:

    overlay=5:main_h-overlay_h
    

    or with the shortened options:

    overlay=5:H-h-5
    

    Transparency / opacity / alpha

    Example to make watermark 50% transparent using the format and colorchannelmixer filters:

    ffmpeg -i input.mp4 -i watermark.jpg -filter_complex "[1]format=rgba,colorchannelmixer=aa=0.5[logo];[0][logo]overlay=(W-w)/2:(H-h)/2:format=auto,format=yuv420p" -c:a copy output.mp4
    

    Improved quality

    Using the format=auto option in the overlay filter can make PNG watermarks look better:

    ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=5:H-h-5:format=auto,format=yuv420p" -c:a copy output.mp4
    

    Note the addition of the format filter (yes, same name as the option, but a standalone filter) to reset it to YUV 4:2:0 which is needed for MP4 output. Remove ,format=yuv420p if you are not outputting MP4.

    Scale watermark in relation to main video

    Use the scale2ref filter:

    Example to make logo 10% (1/10) the size of the main video:

    ffmpeg -i input.mp4 -i watermark.png -filter_complex "[1][0]scale2ref=w=oh*mdar:h=ih*0.1[logo][video];[video][logo]overlay=5:H-h-5" -c:a copy output.mp4
    
    0 讨论(0)
提交回复
热议问题