ffmpeg學習(一)——在window7下編譯ffmpeg


      FFmpeg是一個開源免費跨平台的視頻和音頻流項目,它提供了錄制、轉換以及流化音視頻的完整解決方案。本文作者將嘗試使用該庫實現一個可適應復雜網絡環境的,

支持標准rtsp協議的流媒體服務器。由於Visual Studio提供的C/C++編譯器對C99標准的不兼容,因此它不能直接使用MSVC++編譯,本文采用在Windows下配置一個類

似Linux的編譯環境的方式編譯ffmpeg源碼。

1、准備工作:

先把下面四個軟件下載下來。

1)MinGW-MSYS Bundle http://sourceforge.net/projects/mingwbundle/

2) SDL http://www.libsdl.org/download-1.2.php  注意:在此環境下2.0.3版本的源碼編譯會有問題,不推薦。

3)yasm http://yasm.tortall.net/Download.html

4)FFmpeg http://www.ffmpeg.org/download.html

2、安裝MinGW-MSYS Bundle軟件

MinGW-MSYS Bundle軟件同時包含了MinGW和MSYS,不需要連接網絡進行安裝,按照軟件默認的安裝向導,一路Next,把軟件安裝好。

安裝好后會在桌面生成一個快捷方式,指向文件"C:\Program Files\MinGW-MSYS\msys.bat"。雙擊啟動該控制台,后面的操作都將在此控制台下完成。

3、安裝SDL

把SDL源碼解壓縮到F:\Work\ffmpeg-2.4\SDL-1.2.15目錄。進入SDL目錄,分別執行

./configure --prefix=/usr/local/SDL

make

make install

完成SDL的安裝。

SDL編譯完成之后,生成的bin文件、include文件、lib文件存放在C:\msys\1.0\local\SDL目錄下。

通過下面命令導入SDL環境變量.

export PATH="$PATH:/usr/local/SDL/bin:/usr/local/SDL/include:/usr/local/SDL/lib"

否則,在執行ffmpeg configure時,SDL support項顯示為no.(注:mingw默認根目錄對應與windows下的C:\msys\1.0\目錄,可以通過echo $PATH查看當前的系統路徑)

4、安裝yasm

把yasm源碼包(在yasm官網下載了好久下載不了,每次下載到一半就斷了,后來在csdn上下載的)解壓到F:\Work\ffmpeg-2.4\yasm1.2.0目錄。

進入yasm目錄,分別執行:

./configure --prefix=/usr/local/yasm

make

make install

並通過下面命令導入yasm環境變量。

export PATH="$PATH:/usr/local/yasm/bin"

5、安裝ffmpeg

把ffmpeg源碼(ffmpeg-2.4.tar.bz2)解壓到F:\Work\ffmpeg-2.4\ffmpeg-2.4,進入ffmpeg代碼目錄, 分別執行下面命令:

編譯為靜態庫:./configure --enable-static --enable-memalign-hack  --prefix=/usr/local/ffmpeg2.4或

編譯為動態庫:./configure --enable-shared --enable-memalign-hack  --prefix=/usr/local/ffmpeg2.4

make 注意:此處可能會出現類似unable to rename ffplay.exe:reason file exists錯誤,將360衛士退出后即可解決。

make install

編譯完成后,在C:\msys\1.0\local\ffmpeg2.4目錄下的bin、include和lib文件夾下可以看到編譯結果。靜態庫是以 .a 為后綴的文件,共享庫是以 .dll為后綴的文件。

此時就可以在控制台下用ffplay.exe Wildlife.wmv命令播放視頻文件,

或者用ffplay.exe rtsp://admin:12345@192.168.10.76:554命令播放網絡流數據了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM