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
ffmpeg基础与编译_在VS2008下调试output_example.c(详细步骤)的更多相关文章
- centos7下安装oracle11gR2的详细步骤
环境准备 安装包: CentOS-7-x86_64-DVD linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip 本教 ...
- 在AndroidStudio2.3.2下JNI开发的详细步骤(转)
转自:http://blog.csdn.net/luhaoying1111/article/details/72468867 安装NDK 在工具栏点击File->Settings->App ...
- Linux下python安装升级详细步骤 | Python2 升级 Python3
Linux下python升级步骤 Python2 ->Python3 多数情况下,系统自动的Python版本是2.x 或者yum直接安装的也是2.x 但是,现在多数情况下建议使用3.x 那么如 ...
- CentOS 6.5下搭建LAMP环境详细步骤
1.确认搭建LAMP所需的环境是否已经安装: [root@localhost ~]#rpm -q make gcc gcc-c++ zlib-devel libtool libtool-ltdl li ...
- Linux下python安装升级详细步骤 | Python2 升级 Python3 转载
Linux下python升级步骤 Python2 ->Python3 多数情况下,系统自动的Python版本是2.x 或者yum直接安装的也是2.x 但是,现在多数情况下建议使用3.x 那么如 ...
- Linux命令行模式下安装VMware Tools详细步骤
在Linux命令行模式安装VMware Tools 方法/步骤1: 首先启动CentOS 7,在VMware中点击上方"VM",点击"Install VMware Too ...
- linux环境下配置solr5.3详细步骤
本人上周五刚刚配置了一遍centos下配置solr5.3版本,综合借鉴并改进了一些教程,贴出如下 单位使用内网,本教程暂无截图,抱歉 另,本人是使用.net编程调用solr的使用的是solrnet,在 ...
- Linux下安装jdk8的详细步骤
一.登录Linux,切换到root用户 sudo su 二.在usr目录下建立java安装目录 cd /usr mkdir java 三.下载jdk 登录网址:http://www.oracle.co ...
- 【申嵌视频】基于VMWare虚拟机下安装ubuntu操作系统的详细步骤
[申嵌视频]基于VMWare虚拟机下安装ubuntu操作系统 适合搭建mini2440, Tiny6410, smart210,Tiny4412, NanoPC-T2, NanoPC-T3, Nano ...
随机推荐
- Introduction to Deep Neural Networks
Introduction to Deep Neural Networks Neural networks are a set of algorithms, modeled loosely after ...
- 改写java TreeMap制造方便查询的ip内存库
http://www.54chen.com/java-ee/chang-java-treemap-store-ip.html
- hdu 1003(详解) java
算法分析: 一列数 a[0],a[1],……a[i]…… 定义数组b[0],b[1,]……b[i]…… ***b[i]为i之前的任意位置到i的最大连续和!!! b[i]=max{b[i-1]+a[ ...
- iOS视频录制、压缩导出、取帧
概述 花了点时间研究了一下常用的视频获取.录制.压缩.取帧图功能,分享给大家了!相信阅读完本篇文章,会对你有很大的帮助的! 本篇文章研究几下以个功能: 视频录制 从相册选择视频 保持视频到相册 获取视 ...
- iOS开发--浅谈CocoaAsyncSocket编程
Socket就是一种特殊的文件.它是一个连接了两个用户的文件,任何一个用户向Socket里写数据,另一个用户都能看得到,不管这两个用户分布在世界上相距多么遥远的角落,感觉就像坐在一起传纸条一样. 这么 ...
- 39. Combination Sum
题目: Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C ...
- set集合_变长
//set可变集合 //便利初始化函数分配大小 NSMutableSet *mutableSet1 = [[NSMutableSet alloc] initWithCapacity:3]; NSMut ...
- Linux Shell脚本入门:tee命令
用途说明 在执行Linux命令时,我们可以把输出重定向到文件中,比如 ls >a.txt,这时我们就不能看到输出了,如果我们既想把输出保存到文件中,又想在屏幕上看到输出内容,就可以使用tee ...
- android rabbitMQ
http://www.cnblogs.com/wufawei/archive/2012/03/31/2427823.html http://www.raywenderlich.com/5527/get ...
- IOS判断手机型号
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CG ...