FFmpeg windows平台編譯

來源:互聯網
上載者:User

最近我要使用ffmpeg 以前沒有接觸過,所以再網上找了很多教程 但是都不是很全面,因此我綜合了一下:

FFmpeg是在Linux平台下開發的,但它同樣也可以在其它作業系統環境中編譯運行,本文介紹的就是在windowsXP下編譯FFmpeg。
一 準備環境:

1 下載 mingw 和 MSYS

去 http://sourceforge.net/projects/mingw/  下載

A 點擊“DownLoad mingw-get-inst-...exe”;

B 切換到頁面:download? Check your browser's security bar, or try a direct link, or try another mirror. ;

C 點擊“direct link”下載類似:mingw-get-inst-20110802.exe 的檔案。

提示:msys此處就不用下載了,mingw-get-inst-20110802.exe 中已經包含了msys1.0,後面安裝的時候就可以看到該選項。

2 下載 yasm

ffmpeg編譯裡面的彙編代碼需要yasm.exe  

去官網:http://yasm.tortall.net/Download.html 下載

直接下載:Win32 .exe (for general use on 32-bit Windows)

檔案名稱為:yasm-1.1.0-win32.exe

3 下載 ffmpeg

ffmpeg可以到 http://www.ffmpeg.org/releases/ 下載

本人選擇的是最新版本:ffmpeg-0.8.5.tar.gz

檔案名稱為:ffmpeg-0.8.5.tar.gz

4 下載 SDL

SDL下載可以到:http://www.libsdl.org/download-1.2.php

選擇:SDL-1.2.14.tar.gz - GPG signed

此版本需要自己編譯,後面會解釋為什麼下載該版本,而不下載編譯好的SDL-devel-1.2.14-mingw32.tar.gz (Mingw32)

5 下載 pthreadGC2.dll
pthreadgc2.dll是功能強大的處理數字化影視作品編輯軟體premiere6運行所需的一個DLL檔案。這是一個無威脅檔案。屬於Open Source Software community project的檔案。直接去baidu.com三搜尋下載就可以了。

二 編譯步驟

1 安裝 mingw 和 msys

    執行下載檔案:mingw-get-inst-20110802.exe,

    在第3步選擇“Download latest repository catalogues”

    選擇安裝路徑:C:\MinGW(我直接採用預設路徑,未做修改)

    在“Select Components”步驟中選擇:

    √  C Compiler (預設且一定選擇)

    √  C++ Compiler

    √  MSYS Basic System(選擇此項將會安裝msys,msys則不需要另外安裝)

    √  MinGW Developer ToolKit

    等待安裝完成!(需要等待一定的時間,因為安裝過程需要下載檔案,可想而知,網速越快,安裝越快)

    安裝完成後,在C:\MinGW目錄下可以看到 msys 檔案夾,msys也已經安裝。

2 配置 msys.bat 批次檔

    為了方便VS200X以及VS2010調用ffmpeg的動態庫,可以通過配置讓ffmpeg編譯時間產生windows下調用dll對應的lib,當然,如果你沒有這個需要,那麼就可以省略以下處理,直接進入步驟3。

    進入:C:\MinGW\msys\1.0\檔案夾,使用UltraEdit開啟msys.bat檔案,在檔案的最最前面加入如下一行:

    call "D:\Program Files\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"

    其中“D:\Program Files\Microsoft Visual Studio 10.0”為你機器上安裝VS200X或VS2010的目錄,我的電腦安裝的是VS2010,並且安裝在了D盤。檔案修改後儲存即可。

3 配置 yasm

    為了減少配置環境變數的麻煩,本處直接把 yasm-1.1.0-win32.exe 檔名修改成:yasm.exe,並放到系統目錄下:C:\WINDOWS\system32。

4 解壓ffmpeg 與 SDL

    ffmpeg-0.8.5.tar.gz 的解壓目錄您可以直接選擇,本人解壓到:D:\ffmpeg中,解壓後目錄為:D:\ffmpeg\ffmpeg-0.8.5

    SDL-1.2.14.tar.tar 解壓到 D:\ffmpeg\ffmpeg-0.8.5 目錄下,解壓後的目錄結構為:D:\ffmpeg\ffmpeg-0.8.5\SDL-1.2.14

5 編譯SDL

    雙擊“C:\MinGW\msys\1.0\msys.bat”,啟動“MinGW32”,

    切換到SDL目錄:D:\ffmpeg\ffmpeg-0.8.5\SDL-1.2.14,切換方法如下:

    $ cd /d

    $ cd ffmpeg

    $ cd ffmpeg-0.8.5

    $ cd SDL-1.2.14

    再執行以下命令:

    $ ./configure --prefix=/usr 斷行符號等待…

    $ Make 斷行符號等待…

    $ make install 斷行符號等待…

    編譯完成後,在C:\MinGW\msys\1.0的bin、include和lib檔案夾下可以看到編譯結果。

    直接編譯ffmpeg時,發現未產生ffplay.exe,

    configure的時候提示資訊如下:

    SDL support  no

    所以需要開啟SDL,本人頭天接觸這東西,不知道使用什麼方法可以開啟,但通過編譯SDL後

    SDL support  yes

    如果你的 SDL 已經是開啟狀態,你可以直接使用下載中提到的編譯好的壓縮包SDL-devel-1.2.14-mingw32.tar.gz,直接解壓,並把解壓包中的bin、include和lib檔案夾中的檔案複製到D:\ffmpeg\ffmpeg-0.8.5,與步驟六相同,只是不在從C:\MinGW\msys\1.0中複製。

6 拷貝編譯結果:

    C:\MinGW\msys\1.0  到 c:/mingw下 覆蓋

    bin下的SDL.dll、sdl-config拷貝到 bin中

    include下的 SDL檔案夾拷貝到 include中

    lib下的libSDL.a、libSDL.dll.a、libSDL.la和libSDLmain.a拷貝到 lib中

7 修改sdl-config設定檔

    使用UltraEdit開啟D:\ffmpeg\ffmpeg-0.8.5\bin下的 sdl-config檔案

    把 prefix=/usr 該成: prefix=c:/mingw

    其中:c:/mingw 為 mingw的安裝路徑,請根據你的安裝進行修改。

8 編譯 ffmpeg

    雙擊“C:\MinGW\msys\1.0\msys.bat”,啟動“MinGW32”,

    切換到SDL目錄:D:\ffmpeg\ffmpeg-0.8.5\SDL-1.2.14,

    切換方法如下:

    $ cd /d

    $ cd ffmpeg

    $ cd ffmpeg-0.8.5

    如果你的“MinGW32”沒有關閉,可以直接切換路徑到:D:\ffmpeg\ffmpeg-0.8.5。

    再執行以下命令:

    $ ./configure --enable-shared --disable-static --enable-memalign-hack

    請耐心等待一段時間

  $ make

   需要等待很長一段時間,等待編譯結束。

    為了匯總編譯結果,請繼續執行以下命令:

    $ make install

    等待完成,在C:\MinGW\msys\1.0\local中將會產生 bin、include、lib等檔案夾,其中包含了ffmpeg.exe、ffplay.exe、ffprobe.exe、dll、lib和標頭檔等。

9 運行測試

直接雙擊運行”ffplay.exe”,如果提示沒有“pthreadGC2.dll”檔案,你可以包“pthreadGC2.dll”直接拷貝到目前的目錄,也可放到系統目錄C:\WINDOWS\system32中。
avcodec.lib avformat.lib swscale.lib avutil.lib

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.