音视频从入门到精通——Visual Studio 2019 配置 ffmpeg5 详细方法
FFmpeg概述
概述
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
项目组成
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了领先的音/视频编码库libavcodec等。
libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构
和读取音视频帧等功能;
libavcodec:用于各种类型声音/图像编解码;
libavutil:包含一些公共的工具函数;
libswscale:用于视频场景比例缩放、色彩映射转换;
libpostproc:用于后期效果处理;
ffmpeg:该项目提供的一个工具,可用于格式转换、解码或电视卡即时编码等;
ffsever:一个 HTTP 多媒体即时广播串流服务器;
ffplay:是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示;
Visual
Studio 2019 配置 ffmpeg 详细方法
1.下载FFmpeg编译好的Windows版本
进入https://www.gyan.dev/ffmpeg/builds/,选择 shared版本下载

2.Visual Studio 2019创建项目
新建一个Empty Project


点击Show All Files,
第一步,添加一个Src目录,添加Application.cpp文件,粘贴代码,切换项目为x64,运行

#include <iostream>
using namespace std;
int main()
{
std::cout << "Hello World!\n";
return 0;
}
如果运行成功,说明Visual Studio 2019 安装正确,前面配置没问题。在src同一级添加Dependencies目录,解压下载好的ffmpeg-5.1.1-full_build-shared.7z,改名为ffmpeg,bin目录里面的文件移入x64\Debug目录,其他目录文件删除。

\ViewFFmpeg5
├── Dependencies
| └── ffmpeg
| ├── include
| └── lib
├── src
| └── Application.cpp
├── ViewFFmpeg5.sln
├── ViewFFmpeg5.vcxproj
├── ViewFFmpeg5.vcxproj.filters
├── ViewFFmpeg5.vcxproj.user
└── x64
└── Debug
右键项目名称->属性->配置属性->c/c+±>附加包含的目录$(SolutionDir)Dependencies\ffmpeg\include

右键项目名称->属性->配置属性->链接器->常规->附加库目录
$(SolutionDir)Dependencies\ffmpeg\lib

右键项目名称->属性->配置属性->链接器->输入->附加依赖项
附加依赖项如下
avcodec.lib
avdevice.lib
avfilter.lib
avformat.lib
avutil.lib
postproc.lib
swresample.lib
swscale.lib

测试代码
#include <iostream>
extern "C" {
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
}
#pragma comment(lib,"avformat.lib")
#pragma comment(lib,"avutil.lib")
#pragma comment(lib,"avcodec.lib")
int main()
{
std::cout << "Hello World!\n";
printf("%s\n", avcodec_configuration());
//打印 avcodec 版本号
printf("%s\n", av_version_info());
}
运行结果

其它
如果是c语言文件,比如main.c则一定要在"附加依赖项"添加引用的库,如果是c++语言,则可以只添加库目录,再通过#pragma comment(lib,"avutil.lib")的形式引用。如果报Link错误,试试看把动态库放在运行目录。

如果项目是c语言,记得把sdl关了,把原来是Yes,改为No.

参考
【FFmpeg学习】Visual Studio 2019 使用 ffmpeg 详细方法
Visual Studio 配置 FFMPEG 开发环境 ( VS2019 CMake 环境安装 )
音视频系列二:Visual Studio2019集成ffmpeg之hello world-相对路径
更多推荐
所有评论(0)