使用ffmpeg给视频添加图片及文字水印

1. 准备工具

1.MacBook Pro
2.homebrew
3.ffmpeg

2.工具安装

homebrew安装

说起homebrew确实是Mac上非常好用的一个工具,像什么CocoPods,node,ffmpeg等等安装都不在话下。不过因为用的是公司的电脑,之前不知道咋折腾把Mac的管理权限都给弄没了,啥都安装不了。要解决此问题可以参考以下博客
Mac丢失管理员权限解决办法
homebrew安装命令

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

为Mac安装ffmpeg

使用ffmpeg命令一般有两种方式,第一种是自己编译ffmpeg源码,通过调用ffmpeg的main()函数来执行ffmpeg命令(以后有机会可以写个有关ios上使用ffmpeg命令的博客)。第二种是直接安装到Mac上,使用终端来管理。
使用homebrew安装ffmpeg

brew install ffmpeg

检查ffmpeg是否安装成功

brew info ffmpeg
ffmpeg相关信息

有关ffmpeg安装博客较多,这里就不在赘述。到这里使用ffmpeg给视频加水印的准备工作就完成了。

给视频加图片水印

相比给视频增加文字水印,图片水印相对简单一些。具体原因后面我会说明。
在视频右下角的添加图片水印

ffmpeg -i 仓库实景.mp4 -vf "movie=wenzi.png[watermark];[in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] " output.mp4

下面来说明一下这条命令中基本参数的含义

-i :一般表示输入
仓库实景.mp4:这里表示要处理的视频源
-vf:滤镜相关,视频裁剪,水印等等操作都需要它完成
wenzi.png: 要添加的水印图片地址
overlay:水印参数
main_w-overlay_w-10 : 水印在x轴的位置,也可以写成x=main_w-overlay_w-10
main_h-overlay_h-10:水印在y轴的位置

至于里面其他参数的意义如[watermark],我个人猜测可能是类似标记之类的东西,方便阅读的(ps:有了解的小伙伴可以告知一声哈)在ffmpeg的文档中也没有找到这个参数。

ffmpeg官方提供了另外一种添加图片水印的方法
在视频右下角的添加图片水印

ffmpeg -i input.mp4 -i logo.png -filter_complex 'overlay=main_w-overlay_w-10:main_h-overlay_h-10' output.mp4

在视频左下角添加图片水印

ffmpeg -i input.mp4 -i logo.png -filter_complex 'overlay=x=10:y=main_h-overlay_h-10' output.mp4

参数解析

-filter_complex: 相比-vf, filter_complex适合开发复杂的滤镜功能,如同时对视频进行裁剪并旋转。参数之间使用逗号(,)隔开即可
main_w:视频宽度
overlay_w: 要添加的图片水印宽度
main_h : 视频高度
overlay_h:要添加的图片水印宽度

ffmpeg官方文档实现:ffmpeg文档地址

给视频添加文字水印

在视频左上角添加一条白色字体的文字水印

ffmpeg -i input.mp4 -vf "drawtext=fontfile=simhei.ttf: text=‘技术是第一生产力’:x=10:y=10:fontsize=24:fontcolor=white:shadowy=2" output.mp4

参数说明

fontfile:字体类型
text:要添加的文字内容
fontsize:字体大小
fontcolor:字体颜色

然后,执行上面的命令。然鹅出现了以下错误

错误内容

这个错误是很明显的,直译过来就是缺失一种filter(滤镜),叫做drawtext。可是这个drawtext到底是个什么东西呢(PS:一开始受到一些误导我认为是因为本地缺少字体)ffmpeg文档里有一段对drawtext的介绍
drawtext

这里很明确的说了,drawtext用来在“视频顶部的指定文件中绘制文本字符串或文本”。如果想使用drawtext这个filter,在编译ffmpeg的时候就必须支持freetype。那么如何检查我们安装的ffmpeg是否支持freetype呢,好吧,现在让我们回到安装ffmpeg的地方。执行 ffmpeg是否安装成功的命令(brew info ffmpeg)里有如下信息。
ffmpeg支持列表

可以看到freetype是不支持的。那么剩下的就很明确了,配置ffmpeg的configure参数,让它支持freetype即可。
安装freetype

brew install freetype

安装ffmpeg

brew install ffmpeg --with-freetype 

已经安装过ffmpeg

brew reinstall ffmpeg --with-freetype

如果还是安装不上的话可以尝试先执行卸载第三方库的命令

brew uninstall freetype

暴力点甚至可以先卸载ffmpeg,再执行以上命令

brew uninstall ffmpeg

再来看看ffmpeg支持的类型


已经支持freetype了

接着再执行ffmpeg添加字体水印命令即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,117评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,963评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,897评论 0 240
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,805评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,208评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,535评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,797评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,493评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,215评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,477评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,988评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,325评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,971评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,807评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,544评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,455评论 2 266