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位版本的。
FFmpeg Visual Studio开发(一):环境搭建_第1张图片
接下来在Visual Studio上创建一个Win32控制台工程。FFmpeg Visual Studio开发(一):环境搭建_第2张图片

配置工程

回到刚刚解压出来的ffmpeg-4.3.1-win32-dev文件夹,把里面的include和lib文件夹复制到此工程目录下。
FFmpeg Visual Studio开发(一):环境搭建_第3张图片
点击项目–>属性,打开配置页面。
FFmpeg Visual Studio开发(一):环境搭建_第4张图片
找到包含目录选项,点击编辑。
FFmpeg Visual Studio开发(一):环境搭建_第5张图片
把刚刚项目目录下的include文件夹包含进来。
FFmpeg Visual Studio开发(一):环境搭建_第6张图片
FFmpeg Visual Studio开发(一):环境搭建_第7张图片
接着找到附加库目录,点击编辑
FFmpeg Visual Studio开发(一):环境搭建_第8张图片
把lib文件夹添加进来。
FFmpeg Visual Studio开发(一):环境搭建_第9张图片
找到附加依赖项,点击编辑
FFmpeg Visual Studio开发(一):环境搭建_第10张图片
打开刚刚的lib文件夹,里面所有.lib文件的名字都添加进来,文件名用分号隔开。

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

FFmpeg Visual Studio开发(一):环境搭建_第11张图片
然后一定要记得点击应用,不然又得重来了。
FFmpeg Visual Studio开发(一):环境搭建_第12张图片

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

编写程序

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

#include "stdafx.h"
#include 

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

using namespace std;

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

如果打印了此信息,FFmpeg环境搭建就算是成功了·!建议大家把这个工程备份下来当做模板工程。
FFmpeg Visual Studio开发(一):环境搭建_第14张图片

可能遇到的问题

1.出现找不到dll文件,是因为没有把相应的dll文件复制到exe所在的文件夹,复制过去就可以了。
FFmpeg Visual Studio开发(一):环境搭建_第15张图片
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 中被引用”的有关问题》

你可能感兴趣的:(音视频,FFmpeg,visual,studio,音视频,ffmpeg)