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。

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