在上篇文章Visual Studio 开发(一):安装配置Visual Studio Code 中,我们讲了一下如何配置VS CODE,来编写和调试C的代码。如果你已经使用VS Code回顾和复习好C相关的知识了,并且有想深入学习FFmpeg的方法,那么可以看看这篇文章,相信对你会很有帮助。

一、下载安装Visual Studio

下载地址为:https://visualstudio.microsoft.com/zh-hans/downloads/

然后进行安装,安装时选择C/C++开发的选项进行安装,安装时选择如下:

选好就,点击下一步,等待安装就OK了。

二、创建项目并配置FFmpeg开发环境

在文件中新建一个项目,自行起一个项目名称,例如FFmpegTest,下面是我创建项目的目录结构:

里面的代码是一个Hello World的代码,并说明了如何运行起来这个项目(针对新手)。

尝试运行一下,如果运行没问题,那么我们的Visual Studio 2017 就说明安装的没问题了,下面开始配置FFmpeg的开发环境了。

1. 下载FFmpeg的源码、库、链接文件

首先需要去FFmpeg官网下载相应的内容:

下载地址为:https://ffmpeg.zeranoe.com/builds/,这里有三种类型的:static、shared、dev。

先解释一下这三种类型的用处:

  • static:打包好的文件,可以认为是FFmpeg的release版本,提供的是ffmpeg、ffplay、ffprobe三个命令行工具。(只学习命令行的同学可以将此配置到环境变量上)
  • shared:这个包包含static的文件,但是相比较多了链接文件DLL,这些DLL文件在后面开发环境配置配置中会用到。
  • dev:这个是纯开发版本的文件,不包含ffmpeg、ffplay、ffprobe这些命令行工具,但是包含我们开发时使用的头文件(位于include目录),及liib文件(位于lib目录),以及example文件(用于学习和使用)。

从上面的类型说明中,可以知道,我们需要下载的是shared和dev两个文件,为了减少使用时的问题,建议下载32位的文件

附:本人以及将下载好的上传到:https://github.com/renhui/Thinking-in-AV/tree/master/FFmpeg/environment方便浏览和查阅。

然后将这些文件拷贝到项目中,具体如下:

  1. 将shared的DLL文件拷贝到项目中。
  2. 将dev的include和lib文件夹一起拷贝到目录中。

2. 配置FFmpeg开发环境

添加附加包含目录指向拷贝的include文件,如下:

添加附加库目录,如下:

添加附加依赖项,内容为

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

添加后界面如下:

至此,FFmpeg的开发环境配置完毕了。

3.验证FFmpeg开发环境

如何验证FFmpeg能正常使用了,这个简单,运行一段FFmpeg的代码即可。

例如:

#include "pch.h"
#include <iostream> extern "C"{
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
} int main(int argc, char* argv[]) {
printf("%s\n", avcodec_configuration());
return ;
}

如果编译运行不报错,且输出如下的界面,则说明FFmpeg设置成功了:

FFmpeg学习的环境问题没有了,后续就可以可以自行学习和发挥了。海阔凭鱼跃,天高任鸟飞!

4.  补充

如果在运行代码的时候,IDE提示,***声明已被否决,这时可以通过以下几种方式来解决:

1. 修改项目的配置

Project Properties > Configuration Properties > C/C++ > General > SDL checks关掉

2. 代码中添加编译参数信息

#pragma warning(disable: 4996)

