注意:这个是编译Debug版本的。
必要资源:FFMPEG SDK 3.2(已经编译好的,可以去http://www.bairuitech.com/html/ruanjianxiazai/ffmpeg/20080414/89.html下载)
1.建立一个空的VC++工程
  建立好之后,将FFMPEG SDK 3.2下的output_example.c文件拷贝至路径“%Project Dir%/%Project Name%/”下
  其“%Project Dir%”为你所建立的工程的路径,“%Project Name%”为工程名。我的工程路径为“D:/ARM DEV/FFMPEG/VS FFMPEG/example”
  工程名为example,因此我就要将output_example.c拷贝至路径“D:/ARM DEV/FFMPEG/VS FFMPEG/example/example”下。
2.拷贝头文件
  将FFMPEG SDK 3.2下的include文件夹下的所有文件及文件夹拷贝至output_example.c同一个目录下。
3.为工程导入output_example.c以及头文件
  A:在解决方案视图里右键单击“Source Files”->Add->Exsiting Item 然后选择工程路径下的output_example.c文件。
  B:在解决方案视图里右键单击“Header Files”->Add->Exsiting Item 然后选择工程路径下的前面拷贝过去的所有的头文件。
4.修改头文件
  修改你所引用到的头文件。因为output_example.c里只引用了2个头文件avformat.h,swscale.h
  所以分别在这两个头文件中加入如下代码:
#ifdef __cplusplus
extern "C" {
#endif
/*.你要引用的头文件的内容..*/
#ifdef __cplusplus
}
#endif
前半部分放在头文件的最开头,后半部分放在头文件的最末尾。这样就可以引用正常使用ffmpeg提供的函数了。

5.拷贝lib文件
  将FFMPEG SDK 3.2下的lib文件夹拷贝至output_example.c同一个目录下。
6.为项目添加所需要的lib文件
  A:在Project->Properties->Linker->General->Additional Library Directories下输入“$(SolutionDir)/$(ProjectName)/lib”,然后点OK。
  B:在Project->Properties->Linker->Input->Additional Dependencies下输入“avcodec.lib avdevice.lib avfilter.lib avformat.lib avutil.lib swscale.lib”,然后点OK。
7.修改output_example.c文件
  将output_example.c里的“#include "avformat.h"”和“#include "swscale.h"”
  修改为“#include "libavformat/avformat.h"”和“#include "libswscale/swscale.h"”。
8.修改编译输出路径
  在Project->Properties->Linker->General->Output Directory下输入“$(SolutionDir)/$(ProjectName)/$(ConfigurationName)”,然后点OK。
好了,开始编译。会发现找不到stdint.h这个文件,于是将出现问题的头文件中的“include <stdint.h>”改为“include "stdint.h"”,继续编译,直到所有头文件中的“include <stdint.h>”都改为“include "stdint.h"”为止。
好了,到这一步编译已经没有问题了,可是运行的时候会出现找不到avformat.dll等信息。要想能运行必须为工程添加相应的dll文件。
9.添加dll文件
  将FFMPEG SDK 3.2下的bin文件夹下的所有文件拷贝至工程文件夹下的Debug文件夹下,这个时候就可以运行output_example.exe了。
可能还有别的办法,比如可能很多头文件是不用的,但是我这里全部都添加进来了,原因是我是新手...只要能调通就万事大吉了,呵呵
希望这个帖子能帮助到一些跟我一样的菜鸟朋友么,大家加油,哈哈。

转载于

http://bbs.chinavideo.org/viewthread.php?tid=3960&extra=page%3D1%26amp%3Bfilter%3Ddigest

ffmpeg基础与编译_在VS2008下调试output_example.c(详细步骤)的更多相关文章

  1. centos7下安装oracle11gR2的详细步骤

    环境准备 安装包: CentOS-7-x86_64-DVD linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip 本教 ...

  2. 在AndroidStudio2.3.2下JNI开发的详细步骤(转)

    转自:http://blog.csdn.net/luhaoying1111/article/details/72468867 安装NDK 在工具栏点击File->Settings->App ...

  3. Linux下python安装升级详细步骤 | Python2 升级 Python3

    Linux下python升级步骤  Python2 ->Python3 多数情况下,系统自动的Python版本是2.x 或者yum直接安装的也是2.x 但是,现在多数情况下建议使用3.x 那么如 ...

  4. CentOS 6.5下搭建LAMP环境详细步骤

    1.确认搭建LAMP所需的环境是否已经安装: [root@localhost ~]#rpm -q make gcc gcc-c++ zlib-devel libtool libtool-ltdl li ...

  5. Linux下python安装升级详细步骤 | Python2 升级 Python3 转载

    Linux下python升级步骤  Python2 ->Python3 多数情况下,系统自动的Python版本是2.x 或者yum直接安装的也是2.x 但是,现在多数情况下建议使用3.x 那么如 ...

  6. Linux命令行模式下安装VMware Tools详细步骤

    在Linux命令行模式安装VMware Tools 方法/步骤1: 首先启动CentOS 7,在VMware中点击上方"VM",点击"Install VMware Too ...

  7. linux环境下配置solr5.3详细步骤

    本人上周五刚刚配置了一遍centos下配置solr5.3版本,综合借鉴并改进了一些教程,贴出如下 单位使用内网,本教程暂无截图,抱歉 另,本人是使用.net编程调用solr的使用的是solrnet,在 ...

  8. Linux下安装jdk8的详细步骤

    一.登录Linux,切换到root用户 sudo su 二.在usr目录下建立java安装目录 cd /usr mkdir java 三.下载jdk 登录网址:http://www.oracle.co ...

  9. 【申嵌视频】基于VMWare虚拟机下安装ubuntu操作系统的详细步骤

    [申嵌视频]基于VMWare虚拟机下安装ubuntu操作系统 适合搭建mini2440, Tiny6410, smart210,Tiny4412, NanoPC-T2, NanoPC-T3, Nano ...

随机推荐

  1. GameMap其他初始化

    //其他初始化 init_prop();//初始化道具 init_ornamemtal();//初始化装饰物 init_monster_type_info();//初始化怪物基本信息 这个比较重要在加 ...

  2. 【锋利的JQuery-学习笔记】遮罩层

    效果图:  鼠标移动到上面后---> html: <div id="jnBrandList"> <ul> <li> <a href= ...

  3. Java学习第七篇:与运行环境交互

    目录 一.与用户互动 1.main方法形参 2.使用Scanner类获取输入 3.使用BufferedReader类获取输入 二.常用类 1.System类和Runtime类 2.String, St ...

  4. ext3grep 恢复删除

    Linux ext2/ext3 文件删除恢复工具ext3grep安装使用 2010-08-23 18:03:10|  分类: 默认分类|举报|字号 订阅     一.           安装前系统环 ...

  5. Silverlight弹出层(转载)

    ChildWindow为Silverlight中的弹出子窗口 可以在项目新建子窗口文件: 相互传值: //父窗体向子窗体传值,需要在ChildWindow中构造函数进行传值ChildWindowTes ...

  6. Struts 2知识回顾----拦截器(Intercept)总结

    什么是Struts 2拦截器? 从软件构架上来说,拦截器是实现了面向方面编程的组件.它将影响了多个业务对象的公共行为封装到一个个可重用的模块,减少了系统的重复代码,实现功能的高度内聚,确保了业务对象的 ...

  7. POJ3087Shuffle'm Up(map)

    http://poj.org/problem?id=3087 题意 : 我只能说,,英语不好是硬伤...这个题比较别扭啊,不知道真正题意是不是我所想的,我先把我A了的代码按照的题意的意思说一下,就是说 ...

  8. docker: "build" requires 1 argument. See 'docker build --help'.

    http://bbs.csdn.net/topics/391040030 docker build  --tag="ouruser/sinatra:v3" -<Dockerf ...

  9. 欧拉工程第69题:Totient maximum

    题目链接 欧拉函数φ(n)(有时也叫做phi函数)可以用来计算小于n 的数字中与n互质的数字的个数. 当n小于1,000,000时候,n/φ(n)最大值时候的n. 欧拉函数维基百科链接 这里的是p是n ...

  10. SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式)

    转载:http://itindex.net/detail/50710-springaop-controller-service 从业近二,三年了,第一次写博客,平时做做脚手架或者架构一些基础框架然后给 ...