FFmpeg Visual Studio开发(一):环境搭建

介绍

FFmpeg是一个强大的音视频编解码开源库。目前(2022/2/9)FFmpeg版本已经到了4+,支持多种平台。本篇文章将讲解如何在Visual Studio上搭建FFmpeg环境并编写FFmpeg的HelloWorld程序。

准备工作

在此之前,大家先做好心理准备吧。在环境搭建过程中会遇到相当多的坑,FFmpeg的学习光是这一步就劝退很多人了。坚持下来吧。

这里使用的是Visual Studio 2013,FFmpeg使用的是4.3版本。FFmpeg分为static(静态库)、shared(动态库)和dev(开发者)三个版本。FFmpeg的压缩包可以到我的Gitee上下载。

解压和创建工程

首先把FFmpeg的压缩文件解压出来,压缩文件分为32位版本和64位版本,这里解压的是32位版本的。
在这里插入图片描述
接下来在Visual Studio上创建一个Win32控制台工程。在这里插入图片描述

配置工程

回到刚刚解压出来的ffmpeg-4.3.1-win32-dev文件夹,把里面的include和lib文件夹复制到此工程目录下。
在这里插入图片描述
点击项目–>属性,打开配置页面。
在这里插入图片描述
找到包含目录选项,点击编辑。
在这里插入图片描述
把刚刚项目目录下的include文件夹包含进来。
在这里插入图片描述
在这里插入图片描述
接着找到附加库目录,点击编辑
在这里插入图片描述
把lib文件夹添加进来。
在这里插入图片描述
找到附加依赖项,点击编辑
在这里插入图片描述
打开刚刚的lib文件夹,里面所有.lib文件的名字都添加进来,文件名用分号隔开。

avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib

在这里插入图片描述
然后一定要记得点击应用,不然又得重来了。
在这里插入图片描述

终于到配置的最后一步了。还记得刚刚解压的ffmpeg-4.3.1-win32-shared文件夹吧?进到bin文件夹,把里面的.dll文件复制到工程的Debug文件夹里(也就是生成exe的地方)。程序在运行的时候会动态加载dll库文件,它需要和exe文件放在同一个文件夹下。
在这里插入图片描述
至此,配置工作就算是完成了。不放心的朋友再回去核对一下。

编写程序

主程序代码相当简单,就是打印一下FFmpeg的配置信息。

#include "stdafx.h"
#include <iostream>

extern "C"
{
#include "libavformat/avformat.h"
};

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	
	cout << avcodec_configuration() << endl;
	return 0;
}

如果打印了此信息,FFmpeg环境搭建就算是成功了·!建议大家把这个工程备份下来当做模板工程。
在这里插入图片描述

可能遇到的问题

1.出现找不到dll文件,是因为没有把相应的dll文件复制到exe所在的文件夹,复制过去就可以了。
在这里插入图片描述
2.提示无法解析的外部符号”和“该符号在函数_wmain 中被引用,是因为FFmpeg的库版本和运行版本不一致,比如32位运行版本使用了64位FFmpeg库。本文使用的是32位的FFmpeg库。运行版本也是32位。

3.#include “libavformat/avformat.h”,包含FFmpeg相关头文件时报错。首先可能是之前的include文件夹设置不正确,其次可能是没加extern “C”{},FFmpeg使用的c语言,而我们的工程是c++,需要extern "C"来兼容C语言。

extern "C"
{
//#include ffmpeg的头文件
};

4.如果还是难以调试成功,那就到我的Gitee上下载模板工程吧。

最后

本篇文章讲解了如何在Visual Studio上搭建FFmpeg环境。下一篇文章我们来学习如何使用FFmpeg解封装视频。

参考文章

《配置visual studio中的ffmpeg开发环境》
《FFMPEG学习:三种版本(static、shared、dev)和常用命令集》
《visual studio2017 添加dll库》
《FFmpeg 切换新的版本后,编译报LNK2019 无法解析的外部符号 _av_register_all》
《关于“无法解析的外部符号”和“该符号在函数_wmain 中被引用”的有关问题》

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值