/错误百出阶段///
依赖库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("xxxx setupAudioThread fail: need libOpenAL or libPortAudio xx///xx");
return false;
#endif
}
以上方法是修复音频缺失导致崩溃 彻底恢复音频需安装以上之一音频库
转载于:https://my.oschina.net/rechy/blog/189725