title: 音视频系列二:Visual Studio2019集成ffmpeg之hello world
categories:[ffmpeg]
tags:[音视频编程]
date: 2021/11/25
<div align = 'right'>作者:hackett</div>
<div align = 'right'>微信公众号:加班猿</div>
一、下载安装Visual Studio
下载地址为:https://visualstudio.microsof...
然后进行安装,安装时选择C/C++开发的选项进行安装,安装时选择如下:
选好就,点击下一步,等待安装就OK了。
二、下载ffmpeg开发包
GitHub下载地址:https://github.com/BtbN/FFmpe...
下载最新的带share版本的,就是已经编译好了的,不用自己再编译 ffmpeg-n4.4.1-2-gcc33e73618-win64-gpl-shared-4.4.zip
├─bin #可执行程序
├─doc #参考文档
├─include #头文件目录
│ ├─libavcodec
│ ├─libavdevice
│ ├─libavfilter
│ ├─libavformat
│ ├─libavutil
│ ├─libpostproc
│ ├─libswresample
│ └─libswscale
├─lib #链接库文件
└─presets
三、创建项目目录
├─bin #程序执行和调试目录
├─include #头文件目录
├─lib #动态链接库目录
└─src #源码目录
四、打开Visual Studio 2019创建项目
将项目创建到src目录下面
文件->新建->项目 选择C++空项目
项目位置选择到src,然后创建项目。注意:将项目解决方案和项目放在同一目录中前面的勾要选上,不然默认会多创建一层目录
五、开发环境配置
选中项目右键选择属性:
- C/C++->常规->附件包含目录 【
$(ProjectDir)..\..\include
】 - 链接器->常规->附加库目录 【
$(ProjectDir)..\..\lib
】 链接器->输入->附加依赖项
avcodec.lib
avformat.lib
avutil.lib
avdevice.lib
avfilter.lib
postproc.lib
swresample.lib
swscale.lib- 项目->配置管理器选择x64
六、创建hello world程序
#include<iostream>
using namespace std;
extern "C" {//包含C头文件
#include "libavutil/log.h"
#include "libavcodec/avcodec.h"
#include "libavfilter/avfilter.h"
#include "libavformat/avformat.h"
#include "libavutil/avutil.h"
#include "libavutil/ffversion.h"
#include "libswresample/swresample.h"
#include "libswscale/swscale.h"
#include "libpostproc/postprocess.h"
};
int main(int argc, char* argv[]) {
av_log_set_level(AV_LOG_DEBUG); //设置日志级别
av_log(NULL, AV_LOG_DEBUG, "hello world log\n"); //打印日志
unsigned int codecVer = avcodec_version();
int ver_major, ver_minor, ver_micro;
ver_major = (codecVer >> 16) & 0xff;
ver_minor = (codecVer >> 8) & 0xff;
ver_micro = (codecVer) & 0xff;
printf("Current ffmpeg version is: %s ,avcodec version is: %d=%d.%d.%d\n", FFMPEG_VERSION, codecVer, ver_major, ver_minor, ver_micro);
system("pause"); //窗口等待
return 0;
}
运行结果:
补充:
如果在运行代码的时候,IDE提示,*声明已被否决,这时可以通过修改项目的配置方式来解决:
- C/C++ ->常规-> SDL检查关掉
- C/C++ ->代码生成-> 多线程调试(/MTD)
如果你觉得文章还不错,可以给个"三连"
我是加班猿,我们下期见