QtAV编译和使用

环境

  • x64
  • QtAV1.13
  • Qt5.12.9
  • VS2017 
  • FFmpeg3官方依赖包

编译步骤

git clone https://github.com/wang-bin/QtAV.git
cd QtAV && git submodule update --init

可以下载官方推荐的FFmpeg依赖包:Download QtAV from SourceForge.net

Extract ffmpeg to QtAV source dir. add 2 lines in .qmake.conf

INCLUDEPATH += $$PWD/ffmpeg/include
LIBS += -L$$PWD/ffmpeg/lib

QtAV编译和使用_第1张图片

 注意32位LIBS改成:LIBS += -L$$PWD/QtAV-depends-windows-x86+x64/lib

先后构建libQtAV,libQtAVWidgets,libQmlAV,examples,如果构建失败了尝试构建整个项目

遇到错误

error LNK2019: 无法解析的外部符号 "enum QtAV::VideoFormat::PixelFormat __cdecl QtAV::pixelFormatFromFourcc(int)" (?pixelFormatFromFourcc@QtAV@@YA?AW4PixelFormat@VideoFormat@1@H@Z),该符号在函数 "protected: void * __cdecl QtAV::d3d9::SurfaceInterop::mapToHost(class QtAV::VideoFormat const &,void *,int)" (?mapToHost@SurfaceInterop@d3d9@QtAV@@IEAAPEAXAEBVVideoFormat@3@PEAXH@Z) 中被引用
..\lib_win_x86_64\QtAV1.dll : fatal error LNK1120: 1 个无法解析的外部命令

解决方法:https://github.com/wang-bin/QtAV/issues/1250#issuecomment-725963182

add CONFIG *= d3dva to libQtAV.pro in win32:!winrt section .

使用时发现问题

  • 使用FFmpeg4.3.2编译的话examples中的播放器播放音频会崩溃,切换到官方提供的FFmpeg3依赖包则没问题。
  • simpleplayer点击进度条不能跳转进度
  • QMLPlayer打开是一片空白

// 参考player修改simpleplayer:

你可能感兴趣的:(Qt,音视频,QtAV)