【QT项目——播放器】ffmpeg和开发环境准备

一、大纲

二、windows下载ffmpeg

下载源码

下载编译好的文件:点击左侧download

下载shared 和dev

shared包含dll文件(执行时候调用文件)

dev包含头文件和lib文件

不下载静态库,因为如果项目大的话,编译的时间要非常长,要把整个编码都编译到程序中,所以一般用动态编译
优点是可以隐藏ffmpeg库?

三、VS2017编译项目:显示ffmpeg的编译配置

问题1:找不到头文件怎么办

项目-》属性-》C/C+±》附加包含目录,添加…\include

此时找到头文件,不再报错。(用的是相对路径)

ps:一次…\到src,第二次…\到lesson_code目录,然后找到include文件夹,记住 ,是以项目文件所在路径为参考!!!

问题2:无法找到函数?

把函数所包含的库引用进来(同上)

项目-》属性-》链接器-》附加包含目录,添加…\lib

我们要用到avcodec.lib这个库

库的引用方式有两种

一种是链接器-》输入-》添加附加依赖项-》添加avcodec.lib

方法2:预处理指令导入库

// 预处理指令导入库
#pragma comment(lib,"avcodec.lib")

问题3:重新编译一下,你以为这就行了?

然而并没有,这时候还是找不到这个函数,怎们办呢?

因为必须要引用C语言头的库函数

extern "C"{ 
	#include<libavcodec/avcodec.h> //找不到头文件
}

这时候就成功了

PS:要是还有问题的话,可以在常规和调试里面把常规的输出目录和调试里的工作目录设为…\bin,这两个目录路径统一可以解决很多问题

问题4:出现模块对于SAFESEH安全报警怎么办?

关掉它,设为false

问题5:代码中如何区分是64位还是32位

用宏

#ifdef _WIN64 // 64位
	cout << "Windows X64" << endl;
#endif
#ifdef WIN32  //32位
	cout << "Windows X86" << endl;
#endif
#ifdef _WIN32 //32位和64位 win
	cout << "Windows X86" << endl;
#else
	cout << "Linux" << endl;
#endif

PS:_WIN32表示windows32位和64位。什么时候用呢?一般用于区分linux和windows

此外。32位的库和64位的库要分别存放

四、QtCreator配置64位windows通用

4.1新建text文档,改成ViewFFmpeg.pro,这个pro就是对应的一个QtCreator实例

双击,用qtcreator打开,此时是空的

然后定义一个模板TEMPLATE,模板也就是新建项目时所选择的类型

TEMPLATE = app  				这是个应用程序
CONFIG += console c++11  		配置项,用到了控制台,还有c++11
SOURCES += main.cpp				源码

构建执行,生成sources文件夹

点击main.cpp文件

生成乱码,因为默认是UTF-8,选择GBK或者GB2312都可以,就可以识别中文

接下来构建 重构所有项目,报错,找不到头文件,是因为头文件的引用没有加入

加入头文件的引用

$$表示变量 PWD当前项目路径 全局路径+相对路径,一般不会有问题

加库的路径,要加-L,小写的l是要指定具体的库

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

然后再构建,重构项目

修改项目路径,和VS相同

成功!!!

4.2 Qt查看编译器版本

msvc2017_64 表示64位
msvc2017 表示32位

用查找函数find的方法

将查找的结果放在opt里面,判断opt是否为空,如果为空,就没找到,为空,找到就是64位
#表示注释

opt = $$find(QMAKESPEC,"msvc2017_64")
isEmpty(opt){
message("win 32 lib")
}
!isEmpty(opt){
message("win 64 lib")
}

再对32位和64位进行区分

原文 【QT项目--播放器】ffmpeg和开发环境准备_avcodec.lib_Mr.Twenty-one的博客-CSDN博客

★文末名片可以免费领取音视频开发学习资料,内容包括(FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音视频学习路线图等等。

见下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

猜你喜欢

转载自blog.csdn.net/yinshipin007/article/details/131905126