ffmpeg基础与编译_在VS2008下调试output_example.c(详细步骤)

注意:这个是编译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

时间: 2024-09-20 11:00:55

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

64位CentOS 6.0下搭建LAMP环境详细步骤

这篇文章主要介绍了系统环境:Centos6.0 x64的lamp运行环境配置教程,需要的朋友可以参考下   1.确认搭建LAMP所需要的环境是否已经安装 [root@centos6 ~]# rpm -q make gcc gcc-c++ zlib-devel libaio 备注:安装libpng时候需要zlib-devel              安装mysql时候需要libaio 2.如果没安装则yum安装 [root@centos6 ~]# yum install make gcc gcc

linux系统下实现mysql热备份详细步骤(mysql主从复制)_Mysql

主从的作用: 1.可以当做一种备份方式 2.用来实现读写分离,缓解一个数据库的压力  MySQL主从备份原理: Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务. 如果想配置成为同一台上的话,注意安装的时候,选择两个不同的prefix=路径,同时开启服务器的时候,端口不能相同. (1)首先确保主从服务器上的Mysql版本相同(做主从服务器的原则是,MYSQL版本要相同,如果不能满足,最起码从服务器的MYSQL的版

64位CentOS 6.0下搭建LAMP环境详细步骤_Linux

1.确认搭建LAMP所需要的环境是否已经安装 [root@centos6 ~]# rpm -q make gcc gcc-c++ zlib-devel libaio 备注:安装libpng时候需要zlib-devel              安装mysql时候需要libaio 2.如果没安装则yum安装 [root@centos6 ~]# yum install make gcc gcc-c++ zlib-devel libaio -y 3.由于要使用编译安装,所以查看httpd.mysql.

CentOS 6.4下安装Oracle 11gR2详细步骤(多图)_oracle

安装前须知: 内存(RAM)的最小要求是 1GB,建议 2GB 及以上.虚拟内存 swap 建议:内存为 1GB~2GB 时建议swap大小为内存大小的 1.5 倍:内存为 2GB~16GB 时建议swap大小为内存的大小:内存超过 16GB 时swap保持16GB.要求临时文件目录,如 /tmp 的磁盘空间至少 1GB.磁盘空间要求:企业版为4.35GB的安装空间和1.7GB以上的数据文件空间:标准版为4.22GB的安装空间和1.5GB以上的数据文件空间.需要 X window 图形界面.需要

Windows 下安装配置 Eclipse详细教程_java

官网下载 因为本文是基于 Windows 安装的,所以直接打开官网下载即可.http://www.eclipse.org/downloads/eclipse-packages/ 根据自己的系统版本,点击下载 安装 不需要安装,下载解压到你认为合适的位置即可. 双击eclipse.exe,正常情况你看到的应该是启动页面: 这样就安装成功了,接下来可以进入开发工作了.当然,你可能根据自己的喜好进行IDE的调整. 报错啦报错啦 如果双击eclipse.exe出现下面的弹出框,说明环境有问题. 有三种解

Java技术_基础技术(0003)_类执行顺序详解+实例(阿里面试题)+详细讲解+流程图

Java技术_基础技术(0001)_后台模拟调用action Java技术_基础技术(0002)_中间件启动class加载顺序(以tomcat为例) Java技术_基础技术(0003)_类执行顺序详解+实例(阿里面试题)+详细讲解+流程图 Java技术_基础技术(0004)_eclipse远程调试tomcat 基础技术: 对于java类各个成员的执行顺序,现拿出阿里的面试题作为样例(例子非常好,是用心出的题),在这里重新说明一下java类执行顺序的原则. 源码下载(包含题.结果.分析过程) 一.

c语言基础问题,帮我解决下

问题描述 c语言基础问题,帮我解决下 这串代码错在哪儿了,帮我解答下,谢谢,我是初学者 用if语句输入三个数字,输出结果按从大到小的顺序排列 解决方案 #include int main() { int a,b,c,max,mid,min; printf("输入a,b,c:"); scanf("%d%d%d",&a,&b,&c); if (a >= b && a >= c){ max = a; if(b >

重走LFS之路:(八) 基础系统编译-1

重走LFS之路:(八) 基础系统编译-1 (题图来自: techradar.com)   从现在开始,我们进入真正意义上的LFS系统的基础系统编译. 这个阶段比较漫长,中间还有可能出现各种各样的问题,我会尽量翔实地记录遇到的各种状况和解决方案,以供后来参考. Linux-3.19 API Headers cd /src/linux-3.19 执行编译清理 cd /src/linux-3.19 重新编译 make INSTALL_HDR_PATH=dest headers_install 删除非必

代码-C语言基础问题,大神来帮忙下

问题描述 C语言基础问题,大神来帮忙下 这是我的代码,你们看下,我已经发狂了... #include<stdio.h> void main() { char b; int a,i,s; printf("请输入班级总人数 "); scanf("%d",&s); i=1; while (i<=s) { printf("请输入该同学号数 "); scanf("%d",&a); printf(&quo