Qt项目中导入FFmpeg开源库

1.简介

FFmpeg是音视频编解码的开源框架,下面主要是如何在Qt工程中导入FFmpeg,以及在导入FFmpeg过程中遇到的一些问题与问题解决方法

2.下载FFmpeg库

解压库文件,并将其放到合适的目录,我这里放在了工程目录的平级处

3.创建工程或控制台程序(testffmpeg)

配置testffmpeg.pro,将开发库包含到我们的工程中

4.编译项目

编译我们发现有如下错误提示
missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS的错误,这里我们直接在main.cpp文件 中加入#define __STDC_CONSTANT_MACROS定义来屏蔽这个错误

继续尝试编译,这个时候会发现如下错误提示

我们根据错误提示,进行对问题逐个解决,这里会提示头文件未对UINT64_C进行定义,我们在main文件中手动的添加定义UINT64_C的定义:

#ifndef INT64_C
#define INT64_C(c) (c ## LL)
#define UINT64_C(c) (c ## ULL)
#endif

这样就解决了编译错误的问题,运行我们编译好的程序

我们会发现,在程序中我们尝试在控制台中打印了字符Hello FFmpeg但是控制台中并没有显示,但是我们的编译并没有报错,我们尝试到项目文件夹中找到我们编译的可执行exe文件,我们手动运行该testffmpeg.exe文件,这个时候会提示如下信息

我们会发现我们程序很多动态库文件找不到,这个时候有两种解决办法
1.找到我们程序依赖的dll动态库文件,直接加到testffmpeg.exe可执行文件的同级目录下
2.在编译Qt项目的时候在编译选项中加入动态库路径的配置,具体做法如下:
找到动态库的路径,例如我们程序运行需要依赖的FFmpeg的动态库(我们之前解压的库文件ffmpeg-2.5.2-win32-shared),将库路径加入到Qt编译PATH

动态库路径配置完毕后就可以正常运行我们的程序了

你可能感兴趣的:(Qt项目中导入FFmpeg开源库)