使用x264进行编码的时候,输入命令行:x264.exe -f 25 -B 512 --threads 2 -o test.264 mobile.yuv 352x288
发现编码速度没有变化,提示:not compiled with pthread support!
需要重新编译支持多线程的x264版本。
参考:http://jmvc.blog.sohu.com/145356341.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始终无法消除不支持多线程的警告。
按照上述步骤一个工程只添加一个宏之后才成功。