windows下搭建ffmpeg環境

來源:互聯網
上載者:User

在windows下編譯ffmpeg可以採用cygwin或msys+mingw兩種方案,我個人比較喜歡msys+mingw方式,因為這樣可以在windows下搭建一個類Unix作業系統,並且配置比cygwin要簡單,因此本就是描述怎樣建立msys+mingw的環境。

在windows下搭建ffmpeg編譯環境在網上的文章很多,最為詳細的可能是這篇文章:http://ffmpeg.arrozcru.org/wiki/index.php?title=Main_Page。但是在由於版本問題,完全按照上面的描述是通不過的。

  1. 到http://sourceforge.net/projects/mingw/files/下載最新版MinGW安裝程式,我的是MinGW-5.1.6.exe
  2. 到http://sourceforge.net/projects/mingw/files/MSYS%20Base%20System/msys-1.0.11/MSYS-1.0.11.exe/download下載MSYS-1.0.11,注意當前MSYS已經是1.0.14版,但是從1.0.11版之後,就再也沒有安裝程式了
  3. 到http://prdownloads.sourceforge.net/mingw/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2?download下載coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2
  4. 運行MinGW-5.1.6.exe,注意選擇安裝g++和make,並將安裝目錄指定到c:\msys\mingw,該程式將自動下載並安裝mingw系統,注意此時的gcc版本為3.4.5
  5. 運行MSYS-1.0.11.exe安裝msys到c:\msys目錄
  6. 解壓並將coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2複製到c:\msys目錄下,並選擇合并目錄,遇到衝突檔案時選擇保留兩份
  7. 此時基本系統應該已經建成,編寫一個test.c的hello world程式應該可以編譯通過並正常運行
  8. 安裝工具軟體:
    1. wget.exe:拷貝到c:\msys\bin目錄下
    2. 到ftp://ftp.info-zip.org/pub/infozip/win32/下載unzip程式unz600xn.exe,在臨時目錄下運行該程式,將unzip.exe拷貝到c:\msys\bin目錄下
    3. 到http://www.tortall.net/projects/yasm/wiki/Download下載yasm-0.8.0-win32.exe,拷貝到c:\msys\mingw\bin目錄下並重新命名為yasm.exe
  9. 安裝msysgit到c:\software目錄
  10. 下載x264程式:/c/software/Git/bin/git clone git://git.videolan.org/x264.git
  11. 編譯x264程式:./configure --prefix=/home/yantao/cic/static,然後運行make和make install
  12. 下載AMR支援:http://sourceforge.net/projects/opencore-amr/files/opencore-amr/0.1.2/opencore-amr-0.1.2.tar.gz/download
  13. 編譯:./configue --prefix=/home/yantao/cic/static --enable-static,然後make和make install
  14. 下載SDL:http://www.libsdl.org/download-1.2.php
  15. 編譯:./configure --prefix=/home/yantao/cic/static --enable-static --disable-shared
  16. 此時證明當前gcc 3.4.5環境配置基本正確,但是ffmpeg必須在gcc 4以上編譯才能解決dll檔案可以在VC中連結及異常退出等BUG,因此需要將gcc升級到最新系統,到sourceforge
    1. 升級msys bash:從http://sourceforge.net/projects/mingw/files/下載最新版bash,這裡是bash-3.1.17-2-msys-1.0.11-bin.tar.tar,利用解壓工具解開,將內容拷貝到c:\msys\bin目錄下
    2. 升級msys coreutil:從http://sourceforge.net/projects/mingw/files/下載最新版coreutils-bin和coreutils-ext,這裡是coreutils-5.97-2-msys-1.0.11-bin.tar.tar,利用解壓工具解開,將內容拷貝到c:\msys\bin目錄下
    3. 升級mingw binutils
    4. 升級mingw runtime dev
    5. 升級mingw runtime dll
    6. 升級mingw win32 api
    7. 升級gcc:下載所有gcc相關的下載項,尤其是dll項目,然後解壓並拷貝到c:\msys\mingw目錄下
    8. 從http://sourceforge.net/projects/mingw/files/的mingw proposed目錄下下載libgmp-5.0.1-1-mingw32-dll-10.tar.tar並安裝
    9. 從http://sourceforge.net/projects/mingw/files/的mingw proposed目錄下下載libmpc-0.8.1-1-mingw32-dll-2.tar並安裝
    10. 從http://sourceforge.net/projects/mingw/files/的mingw proposed目錄下下載libmpfr-2.4.1-1-mingw32-dll-1.tar並安裝
    11. 下載pthreads支援libpthread-2.8.0-3-mingw32-dll-2.tar.tar
  17. 為驗證升級的正確性,首先確定能夠正確編譯test.c,然後重新編譯x264、opencore-amr、SDL
  18. 將編譯好的外部庫拷貝到c:\msys\mingw\include及c:\msys\mingw\lib目錄下,並注意修改每個pkconfig檔案中的目錄,將build4_5_0/bin目錄下的sdl-config拷貝到mingw/bin目錄下,並修改路徑為/mingw
  19. 從ftp://sources.redhat.com/pub/pthreads-win32/prebuilt-dll-2-8-0-release/lib/下載pthreads補丁:包括include目錄下的*.h及lib目錄下的pthreadGC2.dll,將*.h檔案拷貝到c:\msys\mingw\include目錄下,將pthreadGC2.dll拷貝到c:\msys\mingw\bin及c:\msys\mingw\lib,同時拷貝到c:\msys\mingw\lib並改名為pthread.dll
  20. 編譯ffmpeg:首先建ffmpeg目錄,然後通過TortoiseSVN從svn://svn.mplayerhq.hu/ffmpeg/trunk下載最新代碼,運行./configure --prefix=/home/yantao/cic/static --enable-static --disable-shared --enable-gpl --enable-libx264 --enable-pthreads --enable-nonfree --enable-opencore-amrnb --enable-opencore-amrwb --enable-version3 --enable-memalign-hack
  21. 修改libavformat/rtsp.c的1699行,將ETIME更改為ETIMEDOUT,修改mingw/include/errno.h檔案,添加#define ETIMEDOUT       60定義
  22. 在mingw/include/sched.h的152行前添加typedef long pid_t;
  23. 運行make及make install
  24. 用帶有AMR-NB的3gp檔案測試ffplay.exe
  25. 測試視頻捕捉

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.