由于前面一段时间,项目中需要借助QtAV接口进行视频播放,特此记录下整个配置过程。
整个代码编译、运行、测试在ubuntu 16.04下,Qt版本5.7.0。
Ubuntu下的安装,Qt5.7.0 Linux 64位。
1.配置基本环境
sudo apt-get installlibglu1-mesa-dev freeglut3-dev mesa-common-dev
sudo apt-get install libavutil-devlibavcodec-dev libavformat-dev libswscale-dev
2.安装两个基本库
1)安装openal:sudoapt-get install libopenal-dev libpulse-dev libva-dev libxv-dev libass-devlibegl1-mesa-dev 或者 portaudio:sudo apt-get install portaudio19-dev(portaudio本人未测试)
2)安装FFmpeg,下载源码包(http://ffmpeg.org/),解压,编译安装 ./configure --enable-shared --disable-yasm--prefix=/usr/local/ffmpeg (安装过程可能提示yasm未安装,安装下即可)
make
make install (提供root权限)
安装后,在usr/local目录下会有ffmpeg文件夹,里面有对应的库和头文件。(可以使用ffmpeg –h 检查下示是否安装好,提一些如libavdevice.so.56:cannot open shared objectfile:类似错误,可以在/etc/ld.so.conf添加一条路径/usr/local/ffmpeg/lib,原因是无法找到库文件,执行下ldconfig就可以了)。
3)安装QtAV,下载QtAV源码(https://github.com/wang-bin/QtAV),解压,用Qt creator 打开pro文件
在QtAV.pro中添加
CONFIG+= static_ffmpeg static_openal
CONFIG+= glibc_compat
选择shadow bulid模式,进行debug,release 版本编译,完成后运行,这样在你的debug目录或者release目录就有一个文件目录了,执行脚本文件sdk_install.sh,这样库和头文件就加入到了qt目录中。
4)在Qt creator中,查看QtAV源码,选择exmple,simpleplayer,修改pro文件,QT+= av avwidgets,编译运行。选择视频就可以播放了。
5)完成以上步骤就可以调用QtAV接口了,实现自己的播放需求。
以下是我自己写的demo
首先的在pro中加入QT += av avwidgets
Main.cpp:
#include<WidgetRenderer.h>
#include<QApplication>
#include<QtAV>
#include<QtAVWidgets>
#include<QtAV/AVPlayer.h>
using namespaceQtAV;
int main(int argc,char *argv[])
{
QApplication a(argc, argv);
WidgetRenderer renderer;
renderer.show();
Widgets::registerRenderers();
AVPlayer player;
player.setRenderer(&renderer);
player.play("test.mov");
return a.exec();
}