Qt第三方库QtAV——ubuntu上编译、安装,测试

首先得有Qt集成环境,到这里下载:http://qt-project.org/downloads或按 系统位数下载下面两个中的一个:

  • Qt 5.3.2 for Linux 32-bit (449 MB) (Info)
  • Qt 5.3.2 for Linux 64-bit (447 MB) (Info)
下载完成后是个后辍为.run的文件,右击让它有可执行权限后,双击像windows那样装到某个地方。

安装基本环境:

sudo apt-get install build-essential

sudo apt-get install libgl1-mesa-dev

sudo apt-get install libglu1-mesa-dev

sudo apt-get install libva-dev libxv-dev libass-dev libavutil-dev libavresample-dev

安装如下两个库:

1、portaudio:sudo apt-get install portaudio19-dev 或 openAl:  sudo apt-get install libopenal-dev

2、FFmpeg:

到官网下载源码包:http://www.ffmpeg.org/download.html,选择下载ffmpeg-x.x.tar.bz2这样的包(当前是网页中间的一个大大的绿色按钮)。

解压到任一目录,打开终端,用cd进入目录

依次执行:

./configure --enable-shared --disable-yasm --prefix=/usr/local/ffmpeg

make

make install

安装后,在/usr/local目录下有ffmpeg文件夹,里面有ffmpeg的库与头文件。


3、下载QtAv源码:进入https://github.com/wang-bin/QtAV/releases,选择一个版本(如果是编译我的MvGather,选择1.4.2版本https://github.com/wang-bin/QtAV/archive/v1.4.2.zip),下载源码包。解压到任意目录。

保证你的Qt Creator能正常构建Qt项目。

用Qt Creator打开该目录下的QtAv.pro

进入Qt Creator左端“项目”面板,在最下方的环境变量中添加如下三个:

设置 CPATH 到 /usr/local/ffmpeg/include
设置 LD_LIBRARY_PATH 到 /usr/local/ffmpeg/lib
设置 LIBRARY_PATH 到 /usr/local/ffmpeg/lib

然后“构建”(可能需要重启电脑),这样,在build-QtAV-Desktop_Qt_xxx_GCC_64bit-Release这个构建目录中,出现如下文件目录:

Qt第三方库QtAV——ubuntu上编译、安装,测试_第1张图片

用编辑器打开sdk_install.sh,你会发现,这个脚本是将本目录中的库与头文件等内容复制到你安装的Qt目录。

右击sdk_install.sh,属性中为本脚本设置权限为可执行。

双击或终端中运行后,会将QtAv以一个模块的方式加入到你安装Qt的目录。

最后将/usr/local/ffmpeg/lib里的库,复制到Qt的lib目录。

以上就完成了编译安装了。


项目中使用:

在QtAv1.5之前:

首先在pro中加入

QT += av

main.cpp:

#include "widget.h"
#include 
#include 
#include 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QtAV::GLWidgetRenderer renderer;
    renderer.show();
    QtAV::AVPlayer player;
    player.setRenderer(&renderer);
    player.play("http://a.mp4");
    //player.setSpeed(0.9);
    return a.exec();
}

 
  

在QtAv1.5之后:

In pro file, add a line QT += avwidgets
In source files use QtAV or it's renderers, add
#include 
#include 
In main.cpp, call QtAV::Widgets::registerRenderers();



你可能感兴趣的:(Qt第三方库)