ffmpeg # macOS 添加drawtext支持

2024-04-23 17:48
文章标签 ffmpeg 支持 macos drawtext

本文主要是介绍ffmpeg # macOS 添加drawtext支持,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

brew install freetype
brew install fontconfig
brew install fribidi

查看安装之后,可以用brew info查看安装信息。比如:

localhost:FFmpeg Private$ brew info freetype
freetype: stable 2.10.0 (bottled)
Software library to render fonts
https://www.freetype.org/
/usr/local/Cellar/freetype/2.10.0 (61 files, 2.3MB) *Poured from bottle on 2019-03-30 at 22:43:32
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/freetype.rb
==> Dependencies
Required: libpng ✔
==> Analytics
install: 190,060 (30 days), 402,661 (90 days), 1,470,828 (365 days)
install_on_request: 9,541 (30 days), 17,319 (90 days), 67,023 (365 days)
build_error: 0 (30 days)

可以看到freetype的作用是: Software library to render fonts, 版本是: stable 2.10.0

然后编译时加入:

--enable-libfreetype \
--enable-libfontconfig \
--enable-libfribidi \

后续就可以利用:

 -vf drawtext=fontcolor=white:fontsize=40:text='Hello World':x=0:y=100

来添加文字,默认文字是: "/Library/Fonts/Microsoft/Verdana.ttf",等价于:

 -vf drawtext=fontcolor=white:fontsize=40:text='Hello World':x=0:y=100:fontfile='/Library/Fonts/Microsoft/Verdana.ttf'

可以用fontfile来指定特定字体,字体存放在"/Library/Fonts/Microsoft/"中:

localhost:FFmpeg Private$ ls /Library/Fonts/Microsoft/
Abadi MT Condensed Extra Bold       Kaiti.ttf
Abadi MT Condensed Light        Kino
Andale Mono             Lucida Blackletter
Arial Black             Lucida Bright
Arial Bold Italic.ttf           Lucida Calligraphy
Arial Bold.ttf              Lucida Console.ttf
Arial Italic.ttf            Lucida Fax
Arial Narrow                Lucida Handwriting
Arial Rounded Bold          Lucida Sans
Arial.ttf               Lucida Sans Typewriter
Baskerville Old Face            Lucida Sans Unicode.ttf
Batang.ttf              MS Gothic.ttf
Bauhaus 93              MS Mincho.ttf
Bell MT                 MS PGothic.ttf
Bernard MT Condensed            MS PMincho.ttf
Book Antiqua                MS Reference Sans Serif.ttf
Bookman Old Style           MS Reference Specialty.ttf
Bookshelf Symbol 7.ttf          MT Extra
Braggadocio             Marlett.ttf
Britannic Bold              Matura Script Capitals
Brush Script.ttf            Meiryo Bold Italic.ttf
Calibri Bold Italic.ttf         Meiryo Bold.ttf
Calibri Bold.ttf            Meiryo Italic.ttf
Calibri Italic.ttf          Meiryo.ttf
Calibri.ttf             Microsoft Yahei.ttf
Calisto MT              MingLiU-ExtB.ttf
Cambria Bold Italic.ttf         MingLiU.ttf
Cambria Bold.ttf            MingLiU_HKSCS-ExtB.ttf
Cambria Italic.ttf          Mistral
Cambria Math.ttf            Modern No. 20
Cambria.ttf             Monotype Corsiva
Candara Bold Italic.ttf         Monotype Sorts
Candara Bold.ttf            News Gothic MT
Candara Italic.ttf          Onyx
Candara.ttf             PMingLiU-ExtB.ttf
Century                 PMingLiU.ttf
Century Gothic              Palatino Linotype Bold Italic.ttf
Century Schoolbook          Palatino Linotype Bold.ttf
Colonna                 Palatino Linotype Italic.ttf
Comic Sans MS               Palatino Linotype.ttf
Consolas Bold Italic.ttf        Perpetua Bold Italic.ttf
Consolas Bold.ttf           Perpetua Bold.ttf
Consolas Italic.ttf         Perpetua Italic.ttf
Consolas.ttf                Perpetua Titling MT
Constantia Bold Italic.ttf      Perpetua.ttf
Constantia Bold.ttf         Playbill
Constantia Italic.ttf           Rockwell
Constantia.ttf              Rockwell Extra Bold
Cooper Black                STHUPO.TTF
Copperplate Gothic Bold         STLITI.ttf
Copperplate Gothic Light        STXINGKA.ttf
Corbel Bold Italic.ttf          STXINWEI.ttf
Corbel Bold.ttf             STZHONGS.ttf
Corbel Italic.ttf           SimHei.ttf
Corbel.ttf              SimSun-ExtB.ttf
Curlz MT                SimSun.ttf
Desdemona               Stencil
Edwardian Script ITC            Tahoma
Engravers MT                TaiLeb.ttf
Eurostile               Times New Roman Bold Italic.ttf
Fangsong.ttf                Times New Roman Bold.ttf
Footlight Light             Times New Roman Italic.ttf
Franklin Gothic Book Italic.ttf     Times New Roman.ttf
Franklin Gothic Book.ttf        Trebuchet MS
Franklin Gothic Medium Italic.ttf   Tw Cen MT Bold Italic.ttf
Franklin Gothic Medium.ttf      Tw Cen MT Bold.ttf
Gabriola.ttf                Tw Cen MT Italic.ttf
Garamond                Tw Cen MT.ttf
Georgia                 Verdana Bold Italic.ttf
Gill Sans MT Bold Italic.ttf        Verdana Bold.ttf
Gill Sans MT Bold.ttf           Verdana Italic.ttf
Gill Sans MT Italic.ttf         Verdana.ttf
Gill Sans MT.ttf            Wide Latin
Gill Sans Ultra Bold            Wingdings 2.ttf
Gloucester MT Extra Condensed       Wingdings 3.ttf
Goudy Old Style             Wingdings.ttf
Gulim.ttf               himalaya.ttf
Haettenschweiler            mingliu_hkscs.ttf
Harrington              monbaiti.ttf
Impact                  msyi.ttf
Imprint MT Shadow           taile.ttf