Visual Studio 开发(二):VS 2017配置FFmpeg开发环境的更多相关文章

  1. ASP.NET 5系列教程 (五):在Visual Studio 2015中使用Grunt、Bower开发Web程序

    基于Visual Studio 2015,你可以: 方便的管理前端包,如jQuery, Bootstrap, 或Angular. 自动运行任务,如LESS.JavaScript压缩.JSLint.Ja ...

  2. 【广州.NET社区推荐】【译】Visual Studio 2019 中 WPF & UWP 的 XAML 开发工具新特性

    原文 | Dmitry 翻译 | 郑子铭 自Visual Studio 2019推出以来,我们为使用WPF或UWP桌面应用程序的XAML开发人员发布了许多新功能.在本周的 Visual Studio ...

  3. Visual Studio C# 利用git和github协同开发时产生冲突的解决办

    Visual Studio C# 利用git和Github协同开发时产生冲突的解决办法 前言:在前两天的助教作业中,发现了自己没有办法解决在用vs开发C#的窗体项目的过程中产生的冲突问题,在查阅了资料 ...

  4. 用Visual Studio 2015 编写 MASM 汇编程序(一)环境配置

    原文地址:http://kipirvine.com/asm/gettingStartedVS2015/index.htm#CreatingProject 下面内容根据上面文章翻译整理而来! 开发32位 ...

  5. Visual Studio 2015 使用ODP.net进行EF开发

    刚转了新公司,以前公司都是用VS+MSSQL作为开发工具的 现在新公司由于数据库是Oracle,而且新公司比较小规模,开发团队也没有什么规范 访问数据库的方式一直使用ADO.net的DataTable ...

  6. caffe搭建----Visual Studio 2015+CUDA8.0+CUDNN5配置Caffe-windows(BLVC)

    原文来源:  来源:Angle_Cal  2016-12-19 17:32 本博主修改于2017-09-12.  版权所有,转载请注明出处.   BLVC版本的Caffe-windows已经支持Vis ...

  7. visual studio 2015 Opencv4.0.1配置

    最近由于工作需要,要配置opencv,我的电脑vs的version是2015,在网上下载了最新的opencv 4.0.1 自己摸索总是很困难,网上的例子也比较多,但版本比较低,也不确定适不适合vs20 ...

  8. visual studio 2019 + cmake 实现windows linux跨平台开发环境搭建

    visual studio 2019开始支持cmake跨平台开发. 以前cmake项目需要先生成vs项目,然后vs直接使用vs项目开发.现在可以直接用vs2019创建或打开cmake项目. 使用vis ...

  9. Visual Studio中没有为此解决方案配置选中要生成的项目

    问题: Visual Studio点击"生成解决方案"时,出现"没有为此解决方案配置选中要生成的项目". 解决方法: 菜单->生成->配置管理器-& ...

随机推荐

  1. 笔记之monkey参数(一)

    monkey 参数 参数分类 常规类参数 事件类参数 约束类参数 调试类参数 常规类参数 常规类参数包括帮助参数和日志信息参数.帮助参数用于输出Monkey命令使用指导:日志信息参数将日志分为三个级别 ...

  2. Putty6.0 提示Access denied

    1.如果putty能正常使用,解决方法很简单: 只要在Putty的configuration里面Connection->SSH->Auth->GSSAPI的配置中,去掉默认的Atte ...

  3. Linux驱动之内核自带的S3C2440的LCD驱动分析

    先来看一下应用程序是怎么操作屏幕的:Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux抽象出FrameBuffer这个设备来供用户 ...

  4. JS继承(一)

    突然发现自己很久没写过什么东西了 其实从博客更新的速度上就可以看出一个人近期有没有成长 对 …… 我没有成长 也可以由此看出自己选择的企业是不是对的 对 …… 我不会离职…… 略略略 来咬我啊…… 于 ...

  5. 《笨方法学Python》加分题16

    基础部分 # 载入 sys.argv 模块,以获取脚本运行参数. from sys import argv # 将 argv 解包,并将脚本名赋值给变量 script :将参数赋值给变量 filena ...

  6. react-01

    比较了半天VUE.Angular.React,最终选择React,下面从几个例子开始React的学习,先从单个的index.html,引用react.js开始 一.最简单的纯JS的代码 <!DO ...

  7. c语言实验一

    #include <stdio.h> int main(){ int a,b,sum; a=123; b=456; sum = a + b; printf("sum is %d\ ...

  8. Scrum冲刺阶段4

    成员今日完成的任务 人员 任务 何承华 学习后端设计 陈宇 后端设计 丁培辉 学习后端设计 温志铭 日程添加界面设计(一半) 杨宇潇 日程添加界面设计(一半) 张主强 服务器构建 成员遇到的问题 人员 ...

  9. new Image().src资源重复请求问题

    const img = new Image(); img.setAttribute("crossOrigin", 'Anonymous'); img.src = url + '?t ...

  10. nginx高级用法汇总

    1,nginx限制IP访问,允许IP访问 1.1 模块:nginx_http_access_module 注意:检测顺序是按配置顺序进行的,匹配首条规则将会被使用,所以要注意在配置文件配置的顺序. a ...