win7(x64)編譯ffmpeg

        公司最近的發展方向似乎還滅有定下來,年前提出的視頻平臺,目前領導間似乎沒有完全商榷下來,年後來了,搭建了服務器,處理了一些繁瑣的小事,似乎不知道幹嘛了,有一個android平板端的程序需要修改,先放一下吧,把糾結了很久的windows下ffmpeg編譯做一個整理。

 

        網上看了很多關於windows下編譯ffmpeg的文章,都大同小異,效果也沒有想象的那麼順利,遇到很多問題,現在把自己的編譯過程跟他家分享一下。

===========================================================================

1.系統環境

    操作系統:windows7(x64) 旗艦版 Service Pack 1

 

2.工具需求

    MinGW

        windows下沒有編譯ffmpeg的環境,我們需要安裝MinGW來模擬類似linux的環境,安裝gcc等編譯器。

        由於下載了官網最新的MinGW總是不成功,可能是組件沒有安裝全的關係,這邊我下載了別人測試通過的mingw-get-inst-20120426.exe

        可以從百度獲得他。

    ffmpeg源碼

        這個是編譯的主人公。哈哈!

        下載地址:http://www.ffmpeg.org/releases/

        選擇最新的版本進行下載,本人下載的是ffmpeg-2.1.tar.gz

        ffpmeg的源碼也可以同svn去下載,該方法請自己百度。

    SDL

        SDL(Simple DirectMedia Layer)是一套開放源代碼的跨平臺多媒體開發庫。

        沒有他的話,ffmpeg貌似就無法生成ffplay.exe

        下載地址:http://www.libsdl.org/download-1.2.php

         我們下載源碼即可。

 

3.編譯過程

    安裝MinGW

        雙擊下載的mingw-get-inst-20120426.exe即可進行安裝,本人使用了默認的安裝路徑C:\MinGW,安裝過程一路Next,選擇組件時選擇一下組件

            C Compiler(系統默認的)

            C++ Compiler

            MSYS Basic System

            MinGW Developer ToolKit

        然後Next,緊接着就是漫長的等待,他會下載很多東西。

       

 經過漫長的等待,終於是成功安裝MinGW了。

修改msys.bat

        我的MinGW是安裝在默認路徑C:/MinGW下的,我們使用文本編輯軟件修改C:\MinGW\msys\1.0\msys.bat文件,在他的最開始添加一句

            call "D:\IDE\VS2010\VC\bin\vcvars32.bat"

        D:\IDE\VS2010是我vs2010的安裝環境。這步驟是爲了生成MSVC++可以使用的ffmpeg庫。(這是我看了別人的博客做出的理解,不知道是不是有問題,望對這方面瞭解的人指出^。^)

 

編譯SDL

        我們解壓我們下載的SDL源碼,將其放到ffmpeg源碼的目錄下,ffmpeg的源碼我放在D:\ffmpeg-2.1\ffmpeg-2.1路徑下,SDL源碼所在的路徑就爲:D:\ffmpeg-2.1\ffmpeg-2.1\SDL-1.2.15。

        打開C:\MinGW\msys\1.0\msys.bat,進入到通過指令進入到sdl所在的目錄執行

           ./configure --prefix-/usr

           Make

           Make install

        編譯後在C:\MinGW\msys\1.0D的bin,include,lib目錄下會生成相應的文件。

 

配置編譯ffmpeg

        我們打開C:\MinGW\msys\1.0\msys.bat出現熟悉的控制檯界面。通過指令進去我們的ffmpeg目錄下。

        配置:./configure --enable-static --prefix=C:/MinGW/msys/1.0 --extra-cflags="-fno-common"

        編譯過程中可能會出現yasm/nasm not found or too old.Use --disable-yasm for acrippled build.

                解決這個問題有兩種辦法:

                    (1)按照他的提示,添加--disable-yasm配置屬性。

                    (2)下載yasm,yasm是用於彙編的編譯器,我們可以從http://yasm.tortall.net/Download.html下載yasm(根據自己的需求與系統環境選擇對應

                        的版本),並將他重命名爲yasm.exe,然後放置於C:\MinGW\msys\1.0\bin下。

       接下來,還會遇到這樣的問題:non pthread threading without atomics not supported,try --enable-pthreads or...

       我們就通過系統提示的添加--enable-pthreads配置屬性來解決它。

 

        配置完成後,執行 make

                                      make install

        編譯完成後就會發現子啊C:\MinGW\msys\i.0下多了一個local目錄,裏面有bin,include,lib,share子目錄。

運行測試

        打開C:\MinGW\msys\1.0\msys.bat,進入ffplay.exe所在的目錄,使用指令就可以播放視頻了

        ffplay.exe 視頻名.視頻格式

        運行時會提示缺少dll庫文件(libiconv-2.dll,pthread2GC.dll),網上下載響應的庫文件,放置ffplay.exe同目錄下即可。

       

似乎播放效果不好,再找找原因吧。

 

===========================================================================

如果需要編譯過程用到的所有文件,請點擊這裏

發佈了36 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章