FFmpeg基础知识 - 如何添加静态水印、动态水印教程

admin

FFmpeg

众所周知,FFmpeg可以为视频添加水印,主要用来标记视频所属标记,有时也可以兼顾美观,你可能没想到,用FFmpeg可以添加文字水印,可以添加图片水印,可以添加视频水印,还可以添加动态图片水印,可以实现水印的透明,还可以添加多个水印,而这一切都可以通过FFmpeg的诸多filter(可以理解为滤镜)来实现。今天我们来看看FFmpeg如何给图片或视频添加静态和动态的水印吧。

软件:FFmpeg

平台:Windows

静态水印

1.给视频/图片添加文字水印

ffmpeg -i inputfile -vf "drawtext=fontfile=C\\:/windows/fonts/simhei.ttf:text='龙年大吉':fontsize=100:x=(w-tw)/2+50:y=(h-th)/2-50:fontcolor=white@0.5:shadowy=2" -y outfile

-i:表示指定输入文件

inputfile:源文件(视频或图片),需要加水印的文件

-vf:表示设置视频滤镜(vf即video filter得缩写)

fontfile:字体位置(C\\:/windows/fonts/simhei.ttf),汉字可以使用系统字体

text:水印字体

fontcolor:文字颜色

-y:复盖原有文件

outfile:输出的文件



2.给视频/图片添加图片水印

ffmpeg -i inputfile -vf  "movie=marklogo.png,scale= 100: 100[watermask]; [in] [watermask] overlay=50:50 [out]" -y outfile

movie:添加滤镜

marklogo:添加的水印图片

scale:水印图片大小,水印长度*水印的高度

overlay:表示滤镜位置,从左上角开始计算


动态水印

动态水印根据时间或输入帧更新水印图片的位置。下面介绍3种水印的实现。

漂移水印

漂移水印会在視窗内连续轨迹移动。实现利用的是随帧数变化赋值不同的x轴,y轴坐标。需要用到变化的量,这里使用随时间变量t。

ffmpeg -i main.mp4 -i overlay.png -filter_complex "overlay=x='abs(main_w-main_w*mod(t/4,2))':y='abs(main_h*mod(t/8,1))'" output.mp4

abs表达式返回绝对值。mod计算两数的余数,目的是限制x,y的最大坐标值。mod参数使用了t变量,即视频的时间值。这里水印将在X轴方向来回弹,y轴上从0到主視窗高度重复。


跳跃水印

跳跃水印的移动轨迹是不连续的,间隔一段时间会出现在視窗的某个位置。实现上可以把变量t往上取整。这样水印在t是整数时才会变化。

ffmpeg -i main.mp4 -i overlay.png -filter_complex "overlay=x='mod(main_h/0.8*ceil(t),main_w)':y='mod(main_w/3*ceil(t/2),main_h)'" output.mp4

同样使用mod防止水印超出視窗。


旋转水印

动态的旋转水印和静态旋转水印都是使用rotate过滤器,不同的是动态需要指定旋转循环以及输出时机。

ffmpeg -i main.mp4 -loop 1 -i overlay.png -filter_complex [1:v]rotate=a='t*PI':ow='rotw(PI/4)':oh='roth(PI/4)':fillcolor='none'[out],[0:v][out]overlay=x=100:y=100:shortest=1  output.mp4


由于水印是静态图片,除了赋值变化的弧度外,还需要通过loop过滤器实现帧循环。

设置循环后水印的帧数变成无限循环,这时输出会一直生成帧。通过指定shortest强制在最短的输入(main.mp4)终止时输出。

水印图片旋转后同样需要重新指定输出宽度高度,以及背景色。

小结:

动态水印使用动态的变量更新水印的x,y坐标。可以使用时间t或帧序数n等。


文章版权声明:除非注明,否则均为十八码原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,165人围观)

还没有评论,来说两句吧...

目录[+]