ffmpeg编译时添加freetype支持,用于在视频中添加文字

现在对ffmpeg的学习到了往视频指定位置添加对应文字的时候了。
发现添加文字,用的是drawtext滤镜,需要在编译ffmpeg的时候,添加–enable-libfreetype。

为此先编译freetype,由于本人ffmpeg使用vs2017编译,并且为了最终的成果物中的文件尽量少,本人编译出的是静态库,此处的是freetype也需要用vs2017进行静态库编译。

读者可以按照如下路径,找到freetype.sln,原来的工程是2010的,此处直接用vs2017打开即可,微软会自动转成vs2017工程。
在这里插入图片描述

打开sln后,如下所示,本人进行的是64位版本的静态库编译,编译出的成果物为freetype.lib。
在这里插入图片描述

现在进入到编译ffmpeg的阶段,先将上一步编译的freetype的lib库文件和头文件拷贝到mingw的相应位置,这个位置自己定,然后再用pkgconfig进行头文件路径和lib库路径进行配置即可,为此需要freetype.pc这样的pkgconfig文件,刚才我用vs2017编译时,没看到对应的freetype.pc这样的文件。

为此先在linux下编译freetype,编译后,看到名字为freetype2.pc。

在这里插入图片描述

这里面需要将头文件和库路径对应上即可,本人在mingw下的freetype放到了/usr/local路径下,其中头文件路径如下:
在这里插入图片描述
库文件如下:
在这里插入图片描述
pkgconfig文件夹里面就是freetype2.pc(从linux的编译成果物中拷贝而来),内容如下:

prefix=/usr/local
exec_prefix=/usr/local
libdir=/usr/local/lib
includedir=/usr/local/include

Name: FreeType 2
URL: https://freetype.org
Description: A free, high-quality, and portable font engine.
Version: 24.1.18
Requires:
Requires.private: zlib
Libs: -L${libdir} -lfreetype
Libs.private: -lbz2
Cflags: -I${includedir}/freetype2

下面是ffmpeg的编译时的配置。

./configure --toolchain=msvc --arch=x86_64 --disable-debug --enable-gpl --enable-libfreetype --enable-libx264 --extra-cflags="-I/usr/local/x264/include" --extra-ldflags="-LIBPATH:/usr/local/x264/lib" --prefix=/home/ffmpeg_x264_freetype_static

编译后,生成了ffmpeg.exe文件,下面我们找个文件进行测试,命令行如下:

ffmpeg -i 2022-01-16T12-18-13.mp4 -vf "drawtext=fontcolor=white:fontsize=80:fontfile=zihun152hao-jijiachaojihei.ttf:text='你好,我来了':x=100:y=100" output.mp4

执行目录的内容如下所示:
在这里插入图片描述
这个字体ttf文件是一定要存在的,生成的效果文件如下:

在这里插入图片描述

上面的ttf文件要跟ffmpeg在同一个目录下,如果不是呢,比如ttf文件在其他位置,可以通过全路径查找

ffmpeg -i E:\learn\ffmpeg\ffmpeg_x264_freetype_static\bin\2022-01-16T12-18-13.mp4 -vf "drawtext=fontcolor=white:fontsize=80:fontfile='E\:\\learn\\ffmpeg\\ffmpeg_x264_freetype_static\\bin\\zihun152hao-jijiachaojihei.ttf':text='你好,我来了':x=100:y=100" output.mp4

fontfile本为E:\learn\ffmpeg\ffmpeg_x264_freetype_static\bin\zihun152hao-jijiachaojihei.ttf,前面加\表示转义。
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值