• 基于EasyNVR摄像机无插件直播流媒体服务器实现文字滤镜处理功能


    最近遇到有客户需要用ffmpeg对图像进行文字滤镜处理,增加各种文字效果,需要ffmpeg支持此功能,因此需要在编译ffmpeg时候加上此功能模块 –enable-libfreetype。

    针对此问题,我们进行了关于文字滤镜处理功能模块的开发工作,具体流程如下:

    添加freetype功能模块,由于默认ffmpeg是不支持freetype编解码的,freetype是第三方库,需要先下载编译生成库,然后在编译ffmpeg的时候添加此编译选项。

    步骤如下:
    1.编译生成freetype库:

    1)下载地址:
    wget http://download.savannah.gnu.org/releases/freetype/freetype-2.8.tar.gz或者从ffmpeg网站去下载
    https://johnvansickle.com/ffmpeg/release-source/
    2)编译freetype库

    tar -vxf freetype-2.8.tar.gz
    cd freetype-2.8
    ./configure  
    make
    make install
    

    3)安装完成后,默认安装到/usr/local/ 目录下,到/usr/local/lib/下查看libfreetype.so是否存在

    https://ffmpeg.org/ffmpeg-filters.html#drawboxffmpeg freetype使用示例

    2.安装ffmpeg

    1)官网下载 http://ffmpeg.org/download.html下载所需要版本代码,目前我们使用的是4.0.3
    http://www.ffmpeg.org/releases/ 各个历史版本下载

    2)下载完成后进行解压

    tar –vxf ffmpeg-4.0.3.tar.xz
    cd ffmpeg-4.0.3
    ./configure --enable-shared --disable-yasm --enable-libx264 --enable-gpl --enable-libfreetype
    

    *注意!!!重点问题,此处进行—enable-libfreetype 会有出现如下问题

    ERROR: freetype2 not found using pkg-config

    已经安装了freetype 库了,还是无法找到。

    从ffbuild/config.log 中看到是pk-config这个工具在查找一个*.pc的文件,比如freetype就查找的是freetype2.pc这个文件。

    从命令行模式进入到/usr/lib/和/usr/local/lib/下,查找是否有一个pkgconfig的文件夹,找到后,看是否有需要的哪个后缀名为pc的文件,如下图所

    存在查找的pc

    问题解决:

    1)执行export命令把这个路径export出来:
    export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/
    注意上述命令中是/usr/local/lib/pkgconfig,这个每个人的路径都不相同,不能设置错了。
    2)可以通过以下命令查看PKG_CONFIG_PATH值
    echo $PKG_CONFIG_PATH

    make
    make install

    3)默认安装到/usr/local/ 目录下,也可以通过–prefix=/usr/local/进行指定目录,一般默认即可

    4)查询下编译的ffmpeg是否包含freetype功能模块

    5)通过ldd 查询libavfilter.so 是否需要libfreetype.so 即可。

    为什么是查询libavfilter,因为libavfilter功能模块中使用了freetype

    6)如果需要增加其他外部第三方库,如增加libx264方法一样
    Ffmpeg也提供了需要的地方库的下载地址
    https://johnvansickle.com/ffmpeg/release-source/

  • 相关阅读:
    HTML页面跳转的5种方法
    ngixn配置
    redis秒杀
    php 设计模式
    MySQL之事务的四大特性
    [置顶] JNI之java传递数据给c语言
    jQuery 快速结束当前动画
    编绎OpenJDK
    CF#231DIV2:A Good Number
    CF#213DIV2:B The Fibonacci Segment
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/11512851.html
Copyright © 2020-2023  润新知