案例:QT + FFmpeg开发播放器核心
搭建环境
该案例需要用到FFmpeg和x264这两个库,所以我们首先要创建一个QT工程,然后为了能正确链接FFmpeg和x264库,并且在开发中使用这些库提供的API。
QT工程中,要使用这两个库,需要去编辑配置文件,这里使用qmake去组织项目,所以就是要编辑.pro文件如果不熟悉.pro文件的编写语法,请参考之前的QT基础开发中的.pro相关文章。
要在项目中加载这些库,我们首先在项目中创建3rdparty文件夹,这里专门用来存放项目中使用的第三方库。
Win32
我们这里假设已经拿到了FFmpeg和x264的静态库文件,动态库文件,头文件。
(1) 在3rdparty中,创建win文件夹,存放win平台下,所有要使用的第三方库
(2) win文件中,创建子文件夹 libFFmpeg和libx264,因为我们要使用这两个库
(3) libxxx文件夹下存放所有关于该库的内容,一般有头文件,静态库文件,动态库文件
3rdpatry的目录结构:
3rdparty
+---mac
| +---libFFmpeg
| | +---include
| | | +---libavcodec
| | | +---libavdevice
| | | +---libavfilter
| | | +---libavformat
| | | +---libavutil
| | | +---libpostproc
| | | +---libswresample
| | | /---libswscale
| | /---lib
| | /---pkgconfig
| /---libx264
| /---lib
/---win
+---libFFmpeg
| +---bin
| +---include
| | +---libavcodec
| | +---libavdevice
| | +---libavfilter
| | +---libavformat
| | +---libavutil
| | +---libpostproc
| | +---libswresample
| | /---libswscale
| /---lib
/---libx264
/---lib
在工程目录中添加了ffmpeg和x264库,现在需要编辑pro文件,来去链接这些库,包含这些库的头文件,主要是使用INLCUDEPATH +=添加头文件,LIBS+=添加静态库文件,动态库文件我们需要自己拷贝到最终的可执行文件夹的同级目录下,这一步很关键
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets multimedia
TARGET = JCMPlayer
TEMPLATE = app
macx {
}
win32 {
DEFINES += JCMPLAYER_WINDOWS
INCLUDEPATH += $$PWD/3rdparty/win/libFFmpeg/include
LIBS += $$PWD/3rdparty/win/libFFmpeg/lib/libavformat.dll.a /
$$PWD/3rdparty/win/libFFmpeg/lib/libavcodec.dll.a /
$$PWD/3rdparty/win/libFFmpeg/lib/libavutil.dll.a /
$$PWD/3rdparty/win/libFFmpeg/lib/libswresample.dll.a /
$$PWD/3rdparty/win/libFFmpeg/lib/libswscale.dll.a /
$$PWD/3rdparty/win/libFFmpeg/lib/libpostproc.dll.a /
$$PWD/3rdparty/win/libFFmpeg/lib/libavfilter.dll.a
LIBS += -lOpengl32
}
SOURCES +=
HEADERS +=
FORMS +=
RESOURCES +=
添加好后在QT工程中,引入头文件并使用;build没有报错证明头文件和静态库都找到了,但要注意动态库是运行时加载,所以build之后我们还要去run程序,检测动态库文件是否找到,如果run没问题,那么此时win环境搭建完毕,之后就可以愉快开发了。