使用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始终无法消除不支持多线程的警告。 按照上述步骤一个工程只添加一个宏之后才成功。 (ripple0713) |