[QT][FFMPEG]环境搭建

1 篇文章 0 订阅

QT-FFMPEG 环境搭建

准备阶段

1.QT Creator 4.8.2 + MinGW 32bit

2. FFMPEG 4.1.1 win32  share  和  dev

动手阶段

创建qt工程

导入ffmpeg到qt工程

总结

代码下载

参考例子


 

准备阶段

1.QT Creator 4.8.2 + MinGW 32bit

2. FFMPEG 4.1.1 win32  share  和  dev

下载地址: https://ffmpeg.zeranoe.com/builds/

Document address: 

https://www.baidu.com/link?url=BdhFuWoNwnRoyBs-H1-hBzdxHfyHrHtCoi6YfqbeqjGdoVoPopjnEvInxSoOKqWC&wd=&eqid=91f33882000ae505000000065c9e501e

关于 static share dev 三个版本的介绍

Static里面只有3个应用程序:ffmpeg.exe,ffplay.exe,ffprobe.exe,每个exe的体积都很大,相关的Dll已经被编译到exe里面去了。

Shared里面除了3个应用程序:ffmpeg.exe,ffplay.exe,ffprobe.exe之外,还有一些Dll,比如说avcodec-54.dll之类的。Shared里面的exe体积很小,他们在运行的时候,到相应的Dll中调用功能。

Dev版本是用于开发的,里面包含了库文件xxx.lib以及头文件xxx.h,这个版本不包含exe文件。

动手阶段

下载并且安装qt creator + mingw 32bit, 下载好ffmpeg.

创建qt工程

为了简单使用,建立一个名为  ffmpeg_create 的 qt console application 工程

导入ffmpeg到qt工程

1.把 ffmpeg dev 文件夹(ffmpeg-4.1.1-win32-dev) 更名为 ffmpeg_32,放入到与 qt工程文件(ffmpeg_create.pro)同级目录下.

2.在qt工程文件(ffmpeg_create.pro)中加入ffmpeg的链接.

#原文:https://blog.csdn.net/muyuyuzhong/article/details/82747760
win32 {
INCLUDEPATH += $$PWD/ffmpeg_32/include
LIBS += $$PWD/ffmpeg_32/lib/avformat.lib   \
        $$PWD/ffmpeg_32/lib/avcodec.lib    \
        $$PWD/ffmpeg_32/lib/avdevice.lib   \
        $$PWD/ffmpeg_32/lib/avfilter.lib   \
        $$PWD/ffmpeg_32/lib/avutil.lib     \
        $$PWD/ffmpeg_32/lib/postproc.lib   \
        $$PWD/ffmpeg_32/lib/swresample.lib \
        $$PWD/ffmpeg_32/lib/swscale.lib
}

3.在 main.c 文件中加入代码并且验证ffmpeg是否正常工作.

#include <QCoreApplication>
#include <QDebug>
extern "C"
{
//原文:https://blog.csdn.net/u011831771/article/details/78536362
    #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>
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    qDebug()<<"This is ffmpeg environment create 2019-3-30 00:36:22 \n";
    qDebug()<<avcodec_version();



    return a.exec();
}

此时编译执行后得到黑色窗口,qDebug并未执行成功,说明程序出现问题:

出现这个的原因是, ffmpeg dev 仅用于开发使用,编译生成软件的时候需要 ffmpeg 的动态链接库,所以在 debug 程序的文件夹内加入 ffmpeg share/bin 内容

这时候 debug 文件夹变为:

此时在编译运行,则可以得到一个输出结果:

至此,动手阶段结束.

总结

使用 ffmpeg 搭建环境有亮点需要注意:

1.区分 ffmpeg static share dev 的作用, 编写代码的时候使用的是 dev, 编译软件后使用的是 share.

2.把 ffmpeg 加入到 qt 工程中,有使用绝对地址和相对地址的办法,上文使用的是相对地址完成,相对地址有利于多人合作编写.

代码下载

GITEE: https://gitee.com/ourran/QT-FFMPEG-DEMO

 

参考例子

1.QT+FFMPEG4.0 Windows开发环境搭建 https://blog.csdn.net/muyuyuzhong/article/details/82747760

2.QT-ffmpeg环境搭建及使用 https://www.baidu.com/link?url=XzsWUgqnvTISU3qYGFUHwn9M34zcNZSAoZNZQDDmDrp26SB9myHOpSTs13sD0Ph4zYyeov2GqQYsnkXKlLRJ0kgMO2f25r8sOcacK2Kbawe&wd=&eqid=95a6273f0003b76f000000065c9e446b

3.Qt与FFmpeg联合开发指南(一)——解码(1):功能实现 https://www.cnblogs.com/learnhow/p/8970019.html

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值