• Linux下安装ffmpeg动态库,并导入Qt


    1. 下载

    ffmpeg下载地址:http://ffmpeg.org/releases/

    2. ffmpeg编译安装

    首先,将下载好的ffmpeg压缩包解压

    sudo tar -zxvf  ffmpeg_4.4.2.orig.tar.xz
    
    • 1

    然后进入解压后的文件夹,打开终端,设置安装配置,配置文件是configure,在编译和安装之前,需要配置一下,不然无法执行编译指令在这里插入图片描述
    配置configure的指令为:

    sudo ./configure --enable-gpl --enable-libx264 --prefix=/usr/local/ffmpeg-build --enable-shared
    
    • 1

    其中,gpllibx264是额外的库,可根据情况选择,默认都是disable
    --prefix:指定安装路径,如果不指定,头文件会默认安装在/usr/local/include,库会默认在/usr/local/lib
    --enable-shared:选择编译动态库,如果不加上这一句,编译出来的只有静态库(.a),加上之后才有动态库(.so

    配置完以后,执行编译和安装命令:

    make -j8 && sudo make install
    
    • 1

    其中,make -j8:多线程编译的意思,加快编译速度,当然也要看电脑最大线程数。
    make install:安装各种头文件和库,要加上sudo,不然建不了文件夹。

    编译以及安装完之后,在/usr/local/ffmpeg-build文件夹下会多出四个文件夹,

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    如果没有指定安装路径,bin文件夹下的两个文件会默认至/usr/local/bin/
    include文件夹下的内容会默认在/usr/local/include/
    lib文件夹下的内容会默认在/usr/local/lib/
    share文件夹下的内容默认在/usr/local/share/

    除此之外,还需要注意一点,每次编译之前都需要配置configure,上次的配置在此次编译无效。

    3. 添加环境变量

    打开ffmpeg(安装后的)下的bin,执行

    ./ffmpeg -version
    
    • 1

    会出现报错信息:在这里插入图片描述
    这是因为ffmpeg库没有链接到系统库里边,建立链接有两种办法,第一种在环境变量中添加ffmpeg库路径,第二种是在/etc/ld.so.conf.d文件夹下建立ffmpeg.conf,推荐使用第一种,更简单快捷一些,第二种权当记录在此。

    第一种方法:

    将ffmpeg添加到环境变量,首先执行:

    sudo gedit /etc/profile
    
    • 1

    在文件末尾添加ffmpeg主程序路径和库路径:

    export PATH=$PATH:/usr/local/ffmpeg-build/bin
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ffmpeg-build/lib
    
    • 1
    • 2

    保存后,再执行

    source /etc/profile
    
    • 1

    在这里插入图片描述
    再次执行ffmpeg -version就可以正常显示ffmpeg版本信息了,也不用进入ffmpeg-build/bin下了。
    不仅可以看到版本信息,还能看到编译ffmpeg时的configure配置信息,以及库的版本。

    第二种方法:

    cd /etc/ld.so.conf.d
    sudo touch ffmpeg.conf
    sudo gedit ffmpeg.conf
    sudo ldconfig
    
    • 1
    • 2
    • 3
    • 4

    将ffmpeg的库路径添加进去在这里插入图片描述
    然后执行sudo ldconfig使配置生效,到这儿只是将ffmpeg库链接进系统库,但是环境变量还是要用第一种方法添加,所以用第一种方法更简洁,直接把主程序和库都添加了。

    4. 导入Qt

    Qt中的pro文件定义了项目的配置信息,以及声明了项目依赖的库。
    我们若想在Qt中使用ffmpeg,将ffmpeg的头文件和动态库添加至pro文件即可:

    INCLUDEPATH += /usr/local/ffmpeg-build/include
    LIBS += /usr/local/ffmpeg-build/lib/libavformat.so \
            /usr/local/ffmpeg-build/lib/libavdevice.so \
            /usr/local/ffmpeg-build/lib/libavcodec.so \
            /usr/local/ffmpeg-build/lib/libavfilter.so \
            /usr/local/ffmpeg-build/lib/libavutil.so    \
            /usr/local/ffmpeg-build/lib/libswscale.so \
            /usr/local/ffmpeg-build/lib/libswresample.so
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    注意路径不要写错。

    参考:

    https://blog.csdn.net/yunxiaobaobei/article/details/124197165
    https://blog.csdn.net/Number_oneEngineer/article/details/108848206
    https://www.jianshu.com/p/1be929404528
    
    • 1
    • 2
    • 3
  • 相关阅读:
    [附源码]计算机毕业设计JAVA濒危物种科普系统
    Ubutun搭建集群遇到的一些问题
    选择题汇总4(括号里填的答案都是对的,不用管下面那个答案正确与错误,因为作者懒得删了)
    ResNet
    Linux常用命令解析
    ik分词器
    预算有限但想改善客户服务?教你几招轻松解决~
    编写自动化软件+python
    key值的应用场景
    论文阅读_自然语言模型加知识图谱_DKPLM
  • 原文地址:https://blog.csdn.net/a1367666195/article/details/126055594