Qt Creator 配置ffmpeg 开发环境

实际上这就是一个Qt增加第三方库的例子。实际上添加第三方库,就是配置include 和lib 到qt的 pro文件中。

需要下载ffmpeg的dev 和share包。其中include 和lib在dev包中。dll在share包中。

一、方法一:

1.使用Qt的图形化界面,添加库。

image

2.在弹出的添加库对话框中选择外部库,点下一步。

image

3.在这一步选择外部库文件(这种图形操作每次只能添加一个lib文件)

image

4.最终告诉增加的pro配置语句。

win32: LIBS += -L$$PWD/../../ffmpeg/ffmpeg-4.2.3-win64-dev/lib/ -lavcodec

INCLUDEPATH += $$PWD/../../ffmpeg/ffmpeg-4.2.3-win64-dev/include
DEPENDPATH += $$PWD/../../ffmpeg/ffmpeg-4.2.3-win64-dev/include

很不推荐这种方法,ffmpeg 的lib 库是多个文件,include都在一个目录下。首先他不支持多个库文件添加,第二include文件夹虽然是相同,但是程序依旧会死死的重复添加。

二、方法二:

自己直接修改pro文件

INCLUDEPATH += $$PWD/ffmpeg-4.2.3-win64-dev/include


LIBS += -L$$PWD/"ffmpeg-4.2.3-win64-dev/lib" -lavcodec \
        -L$$PWD/"ffmpeg-4.2.3-win64-dev/lib" -lavdevice \
        -L$$PWD/"ffmpeg-4.2.3-win64-dev/lib" -lavfilter \
        -L$$PWD/"ffmpeg-4.2.3-win64-dev/lib" -lavformat \
        -L$$PWD/"ffmpeg-4.2.3-win64-dev/lib" -lavutil \
        -L$$PWD/"ffmpeg-4.2.3-win64-dev/lib" -lpostproc \
        -L$$PWD/"ffmpeg-4.2.3-win64-dev/lib" -lswresample \
        -L$$PWD/"ffmpeg-4.2.3-win64-dev/lib" -lswscale \

这种办法效率很高。说一下语法

$$PWD:是项目根目录

-L 是寻找目录,注意跟后面的路径buneng 有空格。

-l 是寻找库 ,同样不能有空格

对于多个库 用“\” 符合结尾。

另外相对于QT 图形化工具,我这里少了 DEPENDPATH(应用程序所依赖的搜索路径)。实际操作发现不配置这个变量,程序也可以正常编译执行。

三、其他:

1.最后需要把share包里的dll放到编译后exe相同的目录下。一般是qt 的debug目录。

2.我们是可以把ffmpeg的dev包甚至源文件文件直接放到项目里的。方法是右击项目——add Existing Directiry。

image
image

它实际上也是在pro文件里面增加配置代码,但是添加了DISTFILES 和include 环境变量依旧还需要配置libs环境变量。

DISTFILES += \

    ffmpeg-4.2.3-win64-dev/lib/avcodec-58.def \
    ffmpeg-4.2.3-win64-dev/lib/avcodec.lib \
    ffmpeg-4.2.3-win64-dev/lib/avdevice-58.def \
    ffmpeg-4.2.3-win64-dev/lib/avdevice.lib \
    ffmpeg-4.2.3-win64-dev/lib/avfilter-7.def \
    ffmpeg-4.2.3-win64-dev/lib/avfilter.lib \
    ffmpeg-4.2.3-win64-dev/lib/avformat-58.def \
    ffmpeg-4.2.3-win64-dev/lib/avformat.lib \
    ffmpeg-4.2.3-win64-dev/lib/avutil-56.def \
    ffmpeg-4.2.3-win64-dev/lib/avutil.lib \
    ffmpeg-4.2.3-win64-dev/lib/libavcodec.dll.a \
    ffmpeg-4.2.3-win64-dev/lib/libavdevice.dll.a \
    ffmpeg-4.2.3-win64-dev/lib/libavfilter.dll.a \
    ffmpeg-4.2.3-win64-dev/lib/libavformat.dll.a \
    ffmpeg-4.2.3-win64-dev/lib/libavutil.dll.a \
    ffmpeg-4.2.3-win64-dev/lib/libpostproc.dll.a \
    ffmpeg-4.2.3-win64-dev/lib/libswresample.dll.a \
    ffmpeg-4.2.3-win64-dev/lib/libswscale.dll.a \
    ffmpeg-4.2.3-win64-dev/lib/postproc-55.def \
    ffmpeg-4.2.3-win64-dev/lib/postproc.lib \
    ffmpeg-4.2.3-win64-dev/lib/swresample-3.def \
    ffmpeg-4.2.3-win64-dev/lib/swresample.lib \
    ffmpeg-4.2.3-win64-dev/lib/swscale-5.def \
    ffmpeg-4.2.3-win64-dev/lib/swscale.lib

