收藏音视频编解码

Linux 下Qt+ffmpeg开发环境配置

2018-04-08  本文已影响0人  开发乱记

一、安装Qt

这里我使用的是Qt5.8,没有选择最新版本是怕其依赖的其它库版本太低而安装失败。

首先需要从官网获取安装包:https://download.qt.io/official_releases/qt/

直接进入5.8的文件夹,找到你对应的包就行。我选择的是下图的版本:

Linux 64位版本

下载完成后,将工作目录切换到安装包所在的位置,依次执行:

# 确保安装包拥有可执行权限

chmod a+x qt-opensource-linux-x64-5.8.0.run

# 执行安装

./qt-opensource-linux-x64-5.8.0.run

然后会出现安装引导界面,到这里就跟Windows下安装程序很像了。一路next/skip就可以了。

安装引导界面

等安装完成后,再进行一些配置。

首先打开default.conf,在命令行中输入:sudo gedit /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

然后将qt的安装路径添加进去:

# 把*******改为你的家目录名称即可

/home/*******/Qt5.8.0/5.8/gcc_64/bin

/home/*******/Qt5.8.0

最后,安装libgl1-mesa-dev,在命令行中输入:sudo apt-get install libgl1-mesa-dev

现在可以打开qt creator软件了。

二、安装ffmpeg

第一步:是下载ffmpeg: http://ffmpeg.org/releases/,最新版本即可。

第二步:安装依赖,运行命令:sudo apt-get -y install libass-dev libfreetype6-dev libmp3lame-dev libtheora-dev libvorbis-dev libopus-dev libx264-dev yasm

安装依赖的时候,发现一些编译教程说的不一样,这里贴出了我的,如果不行可以换换其他的试试。

第三部:编译ffmpeg。首先解压缩,然后cd到解压目录,依次执行:

./configure --enable-shared --prefix=/home/*******/ffmpeg

make

makeinstall

第四步:配置。配置是为了执行bin目录下的可执行文件。

执行命令: vim /etc/ld.so.conf.d/ffmpeg.conf 

添加内容到文件: /home/*******/ffmpeg/lib ,然后保存并退出

执行 sudo ldconfig 使配置生效

现在可以执行 ./ffmpeg -version ,如果不报错就成功了。

三、Qt中使用ffmpeg

可以参考这个:http://blog.yundiantech.com/?log=blog&id=33

我的配置是这样的:

INCLUDEPATH += /home/******/ffmpeg/include \

              #/home/******/SDL2/include \

LIBS += /home/******/ffmpeg/lib/libavcodec.so \

        /home/******/ffmpeg/lib/libavdevice.so \

        /home/******/ffmpeg/lib/libavfilter.so \

        /home/******/ffmpeg/lib/libavformat.so \

        /home/******/ffmpeg/lib/libavutil.so \

        /home/******/ffmpeg/lib/libswresample.so \

        /home/******/ffmpeg/lib/libswscale.so \

        #/home/******/SDL2/lib/x86/SDL2.lib

关于sdl还没开始研究,先注释掉。

将路径全部替换为绝对路径。

将以.lib结尾的文件名改为lib开始的.so文件名。

在include的时候,还需要加上extern C标志,因为的是c++的编译器,如下:

extern "C"

{

#include "libavcodec/avcodec.h"

#include "libavformat/avformat.h"

#include "libswscale/swscale.h"

#include "libavdevice/avdevice.h"

}

其中main.cpp的代码如下:

main.cpp

最后,保存,编译,运行。结果如下:

ffmpeg版本

最后,列出我参考的主要博客:

https://blog.csdn.net/hhrock/article/details/61621044

https://www.cnblogs.com/freeweb/p/6897907.html

https://blog.csdn.net/zhangwu1241/article/details/52354604

上一篇下一篇

猜你喜欢

热点阅读