1、目的
FFmpeg是一套由c语言编写的,可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,它提供了录制、转换以及流化音视频的完整解决方案,包含了非常先进的音频/视频编解码库libavcodec。下面我们将FFmpeg库引入Qt并进行环境测试。
2、SDK版本
Qt版本:qt5.9.9_msvc2017_win64
FFmpeg版本:ffmpeg4.4_win64
下载方式参考上一篇文章即可。
3、创建项目
新建Qt项目,然后添加库引用完成项目配置,目的是读取当前ffmpeg版本号;
其中*.pro文件添加如下:
INCLUDEPATH += $$PWD/include
DEPENDPATH += $$PWD/include
INCLUDEPATH += D:/Video_Audio/ffmpeg4.4_win64/include
DEPENDPATH += D:/Video_Audio/ffmpeg4.4_win64/include
LIBS += -LD:/Video_Audio/ffmpeg4.4_win64/lib -lavcodec
LIBS += -LD:/Video_Audio/ffmpeg4.4_win64/lib -lavdevice
LIBS += -LD:/Video_Audio/ffmpeg4.4_win64/lib -lavfilter
LIBS += -LD:/Video_Audio/ffmpeg4.4_win64/lib -lavformat
LIBS += -LD:/Video_Audio/ffmpeg4.4_win64/lib -lavutil
LIBS += -LD:/Video_Audio/ffmpeg4.4_win64/lib -lpostproc
LIBS += -LD:/Video_Audio/ffmpeg4.4_win64/lib -lswresample
LIBS += -LD:/Video_Audio/ffmpeg4.4_win64/lib -lswscale
main.cpp文件内容如下:
#include "mainwindow.h"
#include <QApplication>
#include <QDebug>
#pragma execution_character_set("utf-8")
//当前C++兼容C语言
extern "C"
{
//avcodec:编解码(最重要的库)
#include <libavcodec/avcodec.h>
//avformat:封装格式处理
#include <libavformat/avformat.h>
//swscale:视频像素数据格式转换
#include <libswscale/swscale.h>
//avdevice:各种设备的输入输出
#include <libavdevice/avdevice.h>
//avutil:工具库(大部分库都需要这个库的支持)
#include <libavutil/avutil.h>
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// MainWindow w;
// w.show();
qDebug()<<"ffmpeg音视频库环境配置测试:";
qDebug()<<"当前ffmpeg版本号:"<< avcodec_version();
return a.exec();
}