Qt+ffmpeg环境搭建

Qt+ffmpeg环境搭建

各平台常见视频开发库举例:

  • iOS:AVFoundation AudioUnit
  • Android:MediaPlayer,MediaCodec
  • Windows:DirectShow
  • Linux:GStreamer

FFmpeg 库是一个跨平台的视频开发库, 还有 libVLC 也是一个跨平台的视频开发库

  • 掌握了其中一个库, 也能很快上手其它库, 因为音视频解码的原理类似

引入 FFmpeg 库有两种方式

一种是直接引入源码进行开发(因为源码庞大,编译较慢,不推荐新手学习时用这种方法)
一种是引入头文件和动态库进行开发,下载地址是:

https://ffmpeg.org/download.html
https://github.com/GyanD/codexffmpeg/releases //下载其它版本可以在这里下载, 已知5.1.2版本可兼容win7

shared版本是有动态库的版本(essentials是必要组件版本,东西可能不全;full是完整版本),gpl和lgpl是开源协议版本不同。
这里我采用的shared版本。

安装Qt

我选择的是5.12版,因为该版本可以直接在网上下载到完整安装包。
编译器选择的是MinGW

将 FFmpeg 库加载到Qt项目当中

  • 在环境变量中添加动态库文件所在路径(例如):
D:\ffmpeg_dev\ffmpeg-6.1.1-full_build-shared\bin
  • 在Qt文件中添加库文件
win32: {
    FFMPEG_HOME=D:\ffmpeg_dev\ffmpeg-6.1.1-full_build-shared
    # 设置 ffmpeg 头文件路径
    INCLUDEPATH += $$FFMPEG_HOME/include

    # 加载 ffmpeg 导入库
    # -L :指定导入库的目录
    # -l :指定要导入的 库名称
    LIBS +=  -L$$FFMPEG_HOME/lib \
             -lavcodec \
             -lavdevice \
             -lavfilter \
            -lavformat \
            -lavutil \
            -lpostproc \
            -lswresample \
            -lswscale
}

测试FFMpeg 库版本

extern "C" {
#include <libavcodec/avcodec.h>
}

qDebug() << "test: FFMpeg Version: "<< av_version_info();
//加入上述代码,如可以正常打印ffmpeg版本,则说明ffmpeg库正常。如下,运行时会在调试窗口打印如下信息:
//test: FFMpeg Version:  6.1.1-full_build-www.gyan.dev

至此,Qt+FFmpeg环境即完成了。

posted @ 2024-08-20 23:17  技术不支持  阅读(222)  评论(0编辑  收藏  举报