windows下使用vs2008编译x264支持多线程


 

使用x264进行编码的时候,输入命令行:x264.exe -f 25 -B 512 --threads 2 -o test.264 mobile.yuv 352x288

发现编码速度没有变化,提示:not compiled with pthread support!

需要重新编译支持多线程的x264版本。

参考:http://www.rosoo.net/a/201110/15221.html

1. 从http://sourceware.org/pthreads-win32/ 下载pthread的win32版本,把其中的include和lib加入到VC++的引用目录中去。

2. 在libx264_vs2008项目属性的“C/C++ -> 预处理器 ->预处理器”中加入SYS_MINGW。

3. 在osdep.h文件,紧接着#ifdef USE_REAL_PTHREAD加入

#pragma comment(lib, "pthreadVC2.lib")

引用pthreadVC2.lib,重新编译。

2009年10月的77版本

4. 在x264_vs2008项目属性的“C/C++ -> 预处理器 ->预处理器”中加入HAVE_PTHREAD。

其它版本请自己根据可能的编译错误随机应变。调整项目属性意味着同时调整libx264和x264两处的属性。

经过如上调整编译出的X264就可以在--threads n //n>=2的时候用完CPU的潜力了。

 

备注:一开始我在两个工程项目中均加入了HAVE_PTHREAD和SYS_MINGW,结果编译出来的x264始终无法消除不支持多线程的警告。

             按照上述步骤一个工程只添加一个宏之后才成功。

你可能感兴趣的:(windows下使用vs2008编译x264支持多线程)