1.windows环境编译QtAV的源代码
1.1下载依赖库
下载FFmpeg依赖库 ffmpeg-3.4.2-win64-dev,或 ffmpeg-3.4.2-win32-dev 对应自己的编译版本。下载地址:https://ffmpeg.zeranoe.com/builds/
QTAV编译好的依赖库QtAV-depends-windows-x86%2Bx64.7z 下载地址:https://sourceforge.net/projects/qtav/files/depends/QtAV-depends-windows-x86+x64.7z/download
QtAV的安装编译总指导说明:https://github.com/wang-bin/QtAV/wiki/Build-QtAV
下载QtAV的源代码:https://github.com/wang-bin/QtAV
将ffmpeg-4.1-win64-dev\include 和 ffmpeg-4.1-win64-dev\lib下所有文件,拷贝到:\Qt\5.11.2\msvc2017 64\include和Qt\5.11.2\msvc2017 64\lib目录下,或FFmpeg32拷贝对应的32位目录。
编译QtAV的源代码选择Debug或release模式,生成Debug或release目录文件。
1.2安装QTAV:将QtAV生成的开发库和头文件安装到Qt的开发环境下。首先打开QtAV的生成路径,如下图所示的文件。其中包含一个名为“sdk_install.bat”的可执行脚本,双击执行安装.
1.3运行:
选择player:
选择了player,再点击运行按钮,可能运行会报如下的错误
Starting D:\qt-workspace\build-QtAV-Desktop_Qt_5_12_3_MinGW_64_bit-Release\bin\Player.exe ...
程序异常结束。
The process was ended forcefully.
D:/qt-workspace/build-QtAV-Desktop_Qt_5_12_3_MinGW_64_bit-Release/bin/Player.exe crashed.
解决方法:
注意如果32位的使用win32-shared.
运行正常:
2.QTAV应用
新建QT项目,.pro文件中加入
QT += av avwidgets
LIBS += -lQtAV1 -lQtAVWidgets1
复制编译好的qtav1.lib , qtavwidgets1.lib 与 QTAV提供的依赖库拷贝。
可能必须包含依赖的文件。
文件拷贝到项目目录下。
编写调用QtAV::AVPlayer.
测试运行:
运行成功,设置了无边框效果。
参考链接:
1:https://www.cnblogs.com/motadou/p/9310560.html
2:https://blog.csdn.net/anyuliuxing/article/details/92801348
————————————————打包注意事项—2020.02.16—————————————————
把生成的exe文件拷贝到新建目录,运行打包工具指令windeployqt.exe生成依赖文件,之后拷贝QTAV依赖文件(可能不全部依赖,没有具体测试)
之后运行项目提示 "Can not create video renderer" 这是QTAV自带示例的提示,意思是VideoOutput内部的widget没有初始化或初始化失败导致,代码部分:
m_vo = new VideoOutput(this);
if (!m_vo->widget()) {
QMessageBox::warning(0, QString::fromLatin1("QtAV error"), tr("Can not create video renderer"));
return;
}
通过1天的排除,在打包原示例中运行Player.exe提示需要Qt5OpenGL.dll文件,拷贝对应文件,比如我的是:D:\Qt\Qt5.12.5\5.12.5\msvc2017\bin目录中找到Qt5OpenGL.dll文件,拷贝到项目exe文件目录下即可。为什么自己写的示例就没有这等提示....