[解决]windows7+cygwin编译和使用ffmpeg+x264

最近在windows平台下写音视频聊天的软件,其中需要对捕获到的音视频进行编解码,想采用ffmpeg的库,采用开发工具是vs2010,但在网上没有找到能直接使用的资料,只能自行编成dll以供调用,下面是编译过程:

这里借助了网上使用mingw分别在window或者linux平台下编译的相关资料,有ubuntu平台下的,这里是地址,我的编译工作也是参考这里的,主要差别是编译参数的设置。

本人的开发环境为window7_64位+cygwin,

1、首先,先安装win32交叉编译工具链,我使用这个mingw-gcc-core(cygwin的相关安装资料请自己到网上找吧),安装后可以看到在cygwin里的当前bin目录中多了以“i686-pc-mingw32*”的文件

2、准备好ffmpeg源码,如果需要使用到第三方库的,下载相应源码,比如我用了x264的,就需要下载x264的源码

3、设置编译环境:

ln -s /bin/pkg-config.exe /bin/i686-pc-mingw32-pkg-config.exe

4、先编译第三方库和安装第三方库,比如x264,我使用的配置参数如下:

./configure --enable-static --enable-shared --enable-win32thread  --prefix=/home/lenovo/opensource-sdk --cross-prefix=i686-pc-mingw32- --host=i686-pc-mingw32

 

make & make install

5、编译和安装ffmpeg:

./configure --enable-static --enable-memalign-hack --enable-shared --enable-libx264 --prefix=/home/lenovo/opensource-sdk  --enable-gpl --enable-version3 --extra-cflags='-I/home/lenovo/opensource-sdk/include -mno-cygwin' --extra-ldflags=-L/home/lenovo/opensource-sdk/lib --enable-w32threads --disable-pthreads --cross-prefix=i686-pc-mingw32- --arch=x86 --target-os=mingw32 --enable-cross-compile

make & make install

6、在我的vs2010中使用编译出来的库,这里比较简单,就是把相应的库路径添加到工程中就是了,具体可参照这里的内容

其他目标平台的交叉编译应该都类似了

注:1、在编译xvid的库时遇到no-cygwin相关的错误,只要把build/generic/platform.inc里的no-cygwin相关配置项删除即可
2、可能会出现其他一些很难明白是哪里出问题的错误提示,我在经过不断尝试后,发现只要把所有文件删除,然后使用cygwin去解压就不会错了(估计会不会是有关换行符、编码之类错误)
3、这里有人整理了很多第三方库的下载链接,感谢作者,地址在这里

4、后面使用新版的cygwin测试,发现如果是window+cygwin环境,然后编译的目标也是window操作系统的话,可以不用加ming32的相关设置,比如可以直接使用configure --prefix=***即可(虽然最后还是有些库会采用**-ming32-gcc编译,不过会少了很多错误)。

» 本文链接地址:https://www.xidige.com/250

打开支付宝扫一扫,即可进行扫码打赏哦

扫码支持
扫码打赏,你说多少就多少

标签:

分享到:

扫一扫 在手机阅读、分享本文

上一篇: 下一篇:
评论区0人评论239人参与

电子邮件地址不会被公开。 必填项已用*标注

*

loading

赞助商广告