C++从零配置ffmpeg的详细过程

 更新时间:2024年03月01日 09:23:19   作者:执念斩长河  
本博文源于笔者正在做的任务,将视频mp4每帧转换成jpg格式,前提是需要配置ffmpeg,因此本文从0下载教读者如何配置ffmpeg,文中通过图文结合的方式给大家介绍得非常详细,需要的朋友可以参考下

1、百度搜索官网

在这里插入图片描述

官网已经搜索到,我们要找到下载链接,点击进去,下一张图

在这里插入图片描述

一定要选择第二种模式,从github里下载。

在这里插入图片描述

选择倒数第二个zip

在这里插入图片描述

点击进去,我们就下载好了。

2、配置项目

创建一个项目

在这里插入图片描述

然后配置项目属性,项目属性配置三个部分,

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3、创建main.cpp测试库与包

将之前下载的zip进行解压,将其lib,include,放到该目录里

在这里插入图片描述

创建bin目录,将解压的bin里的所有dll放到这里

在这里插入图片描述

main.cpp写下这段测试代码,视频文件没有也没关系,只要能正常编译运行就行

#include <iostream>
extern "C" {
#include<libavcodec/avcodec.h>
#include<libavformat/avformat.h>
#include<libavutil/avutil.h>
#include<libavutil/opt.h>
}

#pragma comment(lib, "avcodec.lib")
#pragma comment(lib, "avformat.lib")
#pragma comment(lib, "avutil.lib")
using namespace std;
int main()
{
    AVFormatContext* pFormat = nullptr;
    string path(R"(11.mp4)");
    int ret = avformat_open_input(&pFormat, path.c_str(), nullptr, nullptr);//打开视频文件
    if (ret)
    {
        cout << "avformat_open_input failed" << endl;
        return -1;
    }
    ret = avformat_find_stream_info(pFormat, nullptr);//查询视频流信息
    if (ret)
    {
        cout << "avformat_open_input failed" << endl;
        return -1;
    }
    av_dump_format(pFormat, 0, nullptr, 0);//在控制台中打印该视频文件的信息。
    getchar();
}

有视频文件能运行暂停分析出视频文件,如果没有视频文件,则会闪退,也代表成功。只要能编译运行都代表成功。

4、总结

只要这样子流程走下来不报错就代表运行成功了。

以上就是C++从零配置ffmpeg的详细过程的详细内容,更多关于C++配置ffmpeg的资料请关注脚本之家其它相关文章!

相关文章

  • 关于C/C++中static关键字的作用总结

    关于C/C++中static关键字的作用总结

    以下是对C/C++中static关键字的作用进行了总结介绍,需要的朋友可以过来参考下
    2013-09-09
  • 使用 C++20 Modules 导入 Boost 模块的方法(问题记录)

    使用 C++20 Modules 导入 Boost 模块的方法(问题记录)

    C++20 引入的 Modules 特性为 C++ 开发带来了诸多好处,如加快编译速度、减少头文件重复包含等问题,本文将详细介绍如何使用 C++20 Modules 导入这些 Boost 模块,感兴趣的朋友一起看看吧
    2025-02-02
  • C++实现LeetCode(647.回文子字符串)

    C++实现LeetCode(647.回文子字符串)

    这篇文章主要介绍了C++实现LeetCode(647.回文子字符串),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C++简单实现的全排列算法示例

    C++简单实现的全排列算法示例

    这篇文章主要介绍了C++简单实现的全排列算法,结合实例形式分析了C++排序操作的实现技巧,需要的朋友可以参考下
    2017-07-07
  • C语言中 & 和 &&的区别详解

    C语言中 & 和 &&的区别详解

    这篇文章主要介绍了C语言中 & 和 &&的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 深入解析C++编程中类的封装特性

    深入解析C++编程中类的封装特性

    这篇文章主要介绍了深入解析C++编程中类的封装特性,是C++入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • Qt使用流处理XML文件的示例代码

    Qt使用流处理XML文件的示例代码

    XML(eXtensible Markup Language)是一种通用的文本格式,被广泛运用于数据交换和数据存储。本文主要来和大家聊聊如何使用 Qt 处理 XML 格式的文档,需要的可以参考一下
    2023-02-02
  • Qt 智能指针QScopedPoint用法小结

    Qt 智能指针QScopedPoint用法小结

    智能指针是C++11引入的一种指针封装类型,用于自动管理动态分配的内存,本文主要介绍了Qt 智能指针QScopedPoint用法小结,感兴趣的可以了解一下
    2024-01-01
  • c语言中static修饰函数的方法及代码

    c语言中static修饰函数的方法及代码

    在本篇内容里小编给大家分享的是一篇关于c语言中static如何修饰函数的知识点内容,有需要朋友们可以跟着学习下。
    2021-10-10
  • C语言实现简单的扫雷游戏操作

    C语言实现简单的扫雷游戏操作

    这篇文章主要为大家详细介绍了C语言实现简单的扫雷游戏操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03

最新评论