注意:这个是编译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. 多线程Java Socket编程示例(转)

    这篇做为学习孙卫琴<<Java网络编程精解>>的学习笔记吧.其中采用Java 5的ExecutorService来进行线程池的方式实现多线程,模拟客户端多用户向同一服务器端发送 ...

  2. 精通ASP.Net MVC 3 框架(第三版)学习笔记

    精通ASP.Net MVC 3 框架(第三版)学习笔记 代码才是王道. http://pan.baidu.com/s/1pJyL1cn

  3. Sqrt函数高效实现

    转自一个Sqrt函数引发的血案 我们平时经常会有一些数据运算的操作,需要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是如何实现的?就拿最常用的sqrt函数来说吧,系统怎么来 ...

  4. 2015年最新中国知网CNKI免费账号直接入口

    以下是Free9免费资源网小编收集整理的2015年最新中国知网CNKI免费账号直接入口,现免费分享给大家(仅供测试使用),此类文献数据库资源有时效性,希望对您的学习.工作上有所帮助! 中国知网直接入口 ...

  5. lua语言入门之Sublime Text设置lua的Build System

    转自: http://blog.csdn.net/wangbin_jxust/article/details/8911956 最近开始学习LUA语言,使用Sublime Text作为编辑器,不得不说, ...

  6. spring aop通过joinpoint传递参数

    三.总结. 我们可以通过Advice中添加一个JoinPoint参数,这个值会由spring自动传入,从JoinPoint中可以取得. 三.总结. 我们可以通过Advice中添加一个JoinPoint ...

  7. [翻译] - <Entity Framework> - 直接执行数据库命令

    原文:[翻译] - <Entity Framework> - 直接执行数据库命令 纯属学习上的记录, 非专业翻译, 如有错误欢迎指正! 原文地址: http://msdn.microsof ...

  8. 44. Wildcard Matching

    题目: Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any single charact ...

  9. 使用phantomjs实现highcharts等报表通过邮件发送

    使用phantomjs实现highcharts等报表通过邮件发送(本文仅提供完整解决方案和实现思路,完全照搬不去整理代码无法马上得到效果)   前不久项目组需要将测试相关的质量数据通过每日自动生成报表 ...

  10. 在Linux中创建静态库和动态库

    我们通常把一些公用函数制作成函数库,供其它程序使用. 函数库分为静态库和动态库两种. 静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库. 动态库在程序编译时并不会被连接到目标代码中 ...