0基础学习音视频编程技术(三)Qt+ffmpeg开发环境搭建+简单QT项目调用ffmpeg

时间:2024-04-10 10:52:15

一、ffmpeg下载 
ffmpeg源码可在其官网上下载,网址:https://ffmpeg.zeranoe.com/builds/ 
在官网上从左到右选择版本和系统,然后点击右侧的static,shared和dev,分别下载到本地。

0基础学习音视频编程技术(三)Qt+ffmpeg开发环境搭建+简单QT项目调用ffmpeg 二、解压ffmpeg 
将下载下来的三个包分别解压,并分别对应命名为static,shared,dev(重新命名是为了后面配置简化)。之后,将这三个文件夹复制到自己指定的目录下,我的是D盘的ffmpeg文件夹下。

0基础学习音视频编程技术(三)Qt+ffmpeg开发环境搭建+简单QT项目调用ffmpeg

三、配置环境变量 
在系统环境path中加入一下类似的路径,只需配置shared的即可:

0基础学习音视频编程技术(三)Qt+ffmpeg开发环境搭建+简单QT项目调用ffmpeg

四、建立QT工程

0基础学习音视频编程技术(三)Qt+ffmpeg开发环境搭建+简单QT项目调用ffmpeg

 然后如图将之前解压的dev下的lib和include两个文件夹拷贝到新建项目下,修改QT工程的pro文件即可:

0基础学习音视频编程技术(三)Qt+ffmpeg开发环境搭建+简单QT项目调用ffmpeg

pro中添加如下代码:

INCLUDEPATH += $$PWD/ffmpeg/include
 
LIBS += $$PWD/ffmpeg/lib/avcodec.lib
        $$PWD/ffmpeg/lib/avdevice.lib
        $$PWD/ffmpeg/lib/avfilter.lib
        $$PWD/ffmpeg/lib/avformat.lib
        $$PWD/ffmpeg/lib/avutil.lib
        $$PWD/ffmpeg/lib/postproc.lib
        $$PWD/ffmpeg/lib/swresample.lib
        $$PWD/ffmpeg/lib/swscale.lib

 

main.cpp实现如下:

#include <iostream>
 
using namespace std;
#define __STDC_CONSTANT_MACROS
extern "C"
{
    #include <libavcodec/avcodec.h>
    #include <libavformat/avformat.h>
    #include <libswscale/swscale.h>
    #include <libavdevice/avdevice.h>
    #include <libavformat/version.h>
    #include <libavutil/time.h>
    #include <libavutil/mathematics.h>
}
///由于我们建立的是C++的工程
///编译的时候使用的C++的编译器编译
///而FFMPEG是C的库
///因此这里需要加上extern "C"
///否则会提示各种未定义
 
int main()
{
    //这里简单的输出一个版本号
    cout << "Hello FFmpeg!" << endl;
//    av_register_all();
//    avcodec_register_all();
//    avdevice_register_all();
    unsigned version = avcodec_version();
    cout << "version is:" << version;
    return 0;
}

运行结果:

0基础学习音视频编程技术(三)Qt+ffmpeg开发环境搭建+简单QT项目调用ffmpeg