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,然后创建项目。注意:将项目解决方案和项目放在同一目录中前面的勾要选上,不然默认会多创建一层目录

五、开发环境配置

选中项目右键选择属性:

  1. C/C++->常规->附件包含目录 【$(ProjectDir)..\..\include
  2. 链接器->常规->附加库目录 【$(ProjectDir)..\..\lib
  3. 链接器->输入->附加依赖项

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

  4. 项目->配置管理器选择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提示,*声明已被否决,这时可以通过修改项目的配置方式来解决:

  1. C/C++ ->常规-> SDL检查关掉
  2. C/C++ ->代码生成-> 多线程调试(/MTD)

如果你觉得文章还不错,可以给个"三连"

我是加班猿,我们下期见

03-05 16:18