Windows10 上构建Qt+ffmpeg开发环境

2 篇文章 0 订阅
1 篇文章 0 订阅

Windows上搭建Qt + ffmpeg开发环境

这是我时隔多年再一次开写博客。这次主题是**构建 Windows10 +msys2+Qt +ffmpeg 开发环境 ** 。

版本选择

工具版本说明
Windows108年老机,512G SSD硬盘 容光焕发
Qt5.15.2最新稳定LTS版,注册账号登录 下载在线安装器
msys24.3.2msys2-x86_64-latest.exe
msys2 pacman 镜像设置
ffmpeg4.3.2下载源码 ffmpeg-4.3.2.tar.gz

安装步骤

直接exe安装
在MinGW64下源码安装
1. wsys2 MinGW64环境
MinGW64 安装完毕
2. Qt5.15.2 oine安装
MinGW64/MinGW32 必选
3. ffmpeg编译安装
configure/make /make instal

其中,1/2两步骤很简单,直接下一步就可以了,唯一要注意的就是,Qt在选择编译make的时候,要选择MinGW64位的(因为ffmpeg默认64位,官方提供的编译好的库也是64位的,我们自己编译出来的也是64位)

编译ffmpeg开发库/可执行文件

第一步,配置configure

大约需要几分钟时间,默默等待,喝杯茶~刷个新闻就过去了:

./configure --prefix=/usr/local/ffmpeg --enable-shared

第二步,编译代码

以我的老年机性能,6G内存,512G SSD,大约花了50分钟。。。

make -j 4 

第三步,安装到指定目录

我们这里安装到MinGW的 /usr/local/ffmpeg

 make install

到这里,ffmpeg就完成编译了,得到了开发库和头文件。

$ ls -l /usr/local/
total 0
drwxr-xr-x 1 nilyang None 0 Mar  1 16:18 etc
drwxr-xr-x 1 nilyang None 0 Mar  4 22:53 ffmpeg

注意: /usr/local/目录是相对于 msys2安装目录而言的,例如我的机子msys2安装到这里 D:\ProgramSofts\msys64,而
/usr/local/ffmpeg的目录就是以此为根目录。
我们的ffmpeg全路径就在这里了:D:\ProgramSofts\msys64\usr\local\ffmpeg

Qt 新建C++工程

拷贝库文件到工程目录下

D:\ProgramSofts\msys64\usr\local\ffmpeg 目录整个拷贝到Qt C++工程目录下,然后引入到项目配置文件中!

main.pro
TEMPLATE = app
TARGET = myapp
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += main.cpp

INCLUDEPATH += $$PWD/ffmpeg/include
DEPENDPATH += $$PWD/ffmpeg/include

LIBS += -L$$PWD/ffmpeg/bin/ -lavformat -lavdevice -lavutil


main.cpp

#include <iostream>
extern "C"
{
#include"libavformat/avformat.h"
#include"libavdevice/avdevice.h"
#include"libavutil/avutil.h"
}
int main()
{

    av_log_set_level(AV_LOG_DEBUG);
    av_log(NULL, AV_LOG_DEBUG,"Hello ffmpeg!\n");
    av_log(NULL, AV_LOG_DEBUG,"ffmpeg version = %s\n", av_version_info());
    return 0;
}

编译成功~
运行结果:

Hello ffmpeg!
ffmpeg version = 4.3.2

新手错误记录

编译器和ffmpeg CPU带宽位不统一,编译器是32位,但是ffmpeg库是64位的,导致如下undefined reference错误

D:\workspace\cpp\build-cppx-Desktop_Qt_5_15_2_MinGW_32_bit-Debug/../cppx/main.cpp:11: undefined reference to `av_log_set_level'
D:\workspace\cpp\build-cppx-Desktop_Qt_5_15_2_MinGW_32_bit-Debug/../cppx/main.cpp:12: undefined reference to `av_log'
D:\workspace\cpp\build-cppx-Desktop_Qt_5_15_2_MinGW_32_bit-Debug/../cppx/main.cpp:13: undefined reference to `av_version_info'
D:\workspace\cpp\build-cppx-Desktop_Qt_5_15_2_MinGW_32_bit-Debug/../cppx/main.cpp:13: undefined reference to `av_log'

解决办法

把编译器改为64位就好了

划重点:
Qt左侧“项目”》“Build&Run”下 ,选择 MinGW 64-bit即可解决!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值