Windows下使用Cygwin编译安装FFmpeg

一、Cygwin环境搭建

首先下载Cygwin,下载地址为https://cygwin.com/install.html,根据Windows具体是32位还是64位的选择下载。
下载好之后就是进行安装,安装过程就是一直点击下一步就好了,在User URL里输入http://mirrors.163.com/cygwin/,在镜像中会获取到所有需要安装的包,我们只需要编译安装FFmpeg,所以我们只需要选择我们所需要的包进行安装就可以了。选择Base,Debug,Devel,Net以及Web里面的wget进行安装,由于我们要编译出ffplay,所以我们需要SDL库,搜索SDL,选择以下几项进行安装:在这里插入图片描述
然后点击下一步进行安装,安装过程比较漫长,耐心等待即可。

二、编译安装FFmpeg

编译yasm

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make
make install

编译fdk_aac

wget https://jaist.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-0.1.6.tar.gz
tar xvf fdk-aac-0.1.6.tar.gz
cd fdk-aac-0.1.6
./configure
make 
make install

安装lame

wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar -xzf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure
make 
make install

lame所遇到的问题
问题一:
在Cygwin下安装 lame的时候遇到执行 ./configure 失败的情况。如 “error: cannot guess build type; you must sepcify one”,对这个问题可以通过下面的步骤来解决:
安装automake。可以通过 which automake来确认automake 是否已经安装。如果没有安装,可以通使用 apt-cyg install automake进行安装。
确认automake当前版本。可执行automake --version获取当前automake的版本号。
将 lame目录下的 config.guess文件替换为 /usr/share/automake-version下的config.guess 文件。
此时,再执行./configure进就可以下成功了。
问题二:
make时出现 "error: ‘_O_BINARY’ undeclared (first use in this function)"的错误,解决办法如下:
打开出错文件 vi ./frontend/lametime.c
将下面这段代码注释掉
/*
#elif defined __CYGWIN
setmod(fileno(fp), _O_BINARY);
*/
再执行make就可以成功了。

安装nasm

wget https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz
tar xvf nasm-2.13.03.tar.gz
cd nasm-2.13.03
./configure
make 
make install

安装x264

wget http://mirror.yandex.ru/mirrors/ftp.videolan.org/x264/snapshots/last_x264.tar.bz2
bunzip2 last_x264.tar.bz2
tar -vxf last_x264.tar
cd last_x264
./configure --enable-static --enable-shared --disable-asm --disable-avs
make 
make install

安装ffmpeg

wget -c https://ffmpeg.org/releases/ffmpeg-4.0.2.tar.bz2
bunzip2 ffmpeg-4.0.2.tar.bz2
tar -vxf ffmpeg-4.0.2.tar
cd ffmpeg-4.0.2
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-small --arch=x86_64 --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-filter=delogo --enable-debug --disable-optimizations --enable-shared
make 
make install

注意:以上所用的源码地址可能失效了,在网上搜索有效地址即可。通过以下命令可以指定FFmpeg编译安装所要用到的库路径地址:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

三、总结

通过以上步骤,我们就在Cygwin下编译安装好了FFmpeg。
需要注意的是,ffmpeg是高度可订制的,可以根据自己的需要编译出支持不同编解码的ffmpeg库,方法都是一样的。
总的思路就是ffmpeg缺什么库,我们就下载相应库的源码给它编译好。然后增加ffmpeg相应的配置选项,再重新编译 ffmpeg。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章