windows下编译配置x264

最近项目需要开发网络视频应用,因为视频要编码,选择使用h.264进行编码,从网上找到x264这个库使用,但是不幸的是这个库是linux下的,但是我们的应用需要部署在windows系统上,故我只能自己编译成动态链接库来使用了,从网上找了好多方法,但是发现都不太好用,到我这老是出问题,特在此将我自己的配置过程记录下来。

我采用的mingw进行编译的方式

首先从网上下载mingw,地址http://sourceforge.net/projects/mingw/,下载下来之后进行安装,到选择安装模块的时候,选择所有的模块,如下图所示:图中显示不全,需要将滚动条向下滑动,选中所有的。


之后进行安装,这个安装是在线的,需要进行一段时间,趁着这个时间我们可以把其他需要的工具下载下来。

从x264的官网下载x264的源代码,http://www.videolan.org/developers/x264.html,下载下来后解压到任意位置,之后下载一个叫yasm的软件,因为在编译x264的时候会用到,地址:http://yasm.tortall.net/Download.html,下载win32版的,如果下载下来的名字不为yasm.exe,将其改名为yasm.exe,此时差不多mingw也安装好了,将yasm拷贝到mingw文件夹下的bin文件夹下,比如我的是C:/mingw/bin。

接下来,进行最重要的一步,将mingw添加进环境变量,否则会出问题,可以使用命令行,也可以使用界面直接设置。命令行使用如下:打开cmd 输入setx MSYS_HOMEc:/mingw/bin,一定要把目录地址设置为自己的mingw的安装文件夹的位置。或者使用界面设置,右键计算机->属性->高级系统设置->环境变量,添加一条新的。

这时,运行mingw文件夹下msys/1.0/msys.bat,然后就能看到如下图所示界面,通过命令行切换到x264源代码所在目录。


然后输入./configure--enable-shared不出意外地话就能成功了,然后输入make,趁着make的时间我们再来下载一个工具用来将dll导出lib,这个工具名字叫做poxports,下载链接:http://sourceforge.net/projects/mingw/files/MinGW/Extension/pexports/,下载之后将poxports.exe放在/mingw/bin目录下,然后等make成功之后执行下面的命令:

pexports d:\\libx264-120.dll >d:\\libx264-120.def

之后打开cmd,切换到x264源代码所在的目录,输入以下命令:(执行这条命令必须确保机器安装了vs2008或者vs2010的vs tools)

lib /machine:x86 /def:libx264-132.def/out:libx264-32.lib

然后就能导出libx264-132.dlllibx264-32.lib

vs新建工程,将libx264-132.dlllibx264-32.lib放到工程目录下,

x264文件夹下拷出x264.hx264_config.h到工程目录下,并添加到工程,

同时再工程设置中添加lib库。编译运行,ok。运行过程可能会提示缺少pthreadGC2.dll

从网上下载一个就好了。

#include <iostream>

#include <string>

#include "stdint.h"

extern "C"

{

#include "x264.h"

#include "x264_config.h"

};

using namespace std;

int main()

{

x264_param_t param;

x264_param_default(&param);

return 0;

}

我觉得这个库其实可以编译好了之后直接拿来用就好了,不用每个人都自己编译一遍的,

我将我自己编译的结果进行了打包,但是今天却不能传到csdn上,所以有需要的可以留下邮箱,

我看到之后直接发你邮箱。等之后可以上传了之后我就直接上传上去。

关于具体的这个库的使用我现在也不太会,等学习了之后再更新怎么编程。

 

我把这个库和我编译好的ffmpeg库都传到了我的github上,需要的点击这里

 

你可能感兴趣的:(windows,x264)