本文是听了雷宵骅大神的课之后的总结,部分内容借用了其PPT的内容,如有侵权请告知删除。

雷宵骅大神的博客为:https://blog.csdn.net/leixiaohua1020

这里提及一点,原来在一、二节中都是采取PPT的形式,可能过于去修饰PPT的一些细节,导致学习过程十分痛苦。

从本节开始不会去特地的制作PPT,而是直接在文章中写自己的体会感受。


准备工作:


  • Vs2017 (这个自行在网上下载并安装即可)

  • ffmpeg的库

对于ffmpeg的库,请到https://ffmpeg.zeranoe.com/builds/ 进行下载,记得linking这一栏将Dev和shared这两栏的东西全部下载下来并解压缩

下载完成后其Dev目录结构应该是如下所示的样子:

Shared目录结构应该是如下所示的样子:

准备工作(1):新建控制台工程:


1.打开VS2017,依次点击 文件->新建->项目

2.弹出新建项目窗口,选择windows控制台应用程序

这样就大功告成了!这样之后你可以在vs上看到如下界面:

准备工作(2):移入ffmpeg相关文件到工程中


将 Dev解压到的所有文件都放入主函数文件同级目录下,我这里主函数文件为stdafx.cpp。如下图所示。

将Shared解压,进入到bin目录下,将dll结尾的文件放入主函数文件同级目录下,我这里主函数文件为stdafx.cpp。如下图所示。

准备工作(3):在vs2017中进行项目配置


在准备工作(2)中,我们移动了ffmpeg相关的文件到项目的文件夹下,但是这只是我们的操作,vs2017软件还不认识,为了让其利用起这些文件,我们需要进行项目配置

在vs窗口中右侧有个解决方案资源管理器

1.添加头文件目录,依次点击 C/C++ ->常规 -> 附加包含目录 ,将include目录添加进去,如下图所示

2.添加库目录,和添加头文件目录的方式一致, 依次点击 链接器  -> 常规 -> 附加库目录,将项目中的lib文件夹添加进来

3.添加库,依次点击 链接器 ->输入 ->附加依赖项,将lib文件下所有以lib结尾的文件名都输入进去,如下图所示:       

要填写的内容为以下

avcodec.lib

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

测试


测试代码(写入到主函数文件test_ffmpeg.cpp中)如下:

// test_ffmpeg.cpp: 定义控制台应用程序的入口点。
// #define __STDC_CONSTANT_MACROS #include "stdafx.h" extern "C" { #include "libavcodec/avcodec.h" } int main()
{
printf("%s", avcodec_configuration());
while ();
return ;
}

最后会看到如下画面即为成功

