版本选择:qt-opensource-linux-x64-5.12.3.run 链接:http://download.qt.io/archive/qt/5.12/5.12.3/
赋予 qt-opensource-linux-x64-5.12.3.run 执行权限。命令:
chmod a+x qt-opensource-linux-x64-5.12.3.run
运行命令:
sudo ./ qt-opensource-linux-x64-5.12.3.run
直接下一步下一步即可。默认qt安装路径一般都是: /opt路径下(我的是此目录下)。也可以手动设置。
设置Qt能运行环境:到 /opt/Qt5.12.3/Tools/QtCreator/libexec/qtcreator/clang/bin,软连接clang-7 命令:
sudo ln clang-7 -s clang++
下载安装这些库(一些是必备的qt图形库,一些是基础插件安装的其他库。)
sudo apt install libqt4-dev
sudo apt install build-essential
sudo apt install libopenal-dev libpulse-dev libva-dev libxv-dev libass-dev libegl1-mesa-dev
sudo apt install g++
sudo apt install gcc
sudo apt install mesa-common-dev
sudo apt install libfontconfig1-dev libfreetype6-dev libx11-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libx11-xcb-dev libxcb-glx0-dev
sudo apt install libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev
此时可以正常去打开一个quick程序运行了,上面的库每个都不能少,具体都亲测过,参考过十几个播客网页,大致内容都是如此。
这里是安装ffmpeg的一些解码器库文件(建议安装ffmpeg整个音频、视频解码器,防止对于某种情况下无法去解码视频,流以及音频文件):命令安装也可以:sudo apt install ffmpeg (不推荐(编解码器不全)因为编译qtav组件需要ffmpeg指定的lib库和头文件,命令安装的ffmpeg没有集中的去在对应的目录下生成,找起来比较麻烦。),
以下命令都是通过官方文档的介绍安装包括一些教学网站提供的资料以及网页播客参考而总结的各种库文件。安装库文件内容详细不再介绍。
安装依赖库文件:
sudo apt -y install autoconf automake build-essential libass-dev libfreetype6-dev libsdl2-dev libtheora-dev
libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev
安装编解码器命令:
sudo apt install libappindicator1 libindicator7
sudo apt-get install nasm
sudo apt-get install yasm
sudo apt-get install libx264-dev
sudo apt install libx265-dev libnuma-dev
sudo apt-get install libopus-dev
sudo apt install libvpx-dev
sudo apt install libfdk-aac-dev
sudo apt install libmp3lame-dev
sudo apt install libogg-dev
快速编译为动态库方法(因为我们需要的是ffmpeg的动态库和ffmpeg的include文件来为编译QtAV做准备,静态库是整个都编译到执行文件里面了。)
下载源码后之直接进入源码目录:
执行下面命令:(编译时间长短取决于自己在ffmpeg中编入添加的解码器的多少,一般情况下是20多分钟左右)
./configure --enable-shared --enable-gpl --enable-libx264 --enable-libfdk-aac --enable-nonfree --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libx265 --enable-libfreetype --enable-libass --enable-libtheora --enable-sdl2 --enable-libvorbis --enable-zliblg --enable-libogg --prefix=/usr/local/ffmpeg
这个命令编译了很多的编解码器文件到里面.也可以自己直接编译如下命令(不将编解码器编译到ffmpeg里面):
./configure --enable-shared --prefix=/usr/local/ffmpeg
执行下面命令安装ffmpeg:
make –j4 (表示四线程安装)
sudo make install
其中 --enable-shared 表示编译为动态库,--prefix表示安装的路径
自己提前设置好自己对应的ffmpeg目录,我的是在 /usr/local/ffmpeg 编译到对应的ffmpeg文件夹下。
编译完成后就可以看到/usr/local/ffmpeg目录中有头文件和动态链接库文件。如果为了项目编译运行方便,可以直接把动态链接库复制到 /usr/lib目录下,这样运行就不用指定库路径了。
编译项目时候要注意,库路径要设置到/usr/lib 防止有老版本冲突,很多软件安装的时候会把ffmpeg安装进去,比如安装opencv也会把ffmpeg安装进去,有可能造成版本冲突。
以上步骤安装后会在ffmpeg生成多个文件夹,下面会有很多的文件。此时用一个测试视频 或者音频文件使用可以测试一下,简单测试:进入到ffmpeg下面的bin目录下在终端中输入:ffmpeg –version,没有报错就是成功。
出现问题:
ffmpeg: command not found
或者出现
ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory
解决办法:
步骤如下:
1:
先把 /usr/local/ffmpeg/bin 路径在 /etc/profile 下设置好环境变量。
命令:sudo vi /etc/profile ,然后快捷键 shift+g,跳到文件最下面。
输入:export PATH=”/usr/local/ffmpeg/bin:$PATH”
:wq保存退出后,执行命令:source /etc/profile
2:添加编解码器库ldconfig路径,添加编译好的指定ffmpeg下的lib库路径到该文件中
命令:sudo vi /etc/ld.so.conf
文件内容为:
include ld.so.conf.d/*.conf
/usr/local/ffmpeg/lib ####这是我自己添加的内容,我安装ffmpeg对应的lib库路径
执行命令:sudo ldconfig
1:下载QtAv源码:https://github.com/wang-bin/QtAV
2:将ffmpeg编译好的lib目录下的所有文件,include下的所有文件分别放到qt下的gcc_64下的lib目录和include目录(见下图)。
3:编译QtAv源码库(过程中会有一些代码中的变量问题以及版本替换问题,大家自行百度解决(问题很少,我遇到过,比较好解决))。Qtav源码网站:https://github.com/wang-bin/QtAV
在编译后的文件目录下会找到:sdk_install.sh
赋予sdk_install.sh 执行权限,命令 chmod 777 sdk_install.sh
安装qtav,命令:./ sdk_install.sh
测试代码:见www.qtav.org (qtav官网)。
我的测试代码(qml测试代码):
import QtQuick 2.12
import QtQuick.Window 2.2
import QtAV 1.6
import QtQuick.Controls 2.2
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Item{
width:parent.width
height:parent.height
Video
{
id:video11
autoPlay: true
anchors.fill: parent
source:"http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8";//网上的http视频流
}
}
}