QtAv

/////////////////////////////错误百出阶段///////////////////////////
依赖库portaudio, ffmpeg
http://www.portaudio.com/ [svn: https://subversion.assembla.com/svn/portaudio/portaudio/ ]
http://ffmpeg.org/

如果显示找不到avutil库
1.总qtav.pro和libqtav.pro中添加
INCLUDEPATH += D:\CLib\Qt\Qt5.2.0-beta1\Tools\mingw48_32\include

{
//删除掉
EssentialDepends = avutil avcodec avformat swscale
//在此处添加
LIBS += -lavutil -lavcodec -lavformat -lswscale
}

先编译libQtAv 如果出现 QtAv_res.o生成失败(未知原因可能是windres始终无法识别路径,
或者windres版本不对)
在cmd或msys中单独执行这句就能够生成,再编译就能通过:
windres -i H:\kuaipan\project\c++\QtAV\res\QtAV.rc -o H:\kuaipan\
project\c++\build-QtAV-Local_PC_mingw-Debug\.obj\QtAVd_win_x86\QtAV_res.o --incl
ude-dir=H:/kuaipan/project/c++/QtAV/res -DUNICODE -DQ_DLL_LIBRARY -D__STDC_CONST
ANT_MACROS -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -
DQT_CORE_LIB

libQmlAV生成失败 可能会显示“命令语法不正确”:

最终确定错误原因为 目录名不应该叫c++
单独命令执行编译时 ++号在命令行无双引号保护 编译出错

/////////////////////////////之后阶段///////////////////////////
直接把ffmpeg安装mingw/下
注释掉
//EssentialDepends = avutil avcodec avformat swscale
这行之上添加
LIBS += -lavutil -lavcodec -lavformat -lswscale

原因EssentialDepends这句creator不能正确找到依赖的库的位置

构建时显示xcopy错误:
"xcopy" 不存在的命令,
mingw32-make[1]: *** [copydeploymentfolders] Error 1
...

在:项目/构建步骤/make参数里加入
(第一次构建不要加入要等出现错误再加入,
否则有很多复制操作未作):
-no-copy

============================================================
打开视频音频文件时崩溃,是由于音频依赖库库openal或portaudio缺失
@@需修改AudioThread在64行 resetState();之后加上
if (!(d.outputSet->outputs().size()))
        return;
@@在AVPlayer的setupAudioThread()[1068行]中修改为:
    if (!_audio && ao_enable) {
        qDebug("new audio output");
#if QTAV_HAVE(OPENAL)
        _audio = new AOOpenAL();
#elif QTAV_HAVE(PORTAUDIO)
        _audio = new AOPortAudio();
#else
        qDebug("xx////////////xx setupAudioThread fail: need libOpenAL or libPortAudio xx///////////////xx");
        return false;
#endif
    }
以上方法是修复音频缺失导致崩溃 彻底恢复音频需安装以上之一音频库
       

你可能感兴趣的:(QtAv)