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

1. 下载

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

2. ffmpeg编译安装

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

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

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

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

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

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

make -j8 && sudo make install

其中,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

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

第一种方法:

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

sudo gedit /etc/profile

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

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

保存后,再执行

source /etc/profile

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

第二种方法:

cd /etc/ld.so.conf.d
sudo touch ffmpeg.conf
sudo gedit ffmpeg.conf
sudo ldconfig

将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

注意路径不要写错。

参考:

https://blog.csdn.net/yunxiaobaobei/article/details/124197165
https://blog.csdn.net/Number_oneEngineer/article/details/108848206
https://www.jianshu.com/p/1be929404528
  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值