You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

升级FFmpeg 7后drawtext模块缺失,编译libharfbuzz适配FFmpeg的方法求助

升级FFmpeg 7后drawtext模块缺失,编译libharfbuzz适配FFmpeg的方法求助

老哥我太懂你这种升级后工具链突然罢工的烦躁了!FFmpeg 7确实对drawtext滤镜的依赖做了调整——现在它必须同时依赖libfreetypelibharfbuzz才能正常启用,光开freetype已经不够了。我之前踩过几乎一模一样的坑,给你一步步捋清楚怎么解决:

  • 先搞定libharfbuzz的编译依赖
    不同系统安装依赖的命令不一样,挑你对应的来:

    • Debian/Ubuntu系列:sudo apt-get install libglib2.0-dev libfreetype6-dev libpng-dev
    • CentOS/RHEL系列:sudo yum install glib2-devel freetype-devel libpng-devel
    • macOS(用Homebrew的话):brew install glib freetype libpng
  • 编译安装libharfbuzz

    1. 拉取官方最新稳定版源码:git clone https://github.com/harfbuzz/harfbuzz.git
    2. 进入源码目录:cd harfbuzz
    3. 配置编译参数(这里指定安装到系统默认的/usr/local,确保pkg-config能找到):./configure --prefix=/usr/local --enable-freetype --enable-glib
    4. 编译并安装:make -j$(nproc)-j$(nproc)是用满CPU核心加速编译),然后sudo make install
  • 让pkg-config识别到harfbuzz
    编译完后可能需要更新pkg-config的搜索路径,执行:export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
    验证一下是否生效:输入pkg-config --modversion harfbuzz,如果能输出具体的版本号,就说明没问题了

  • 重新编译FFmpeg
    配置FFmpeg的时候一定要同时加上--enable-libfreetype--enable-libharfbuzz,举个例子,你的配置命令大概是这样:
    ./configure --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libfreetype --enable-libharfbuzz [你之前用到的其他编译选项]
    之后正常编译安装:make -j$(nproc)sudo make install

另外提个小注意点:如果你是把harfbuzz装在自定义路径(不是/usr/local),那还要记得设置LD_LIBRARY_PATH环境变量,确保FFmpeg编译时能找到对应的库文件。

备注:内容来源于stack exchange,提问作者Panama Jack

火山引擎 最新活动