• 【Qt】 FFmpeg+Qt windows 32位或者64位环境搭建


    简介

    目前Ffmpeg官网(64位连接)下载的均为64位编译的,这要求我们采用的Qt creator也采用64位编译器。但是仍存在部分用户采用32位编译器,所以这部分用户需下载32 Ffmpeg(32位连接)。

    根据使用的编译器位数下载ffmpeg版本,之后配置操作一致。

    Note:32位与64位下载连接不同,请分别点击。

    下载ffmpeg

    Ffmpeg下载链接。建议下载稳定版本。

    通过版本号命名的为稳定版,日期命名的为最新版。

    这里会出现三个版本:

    essentials:必要的组件,东西可能不全。

    full:全面的,里面的库文件比较全。

    shared:有动态链接库。

    通过版本号命名的为稳定版,日期命名的为最新版。仅是使用的话下载essentials即可,Qt等调库需要选择shared(绿色箭头)。

    下载完成后需要配置环境变量请参考:【流媒体】 通过ffmpeg硬解码拉流RTSP并播放。开头便是不在赘述。

    配置头文件与库文件

    在建立的Qt的.pro文件中添加文件路径。

    1. #-------------------------------------------------
    2. #
    3. # Project created by QtCreator 2024-07-14T21:21:58
    4. #
    5. #-------------------------------------------------
    6. QT += core gui
    7. greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    8. TARGET = ffmpegtest
    9. TEMPLATE = app
    10. # The following define makes your compiler emit warnings if you use
    11. # any feature of Qt which has been marked as deprecated (the exact warnings
    12. # depend on your compiler). Please consult the documentation of the
    13. # deprecated API in order to know how to port your code away from it.
    14. DEFINES += QT_DEPRECATED_WARNINGS
    15. # You can also make your code fail to compile if you use deprecated APIs.
    16. # In order to do so, uncomment the following line.
    17. # You can also select to disable deprecated APIs only up to a certain version of Qt.
    18. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
    19. SOURCES += \
    20. main.cpp \
    21. widget.cpp
    22. HEADERS += \
    23. widget.h
    24. FORMS += \
    25. widget.ui
    26. FFMPEG_HOME=D:\LIB\ffmpeg-n6.0-latest-win32-lgpl-shared-6.0
    27. #设置 ffmpeg 的头文件
    28. INCLUDEPATH += $$FFMPEG_HOME/include
    29. #设置导入库的目录一边程序可以找到导入库
    30. # -L :指定导入库的目录
    31. # -l :指定要导入的 库名称
    32. LIBS += -L$$FFMPEG_HOME/lib \
    33. -lavcodec \
    34. -lavdevice \
    35. -lavfilter \
    36. -lavformat \
    37. -lavutil \
    38. -lswresample \
    39. -lswscale

    将ffmpeg的 bin目录下的动态库文件(可以全选)复制到Qt工程的Debug文件下面。

    全选复制到

    配置代码测试环境

    新建Qt工程,添加图示头文件及代码:

    1. #include "widget.h"
    2. #include
    3. #include
    4. extern "C" {
    5. #include
    6. #include
    7. #include
    8. #include
    9. #include
    10. }
    11. int main(int argc, char *argv[])
    12. {
    13. qDebug() << "ffmpeg版本信息:"<< av_version_info();
    14. QApplication a(argc, argv);
    15. Widget w;
    16. w.show();
    17. return a.exec();
    18. }

    32的ffmpeg采用32位编译,64位使用64位编译器。

    运行结果

    输出版本信息即配置环境成功。

  • 相关阅读:
    有哪些简单好用的国产数据库?
    多线程之Semaphore原理
    NSSCTF第11页(3)
    Vue - 虚拟DOM的简单理解
    ESP32网络开发实例-使用NTP获取当前时间
    MySQL (十四) 两阶段提交
    java-net-php-python-java雅思教育培训信息管理系统计算机毕业设计程序
    NOIP 2022 游记
    Kafka为什么性能这么快?4大核心原因详解
    el-select 多选模式下嵌套el-tree 删除tag时能去掉el-tree对应节点的勾
  • 原文地址:https://blog.csdn.net/weixin_68880273/article/details/140456505