最重要的就是开始配置的时候;

刚开始安装freetype的时候没什么问题,安装fontconfig的时候就发现依赖里没有依赖到pkg-config,然后就重新安装了一遍pkg-config,然后还是不行,最后重启了一下电脑,还是不行;

无奈只添加了freetype;先用着再慢慢搞吧。

貌似只是macOS编译成功了,Android的并没有,明天继续查吧。。。

最后,非常感谢大佬:fmpeg # macOS 添加drawtext支持

这篇关于ffmpeg # macOS 添加drawtext支持的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/929477

相关文章

macOS升级后SVN升级

问题 svn: error: The subversion command line tools are no longer provided by Xcode. 解决 sudo chown -R $(whoami) /usr/local/Cellar brew install svn

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

ffmpeg面向对象-待定

1.常用对象 rtsp拉流第一步都是avformat_open_input,其入参可以看下怎么用: AVFormatContext *fmt_ctx = NULL;result = avformat_open_input(&fmt_ctx, input_filename, NULL, NULL); 其中fmt_ctx 如何分配内存的?如下 int avformat_open_input(

Golang支持平滑升级的HTTP服务

前段时间用Golang在做一个HTTP的接口,因编译型语言的特性,修改了代码需要重新编译可执行文件,关闭正在运行的老程序,并启动新程序。对于访问量较大的面向用户的产品,关闭、重启的过程中势必会出现无法访问的情况,从而影响用户体验。 使用Golang的系统包开发HTTP服务,是无法支持平滑升级(优雅重启)的,本文将探讨如何解决该问题。 一、平滑升级(优雅重启)的一般思路 一般情况下,要实现平滑

sqlite不支持中文排序,采用java排序

方式一 不支持含有重复字段进行排序 /*** sqlite不支持中文排序,改用java排序* 根据指定的对象属性字段,排序对象集合,顺序* @param list* @param field* @return*/public static List sortListByField(List<?> list,String field){List temp = new ArrayList(

一款支持同一个屏幕界面同时播放多个视频的视频播放软件

GridPlayer 是一款基于 VLC 的免费开源跨平台多视频同步播放工具,支持在一块屏幕上同时播放多个视频。其主要功能包括: 多视频播放:用户可以在一个窗口中同时播放任意数量的视频,数量仅受硬件性能限制。支持多种格式和流媒体:GridPlayer 支持所有由 VLC 支持的视频格式以及流媒体 URL(如 m3u8 链接)。自定义网格布局:用户可以配置播放器的网格布局,以适应不同的观看需求。硬

Science Robotics 首尔国立大学研究团队推出BBEX外骨骼,实现多维力量支持!

重复性举起物体可能会对脊柱和背部肌肉造成损伤,由此引发的腰椎损伤是工业环境等工作场所中一个普遍且令人关注的问题。为了减轻这类伤害,有研究人员已经研发出在举起任务中为工人提供辅助的背部支撑装置。然而,现有的这类装置通常无法在非对称性的举重过程中提供多维度的力量支持。此外,针对整个人体脊柱的设备安全性验证也一直是一个缺失的环节。 据探索前沿科技边界,传递前沿科技成果的X-robot投稿,来自首尔国立

FFmpeg系列-视频解码后保存帧图片为ppm

在正常开发中遇到花屏时怎么处理呢?可以把解码后的数据直接保存成帧图片保存起来,然后直接看图片有没有花屏来排除是否是显示的问题,如果花屏,则代表显示无问题,如果图片中没有花屏,则可以往显示的方向去排查了。 void saveFrame(AVFrame* pFrame, int width, int height, int iFrame){FILE *pFile;char szFilename[

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密 可以将表情,动物,水果,表情,手势,猫语,兽语,狗语,爱语,符号,数字,字母,加密和解密 可以将文字、字母、数字、代码、标点符号等内容转换成新的文字形式,通过简单的文字以不同的排列顺序来表达不同的内容 源码截图: https://www.httple.net/152649.html

QtC++截图支持窗口获取

介绍 在截图工具中你会发现,接触到窗口后会自动圈出目标窗口,个别强大一点的还能进行元素识别可以自动圈出元素,那么今天简单分析一下QTc++如何获取窗口并圈出当前鼠标下的窗口。 介绍1.如何获取所有窗口2.比较函数3.实现窗口判断 结尾 1.如何获取所有窗口 1.我们需要调用windows接口EnumWindowsProc回调函数来获取所有顶级窗口,需要包含windows.