现在对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/includeName: 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.mp4fontfile本为E:\learn\ffmpeg\ffmpeg_x264_freetype_static\bin\zihun152hao-jijiachaojihei.ttf,前面加\表示转义。

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

  1. 如何在Mac上的视频中添加音乐?

    自己录的视频没有音乐伴奏总是不完整的,怎样添加上音乐呢?在本篇文章中,我为大家介绍的是如何在Mac上的视频中添加音乐? 在这里,我们向您展示如何在Mac计算机上将音乐添加到视频中.这些工具可离线使用, ...

  2. 【Groovy】编译时元编程 ( 编译时方法拦截 | 在 MyASTTransformation#visit 方法中进行方法拦截 )

    文章目录 一.在 MyASTTransformation#visit 方法中进行方法拦截 二.完整代码示例及进行编译时处理的编译过程 1.Groovy 脚本 Groovy.groovy 2.ASTTr ...

  3. 使用 gradle 在编译时动态设置 Android resValue / BuildConfig / Manifes中lt;meta-datagt;变量的值...

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/49247815 文章出自:薛瑄的博客 你也能够查看我的其它同类文章.也会让你有一定的 ...

  4. blender3.3在视频中添加文本

    使用blender 3.3导入视频文件之后(可参看参考资料[1]),有时需要在视频中添加自己想要添加的文字内容.本文简单介绍blender 3.3在视频中添加文字的方法和步骤,仅供参考. 添加文本 在 ...

  5. 怎么给视频添加字幕?三款视频字幕添加工具帮你轻松解决

    当我们在社交媒体上分享自己制作的视频时,可能会想要为视频添加字幕.因为这可以让观看视频的小伙伴更好地理解和欣赏我们的视频内容,还可以帮助提升我们的影响力和吸引力.但是手动添加字幕可能需要花费大量的时间 ...

  6. 怎样使用Movavi Video Editor Plus 在视频中添加文本?

    如果您想让您的剪辑更加个性化.艺术化甚至幽默,那么在视频中添加文本是个好主意.使用 Movavi Video Editor Plus,只需简单几步即可完成. 1.下载并安装程序. 下载 Movavi ...

  7. Facebook创建新机器学习系统,用于对视频中的人脸进行“去识别化”

    据外媒报道,Facebook AI Research表示,其已经创建了一种机器学习系统,用于对视频中的个脸进行去识别化(de-identification ).像D-ID这样的初创公司和许多先前的作品 ...

  8. 在视频中添加图片,图片中添加视频,制作画中画效果

    在剪辑中,画中画是一种非常常见的视频表现手法,它在视频或图片上添加一个比尺寸小的剪辑画面,那么这些剪辑画面可以进行缩放,加强视频内容的生动性.下面一起来试试吧. 方法1:视频中添加图片 在媒体梦工厂的 ...

  9. 游戏建模控件Aspose.3D for Java最新版支持在Wavefront OBJ中添加点云支持

    Aspose.3D for Java是独立的Gameware和计算机辅助设计(CAD)API,用于处理3D文件.同时支持大多数流行的3D文件格式,应用程序可以轻松创建,读取,转换和修改3D文件.此外, ...

最新文章

  1. Dockerfile文件命令详解
  2. 输入对5层网络迭代次数的影响
  3. 组件kdsvrmgr无法正常工作_汽轮机润滑油冷油器六通阀的工作原理及现阶段存在的问题...
  4. “雏鹰”的最近感想……
  5. 基于matlab的局放仿真,基于MATLAB/Simulink系统仿真权威指南
  6. 黄页前台联动菜单修改时不能显示,要重新选择|没样式
  7. 有关C语言中有符号/无符号数混合运算的小问题
  8. soapUI中多个TestCase之间传递参数
  9. 【POJ16553107】树的重心——点分治的准备
  10. 熬之滴水穿石:Spring--精简的J2EE(5)
  11. Python报错AssertionError: can only test a child process
  12. 新闻 - 被遗忘的“活化石”:BBS没落中求生
  13. 揭秘你所看不见的技术原理 - 广告推荐系统
  14. 互联网中---外包的含义
  15. 微信小程序,画布中,根据需要展示的图片比例,获取能截取原图中的最大图片尺寸,并且不变形展示
  16. three.js重新计算UV
  17. 02-Lynda备用
  18. 1983. 【普及组模拟赛】手机(mobile)
  19. 基于mediapipe和opencv的手势控制电脑鼠标
  20. 学习《Linux就该这么学》第九课

热门文章

  1. 怎么让Alpha1s/1p同时唱歌和跳舞
  2. 【网络互联设备】网络杂谈(15)之网桥、路由器、网关、集线器、交换机、中继器的作用与概念
  3. 广外计算机语言学bbs,2020年广外英语语言文学(外语语言学及应用语言学)高分学姐经验分享...
  4. Android--模拟器尺寸大小修改
  5. 处理 Driver class not found
  6. 马云:不吃苦,你要青春干嘛?
  7. 大数据应用之双色球算奖平台总体设计数据规模估算篇 - 张子良
  8. sql删除数据的三种方式
  9. 【RK3399 Ubuntu】基于rk3399的lxde的lubuntu桌面移植适配记录之第三步:Ubuntu根文件系统的桌面化分析和选用
  10. 普通人开快手小店挣钱吗?快手小店怎么提现?