HEADERS += \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/ac3_parser.h \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/adts_parser.h \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/avcodec.h \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/avdct.h \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/avfft.h \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/d3d11va.h \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/dirac.h \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/dv_profile.h \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/dxva2.h \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/jni.h \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/mediacodec.h \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/qsv.h \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/vaapi.h \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/vdpau.h \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/version.h \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/videotoolbox.h \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/vorbis_parser.h \
    ffmpeg-4.2.3-win64-dev/include/libavcodec/xvmc.h \
    ffmpeg-4.2.3-win64-dev/include/libavdevice/avdevice.h \
    ffmpeg-4.2.3-win64-dev/include/libavdevice/version.h \
    ffmpeg-4.2.3-win64-dev/include/libavfilter/avfilter.h \
    ffmpeg-4.2.3-win64-dev/include/libavfilter/buffersink.h \
    ffmpeg-4.2.3-win64-dev/include/libavfilter/buffersrc.h \
    ffmpeg-4.2.3-win64-dev/include/libavfilter/version.h \
    ffmpeg-4.2.3-win64-dev/include/libavformat/avformat.h \
    ffmpeg-4.2.3-win64-dev/include/libavformat/avio.h \
    ffmpeg-4.2.3-win64-dev/include/libavformat/version.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/adler32.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/aes.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/aes_ctr.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/attributes.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/audio_fifo.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/avassert.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/avconfig.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/avstring.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/avutil.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/base64.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/blowfish.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/bprint.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/bswap.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/buffer.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/camellia.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/cast5.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/channel_layout.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/common.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/cpu.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/crc.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/des.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/dict.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/display.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/downmix_info.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/encryption_info.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/error.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/eval.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/ffversion.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/fifo.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/file.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/frame.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/hash.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/hdr_dynamic_metadata.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/hmac.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/hwcontext.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/hwcontext_cuda.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/hwcontext_d3d11va.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/hwcontext_drm.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/hwcontext_dxva2.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/hwcontext_mediacodec.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/hwcontext_qsv.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/hwcontext_vaapi.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/hwcontext_vdpau.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/hwcontext_videotoolbox.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/imgutils.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/intfloat.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/intreadwrite.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/lfg.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/log.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/lzo.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/macros.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/mastering_display_metadata.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/mathematics.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/md5.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/mem.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/motion_vector.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/murmur3.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/opt.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/parseutils.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/pixdesc.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/pixelutils.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/pixfmt.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/random_seed.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/rational.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/rc4.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/replaygain.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/ripemd.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/samplefmt.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/sha.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/sha512.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/spherical.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/stereo3d.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/tea.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/threadmessage.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/time.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/timecode.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/timestamp.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/tree.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/twofish.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/tx.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/version.h \
    ffmpeg-4.2.3-win64-dev/include/libavutil/xtea.h \
    ffmpeg-4.2.3-win64-dev/include/libpostproc/postprocess.h \
    ffmpeg-4.2.3-win64-dev/include/libpostproc/version.h \
    ffmpeg-4.2.3-win64-dev/include/libswresample/swresample.h \
    ffmpeg-4.2.3-win64-dev/include/libswresample/version.h \
    ffmpeg-4.2.3-win64-dev/include/libswscale/swscale.h \
    ffmpeg-4.2.3-win64-dev/include/libswscale/version.h

四、调试

创建一个测试文件

#include <iostream>

#include <stdio.h>
using namespace std;
 extern "C" {

    #include "libavcodec/avcodec.h"
    #include "libavformat/avformat.h"
    #include "libswscale/swscale.h"
    #include "libavdevice/avdevice.h"
 }


int main()
{

    printf("Hello World!\n");
    cout << "Test FFmpeg!" << endl;

//    av_register_all();
    unsigned version = avcodec_version();
    cout << "version :" << version;
    return 0;
}
执行后。

    
    
image

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Jetson Nano 上使用 Qt Creator 进行 libargus 开发,需要进行一些环境配置,以下是具体步骤: 1. 安装 JetPack SDK:JetPack 是 Nvidia 推出的开发套件,可以方便地进行 Jetson Nano 的软件开发和调试。您可以从 Nvidia 官网上下载并安装最新版本的 JetPack SDK。 2. 安装 libargus:libargus 是 Nvidia 提供的一个多媒体 API,支持在 Jetson Nano 上进行图像和视频的采集。您可以在 JetPack SDK 中安装 libargus,具体安装方法可以参考 Nvidia 官方文档。 3. 配置 Qt Creator:在 Qt Creator 中,您需要进行一些配置,以便能够使用 libargus 进行开发。具体步骤如下: - 打开 Qt Creator,创建一个新的项目。 - 在项目的属性中,添加 libargus 的头文件和库文件。具体操作为:打开项目的属性,选择“Build & Run”,在“Build Steps”选项卡中,点击“Add Library”按钮,在弹出的对话框中选择“External Library”,并添加 libargus 的头文件和库文件路径。 - 配置项目的编译选项,以便能够链接 libargus 库。具体操作为:打开项目的属性,选择“Build & Run”,在“Build Settings”选项卡中,添加 libargus 库文件的链接选项。 4. 编写代码:在 Qt Creator 中,您可以编写 C++ 代码,调用 libargus 的接口实现图像和视频的采集。具体的接口调用方法可以参考 Nvidia 官方文档或者其他相关的教程。 5. 编译和运行:在 Qt Creator 中,您可以编译和运行您的程序,进行图像和视频的采集和处理。 这样,您就可以在 Jetson Nano 上使用 Qt Creator 进行 libargus 开发了。希望以上步骤能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值