在input.mp4左上角10,10的位置添加水印图片logo.png,同时在根目录产出一个watermark.mp4的视频
ffmpeg -i D:\opt\input.mp4 -i D:\opt\logo.png -filter_complex “overlay=10:10” D:\opt\watermark.mp4
添加水印同时设置水印大小(缩放)功能命令
ffmpeg -i D:\opt\input.mp4 -i D:\opt\logo.png -filter_complex "[1:v]scale=120:120[s];[0:v][s]overlay=10:10" D:\opt\out.mp4
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay output.mp4
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=W-w output.mp4 // 右上角
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=0:H-h output.mp4 // 左下角
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=W-w:H-h output.mp4 // 右下角
ffmpeg -i input.mp4 -vf delogo=1:1:144:144:1 output.mp4 // -vf delogo=x:y:w:h[:show], x:y离左上角坐标,设0报错,w:h logo宽高,show设置一个绿色的矩形,默认0
一次转换完成,字幕水印同时添加。(水印提前制作好大小,没有缩放)
ffmpeg -i input.mp4 -i warter.png -filter_complex "[0:v][1:v]overlay[logo];[logo]subtitles=av1.srt[sub]" -map [sub] -map 0:a output.mp4
如果想添加水印时设置水印大小
ffmpeg -i input.mp4 -i warter.png -filter_complex "[1:v]scale=120:120[simg];[0:v][simg]overlay[logo];[logo]subtitles=av1.srt[sub]" -map [sub] -map 0:a output.mp4
解析
[1:v]这个里头两个参数,1表示的是操作对象的编号。在本例中0就是原始视频文件input.mp4,warter.png,后面如果还有第二张水印图片,就是2,另一个参数v表示操作对象里的视频信息(video的缩写)。 simg是表示经过第一层过滤器后的对象名字(自定义)。分号前面第一句[1:v]scale=120:120[simg],表示对输入参数中编号为1的图片(warter.png)进行大小缩放,设置为120x120大小,输出图片名字为simg。第二句[0:v][simg]overlay[logo]表示把simg和原始输入视频编号为0,视频,进行叠加,输出视频名字为logo。注意后一个对象叠加到前一个上,后一个对象在上层, 即simg在上。
另外:
水印移动:可以添加参数overlay=0+t*10:0,表示水印随着时间移动x轴坐标。
特定时间显示水印:overlay=x='if(gte(t,2),10,NAN)':0;
注解: if(条件,条件为true时的值,条件为false时的值), 表达式gte(x,y)。如果x大于等于y则表达式的值为1,反之为0。
if(gte(t,2),10,NAN)的意思就是,当时间大于等于2秒时,水印x位置为10,反之不显示水印。
示例:
ffmpeg -i input.mp4 -i warter.png -filter_complex "[1:v]scale=120:120[s];[0:v][s]overlay=x='if(gte(t,0), 0+mod(t,5)*20, NAN)':y=0[logo];[logo]subtitles=av1.srt[sub]" -map [sub] -map 0:a output.mp4
显示效果见下图:
以MAC 为例命令行,支持汉字水印,字体文件更加自己系统自行选择
ffmpeg -y -i 1.mp4 -vf "drawtext=fontfile=/System/Library/Fonts/PingFang.ttc: text='公众号\:影音探长':x=10:y=10:fontsize=16:fontcolor=DarkGreen:shadowy=2" out.mp4
win10, 微软雅黑加粗,copy /c/Windows/Fonts/msyhbd.ttc 到ffmpeg目录
./ffmpeg.exe -y -i 1.mp4 -vf "drawtext=fontfile=msyhbd.ttc: text='公众号\: xxx':x=80:y=32:fontsize=18:fontcolor=White" out.mp4