0
点赞
收藏
分享

微信扫一扫

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

想溜了的蜗牛 2022-01-24 阅读 120

现在对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文件是一定要存在的,生成的效果文件如下:

在这里插入图片描述

举报

相关推荐

0 条评论