ubuntu下使用脚本交叉编译windows下使用的ffmpeg + X264
这里主要是补充一些遇到的问题和解决方法。
2013-06 下旬
由于项目需要,重新编译ffmpeg+264+其他。
这里使用的环境Ubuntu 13.04,脚本依然是cross_compile_ffmpeg.sh
地址 https://github.com/rdp/ffmpeg-windows-build-helpers 特此感谢。
然而X264编译过程中也遇到了一些问题。由于编译ffmpeg使用了--disable-pthreads --enable-w32threads
导致X264虽然编译通过,但是在编译ffmpeg的时候,无法找到ffmpeg。原来脚本中build_x264默认没有使用--enable-win32thread。所以ffmpeg使用--disable-pthreads的时候,会无法发现X264。
给build_x264编译选项添加上--enable-win32thread。依然会报错:pthread_win32_process_detach_np 这里调用失败。
原因是如果pthread-w32被静态链接到程序中,需要在main()函数开头调用pthread_win32_process_attach_np初始化,否则程序会崩溃。见。
查看build_x264编译选项,发现有这么一句--extra-cflags=-DPTW32_STATIC_LIB。去掉这一句,就顺利通过编译,并被ffmpeg发现。