zoukankan      html  css  js  c++  java
  • 基于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/

  • 相关阅读:
    matplotlib数据可视化之柱形图
    xpath排坑记
    Leetcode 100. 相同的树
    Leetcode 173. 二叉搜索树迭代器
    Leetcode 199. 二叉树的右视图
    Leetcode 102. 二叉树的层次遍历
    Leetcode 96. 不同的二叉搜索树
    Leetcode 700. 二叉搜索树中的搜索
    Leetcode 2. Add Two Numbers
    Leetcode 235. Lowest Common Ancestor of a Binary Search Tree
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/11512851.html
Copyright © 2011-2022 走看看