天天看點

FFmpeg Windows環境配置1 Cygwin安裝2 FFmpeg編譯

FFmpegWindows環境配置

在Windows環境下編譯FFmpeg需要搭建類Linux環境,可以使用的類Linux有兩種,分别是MinGW和Cygwin,FFmpeg在Windows下環境配置相比較Linux比較繁瑣。

MinGW環境配置比較複雜,很多軟體需要手動安裝配置,并且配置好環境後編譯完FFmpeg完成時沒有ffserver可執行檔案。根據網上資料和建議,編譯ffserver需要的依賴很多,并且需要腳本,相對繁瑣,選擇Cygwin環境就會簡單很多,是以下文描述的是用Cygwin環境編譯FFmpeg。

1 Cygwin安裝

安裝Cygwin首先去官網https://cygwin.com/index.html下載下傳安轉器setup-x86.exe或setup-x86_64.exe,具體根據自己的系統位數決定,剩下的步驟就是運作安裝器,根據安裝器的提示安裝Cygwin環境。

Cygwin安裝需要注意兩個點:鏡像的選擇和安裝步驟。

1.1 鏡像源選擇

安轉器其中一個步驟是選擇下載下傳軟體的鏡像,最好選國内鏡像源,原因是速度快,一般選擇163,當下載下傳或安裝失敗時可以換其他源(比如http://mirrors.kernel.org)。

安裝器預設是沒有163鏡像的,需要手動添加,在鏡像選擇界面添加163鏡像,位址是http://mirrors.163.com/cygwin/,如下圖1.1.1所示:

FFmpeg Windows環境配置1 Cygwin安裝2 FFmpeg編譯

圖1.1.1 Cygwin添加鏡像

然後點選“Add”按鈕即可,此時163鏡像源就在清單中了,就可以選擇并點選“下一步”使用,添加後如下圖1.1.2所示:

FFmpeg Windows環境配置1 Cygwin安裝2 FFmpeg編譯

圖1.1.2 使用163鏡像源

1.2 Cygwin安裝及軟體安轉

根據本人安裝經驗,第一次安裝不要自行選擇任何軟體安裝,直接一直下一步,安轉完成後隻有類Linux環境,即隻有基本的Linux指令,沒有gcc和make等指令,這些軟體等以後再安裝,首先保證類Linux環境安裝完成。第一次安裝不要自行選擇任何軟體安裝即在第一次安裝Cygwin時,在選在安裝軟體界面時不要選擇,用預設配置,如下圖1.2.1所示,直接下一步即可。

FFmpeg Windows環境配置1 Cygwin安裝2 FFmpeg編譯

1.2.1 選擇安轉軟體界面

安裝完Linux環境後就熟悉了Cygwin安裝器的使用步驟,軟體安轉就簡單了,隻需要在選擇安轉軟體界面(圖1.2.1)搜尋需要安裝的軟體名,如gcc安裝,如下圖1.2.2所示:

FFmpeg Windows環境配置1 Cygwin安裝2 FFmpeg編譯

圖1.2.2 搜尋軟體(GCC)界面

此時就會出現搜尋到的軟體,需要安裝時點選對應軟體前的符号,如果不知道搜尋到的軟體的互相依賴,可以點選最上邊的“ALL”後的符号,使“ALL”後的“Default”變為“Install”全部安裝,此時可能安裝一些不需要的軟體包,需要的時間可能會很長(與網速有關),如下圖1.2.3所示:

FFmpeg Windows環境配置1 Cygwin安裝2 FFmpeg編譯

圖1.2.3 GCC安裝

配置友好環境,修改/etc/profile檔案,添加:

alias ls="ls --color=tty --show-control-chars"

alias ll="ls -l"

alias la="ls -a"

2 FFmpeg編譯

搭建好類Linux環境後實際上就可以編譯FFmpeg了,隻是此時編譯的FFmpeg可能沒有ffplay或不能使用ffplay,因為缺少一些依賴庫,比如SDL庫,要完整的編譯FFmpeg,需要安裝這些依賴,安裝方法與安裝GCC一樣,參考1.2節,此處不再贅述。

此處編譯的FFmpeg版本是3.1,可以在官網或Git上下載下傳。

安裝Cygwin後會在桌面或開始菜單生成CygwinTerminal圖示,Cygwin Terminal類似Linux下的Shell,下文中的指令均在Cygwin Terminal中執行。

2.1 FFmpeg編譯

編譯FFmpeg隻需要兩步:configure和make。編譯FFmpeg步驟在官網及網絡上都有很多資料,很詳細,此處主要說明遇到的問題及處理方法。

在FFmpeg源碼目錄下執行如下指令:

$ ./configure --disable-yasm --enable-nonfree --enable-filters --enable-avresample

此時如果出錯,根據提示解決問題,比如下面的一些問題。

缺少SDL庫,此時編譯的檔案中沒有ffplay,如下圖2.1.1所示,此時需要安裝SDL,方法見1.2節。

FFmpeg Windows環境配置1 Cygwin安裝2 FFmpeg編譯

圖2.1.1 缺少SDL庫資訊

缺少pkg-config軟體,如下圖2.1.2所示,此時可以用1.2節的方法安裝,也可以忽略,因為在安裝SDL庫時會自動安裝pkg-config,如果最後還提示再單獨安裝。如果SDL已經安裝可能就不會有此警告。

FFmpeg Windows環境配置1 Cygwin安裝2 FFmpeg編譯

圖2.1.2 缺少pkg-config警告

Configure執行完後執行make指令:

$ make

等待執行結束,檢視編譯的可執行檔案。

2.2 安裝FFmpeg

如果上一步2.1節完成,可以執行以下指令安裝FFmpeg到系統中(類Linux系統中,非Windows系統)。

$ make install

此時由于configure沒有指定安裝目錄,是以FFmpeg安裝到/usr/local目錄下,如果為了系統安全,可在configure通過--prefix選項指定安裝目錄,configure指令更新為:

$ ./configure --prefix=/home/0001/install/bin --disable-yasm --enable-nonfree --enable-filters --enable-avresample

此時需要重新make,再執行make install,此時FFmpeg将安裝在/home/0001/install/bin目錄,此目錄可自行指定,然後将該目錄添加到系統路徑中,如修改/etc/profile檔案,添加:

export PATH=$PATH:${HOME}/install/bin

繼續閱讀