水印又叫作"watermark"
以前ffmpeg使用-vhook来调用某个库实现水印添加.后来被废弃.现在添加了-vfilters参数调用libavfilter库来添加水印.但是这个库一直到本文发表的时候文档以及安装方法都不是很完善.
首先要先获得libavfilter
因为,直接从ffmpeg的download页面下载的ffmpeg是不能编译出-vfilters参数的.有了-vfilters参数我们才能得到使用filter的机会.添加水印就是把影片加上一副图片么.当然所添加图片的背景色需要去掉,只留下图片的图案和字那是最完美的.不过这里先只说如何加上一附图片.至于去掉背景色先不说了.因为我还没有弄出来.
要想使用filter需要先下载SoC版本的libavfilter,这个下好后里边有一个checkout.sh脚本.脚本的内容很简单.主要就是下载特定版本的ffmpeg并且打补丁等等.
SoC版libavfilter下载方法:
svn checkout svn://svn.mplayerhq.hu/soc/libavfilter
得到libavfilter之后进入这个目录执行checkout.sh脚本.执行完毕libavfilter里边就有了ffmpeg目录了..进入ffmpeg然后编译:
./configure --enable-avfilter --enable-avfilter-lavf
--enable-avfilter和 --enable-avfilter-lavf两个参数都要加,尤其是加水印需要用到movie filter,这个就需要加上--enable-avfilter-lavf才能激活.而前一个libavfilter的README文档是教程要求加的.
剩下的就是make/make install了.
下面说说如何使用:
这个文档不多.可以说搜索就找不到文档(在我学习如何使用的时候就是这样子.包括外文文档,我用的是google)
最详细的文档都在SoC版本的libavfilter里变呢,里边有README文档和doc目录.
README主要讲解安装,doc目录主要是一些用法,用法讲解的比较简单.其实不够详细.再就是从网络上搜索各种用法了.也可以看看libavfilter库的那些源代码.
只说一种粗糙地加水印的方法:
用in.avi作为输入视频,out.avi作为输出视频,pp.png表示要添加的水印图片,是png格式的,
调整水印大小(scale = 50:50)和位置(overlay=0:0)
$ ffmpeg -i in.avi -s 240x320 -vfilters "movie=0:png:pp.png, scale = 50:50 [over1], [in] [over1] overlay=0:0 [out]" out.avi
好就到这里.唯一遗憾就是就是水印图片的背景色没有去除,看起来很粗糙.这一部分也许我以后会补上
以前ffmpeg使用-vhook来调用某个库实现水印添加.后来被废弃.现在添加了-vfilters参数调用libavfilter库来添加水印.但是这个库一直到本文发表的时候文档以及安装方法都不是很完善.
首先要先获得libavfilter
因为,直接从ffmpeg的download页面下载的ffmpeg是不能编译出-vfilters参数的.有了-vfilters参数我们才能得到使用filter的机会.添加水印就是把影片加上一副图片么.当然所添加图片的背景色需要去掉,只留下图片的图案和字那是最完美的.不过这里先只说如何加上一附图片.至于去掉背景色先不说了.因为我还没有弄出来.
要想使用filter需要先下载SoC版本的libavfilter,这个下好后里边有一个checkout.sh脚本.脚本的内容很简单.主要就是下载特定版本的ffmpeg并且打补丁等等.
SoC版libavfilter下载方法:
svn checkout svn://svn.mplayerhq.hu/soc/libavfilter
得到libavfilter之后进入这个目录执行checkout.sh脚本.执行完毕libavfilter里边就有了ffmpeg目录了..进入ffmpeg然后编译:
./configure --enable-avfilter --enable-avfilter-lavf
--enable-avfilter和 --enable-avfilter-lavf两个参数都要加,尤其是加水印需要用到movie filter,这个就需要加上--enable-avfilter-lavf才能激活.而前一个libavfilter的README文档是教程要求加的.
剩下的就是make/make install了.
下面说说如何使用:
这个文档不多.可以说搜索就找不到文档(在我学习如何使用的时候就是这样子.包括外文文档,我用的是google)
最详细的文档都在SoC版本的libavfilter里变呢,里边有README文档和doc目录.
README主要讲解安装,doc目录主要是一些用法,用法讲解的比较简单.其实不够详细.再就是从网络上搜索各种用法了.也可以看看libavfilter库的那些源代码.
只说一种粗糙地加水印的方法:
用in.avi作为输入视频,out.avi作为输出视频,pp.png表示要添加的水印图片,是png格式的,
调整水印大小(scale = 50:50)和位置(overlay=0:0)
$ ffmpeg -i in.avi -s 240x320 -vfilters "movie=0:png:pp.png, scale = 50:50 [over1], [in] [over1] overlay=0:0 [out]" out.avi
好就到这里.唯一遗憾就是就是水印图片的背景色没有去除,看起来很粗糙.这一部分也许我以后会补上