您的位置:首页 > 编程语言 > C语言/C++

基于windows平台,dev-c++编译工具,搭建ffmpeg 开发环境

2015-11-30 10:52 881 查看
基于windows平台,dev-c++编译工具,搭建ffmpeg 编译环境
1  首先去ffmpeg官网下载最新的ffmpeg (ffmpeg源码路径:http://ffmpeg.zeranoe.com/builds/),对于如何在windows下面编译ffmpeg网上教程已经不计其数,在此不再赘述,我们直接取得最新的编译之后的文件,搭载开发环境;  对于ffmpeg 官网下面有如下几个目录:


根据自己的操作系统类型,选择所需要的版本,其次,对于我的机型是Windows下的64位,因此选择64-bit Downloads,接下来,有三个条目,第一个为静态库,第二个问动态库,第三个为开发库;那么我们选择动态库,以及开发库,由于编译时所西药的环境都在开发库中,同时我们运行我们的程序是需要动态库,那么我们只需要这两个条目,将其下载下来。

2    接下来我们下载最新的dev-c++ 然后将其安装,对此不再赘述;

3   我们得到的解压之后的文件分别为:
   


    对于第一个文件夹: 
     


第一个文件夹也就是dev解压之后,我们所需要的为 include  和 lib, 那么include包含我们所需要的头文件,lib包含我们所需要的库文件,其余可以删除。

         对于第二个文件夹:



       我们所需要的文件为:bin目录为我们运行所需要的动态库文件,其余可以删除.
准备工作已经就绪,我们目前所需要的文件夹就3个,一个include  , 一个lib ,一个bin,
 那么接下来我们开始配置环境。

首先dev-c++新建一个工程。
点击文件->新建->项目,之后自己选择目录,在此不再赘述.(可以选择c 工程,也可以选择c++工程)
5  然后复制源代码到新建的工程的cpp文件中。
6 点击,编译将会出现无数个错误,正如我们所预料的。
7  那么接下来,我们配置环境
7.1  选择工具->编译选项, 出现如下界面:



我们选择目录选项,出现如下信息:
   


然后将我们所解压的文件文件夹的路径添加进去。
   
对于库:我们将我们的lib文件夹的路径添加进去:
  


   
上面的红色标记是我的目录。
对于C和C++,我们将我们的include文件夹的路径添加进去
  


 我的如上图红色标记所示。
更改之后点击确定 
8  
由于dev-c++是通过gcc 环境来编译代码,在此,我们普及一下知识,那么我们通常的做法如:
gcc  main.c   -omain   -lpthread 
8.1   
对于-l参数,是告知我们所需要的库文件,那么它的全名是libpthread.a  那么我们在写的时候只需要写pthread .省略掉lib和.a字符.(l是大写L的小写)

  8.2  对于-L参数 ,告知所需要的库文件的路径。就是上面我们所配置的路径
 8.2 对于-I  参数,告知头文件路径; (I是 小写i的大写)
 很显眼我们需要配置编译选项,也就是如上面的-l(8.1)参数;
 9    同样打开工具,编译选项。 



 如上面红色标记看到的。出现了 -lpthread  -lavcodec.dll  -lavformat.dll  -lavutil.dll  -swscale.dll  那么这些库文件的全名是什么呀?
正如8.1所看到的, 对于 -lavcodec.dll  那么他的全名肯定是 libavcodec.dll.a  ,其他的都如此,那么这些文件在哪里呀,
就在我们刚才解压得到的lib的文件夹中,那么它怎么知道在哪里呀,刚才我们配置了库文件的路径,所以一切都迎刃而解。
9  至此,我们配置就算完成了。
点击编译 ,运行。编译通过;


  然后我们点击运行,将会出现需要动态库,那么,我们刚才解压之后的bin目录,就是我们所需要的,将文件夹下动态库文件复制到应用程序的目录下,就是你建立的工程的目录下。然后点击运行,OK.
10
  至此我们已经搞定.我们接下来测试。进入windows的cmd窗口,然后进入我们的工程目录,生成了一个.exe文件,那么这个文件就是我们所需要的。测试的cpp源码可以在http://blog.csdn.net/fengfeifengfei/article/details/43410205复制粘贴;如果错误,那么就是ffmpeg版本更新,函数发生变化导致,那么查阅相关文档,就可解决;
使用格式为:

应用程序名.exe    hello.ts(各种视频文件格式,如hello.avi等等),运行结果如下图:



  备注:由于是cpp文件,ffmpeg是有纯c编译的,那么我们在头文件中的要添加 extern  "C"{  }
如:
extern "C"

{

#include "libavformat/avformat.h"

#include "libavcodec/avcodec.h"

#include "libavutil/avutil.h"

#include "libswscale/swscale.h"

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息