视频专家之路【三】:Vs开发环境的搭建的更多相关文章

  1. 从零开始学习音视频编程技术(三) 开发环境搭建(Qt4.86手动设置环境,主要就是设置g++和qmake,比较透彻,附下载链接)

    1.先下载安装Qt 我们使用的版本是4.8. 可以自行百度下载也可以从下面的网盘地址下载: Qt库和编译器下载: 链接:http://pan.baidu.com/s/1hrUxLIG 密码:0181 ...

  2. 小白学习Python之路---开发环境的搭建

    本节内容 1.Python的介绍 2.发展史 3.安装Python 4.搭建开发环境 5.Hello World程序 一.Python的介绍 Python的创始人为荷兰人吉多·范罗苏姆(Guido v ...

  3. 基于GTK+3 开发远程控制管理软件(C语言实现)系列三 Windows7开发环境搭建

    一.介绍与准备 考虑到目标客户端基本都是windows客户端,所以此次开发环境将搭建在windows7下,相关开发工具有Msys2 和 Eclipse For C/C++ Msys2 是msys的升级 ...

  4. 视频专家之路【四】:ffmpeg简单实战之获取属性

    本文是听了雷宵骅大神的课之后的总结,部分内容借用了其PPT的内容,如有侵权请告知删除. 雷宵骅大神的博客为:https://blog.csdn.net/leixiaohua1020 本节的目的正式开始 ...

  5. JAVA 基础(1)开发环境的搭建以及开发工具的选择

    ​  我们现在还是在学习阶段因此我们不用配置那么多的jdk,配置一个jdk8就够应付日常的学习了.前面的文章我尽量写详细一些照顾刚入坑的朋友.后文还有教大家怎么使用企业版的idea. 一.开发环境的搭 ...

  6. 总结:Mac前端开发环境的搭建(配置)

    新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...

  7. Idea开发环境中搭建Maven并且使用Maven打包部署程序

    1.配置Maven的环境变量 a.首先我们去maven官网下载Maven程序,解压到安装目录,如图所示: b.配置M2_HOME的环境变量,然后将该变量添加到Path中 备注:必须要有JAVA_HOM ...

  8. Linux学习心得之 Linux下命令行Android开发环境的搭建

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...

  9. Java开发环境的搭建以及使用eclipse从头一步步创建java项目

    一.java 开发环境的搭建 这里主要说的是在windows 环境下怎么配置环境. 1.首先安装JDK java的sdk简称JDK ,去其官方网站下载最近的JDK即可..http://www.orac ...

  10. Android_开发工具的下载和开发环境的搭建

    一.Android开发工具的下载  Android开发者官网: http://developer.android.com/           Android开发工具:http://www.andro ...

随机推荐

  1. alpha阶段绩效考核

    (按姓氏拼音顺序) (评分还考虑了从开题至今的博客.汇报等工作,但由于太杂乱没法列出) 陈修远 B+ 后端技术踩坑及代码编写 傅泳淦 A- Android端技术踩坑及代码编写 李浩冉 B   后端知识 ...

  2. php yield关键字以及协程的实现

    php的yield是在php5.5版本就出来了,而在初级php界却很少有人提起,我就说说个人对php yield的理解 Iterator接口 在php中,除了数组,对象可以被foreach遍历之外,还 ...

  3. 转载:java集合类数据结构分析

    数组是 最常用的数据结构.数组的特点是长度固定,可以用下标索引,并且所有的元素的类型都是一致的.数组常用的场景有把:从数据库里读取雇员的信息存储为 EmployeeDetail[],把一个字符串转换并 ...

  4. Codeforces 1186F - Vus the Cossack and a Graph 模拟乱搞/欧拉回路

    题意:给你一张无向图,要求对这张图进行删边操作,要求删边之后的图的总边数 >= ceil((n + m) / 2), 每个点的度数 >= ceil(deg[i] / 2).(deg[i]是 ...

  5. 判断Xen虚拟机随想

    kvm xen虚拟化技术  剑桥大学开发,vmware visualbox windows下检测是否安装,注册表读取安装路径 linux下检测是否安装 rpm -qa 列出 判断软件包是否安装,rpm ...

  6. GOOSE报文解析

    GOOSE报文解析 变电站 使用 MMS报文 http://www.360doc.com/content/16/1014/20/36538220_598459873.shtml

  7. RabbitMQ学习第三记:发布/订阅模式(Publish/Subscribe)

    工作队列模式是直接在生产者与消费者里声明好一个队列,这种情况下消息只会对应同类型的消费者. 举个用户注册的列子:用户在注册完后一般都会发送消息通知用户注册成功(失败).如果在一个系统中,用户注册信息有 ...

  8. 51单片机外部中断INT0实例(汇编程序)

    ;普中51开发板 ;单片机的P3.2(INT0)引脚与按键K3脚连接 ;用汇编语言实现:按一次K1外部中断INT0响应一次,LED显示值加1(十进制), ;前提是共阴数码LED第一位,需要设定,由P0 ...

  9. JavaSE---Runtime类

    1.概述 1.1 Runtime类  代表 java程序运行时环境: 1.2 Runtime类  提供的类方法: getRuntime():获取Runtime实例: gc():通知垃圾回收器回收资源: ...

  10. 【leedcode】950. Reveal Cards In Increasing Order

    题目如下: In a deck of cards, every card has a unique integer.  You can order the deck in any order you ...