FFMPEG Windows 下編譯

        最近有個項目需要用到傳屏,看了一些文章後,決定使用ffmpeg庫實現功能(錄屏,H264 解編碼),在編譯FFMPEG時遇到了很多坑,還好都一 一化解,最後成功的在Windows 下編譯出支持X264編碼的ffmpeg庫,將經驗總結如下:


1. mingw windows安裝,目前的版本自動在線安裝容易失敗,會對後面的編譯造成影響,如果自動安裝失敗時,建議從“離線安裝”突破。


 2. yasm、sdl、x264庫的安裝,參照“https://www.cnblogs.com/dwdxdy/p/3625766.html”這篇文章可實現順利編譯和安裝。


 3. ffmpeg 編譯時,如果使用上面文章的命令會出現錯誤,下面按錯誤進行說明:


      錯誤1: "libx264 Not Found"錯誤,此時是因爲找不到libx264的文件,導致報錯。

      方法:重新打開mingw命令行


      命令更改爲下面:

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

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


export PATH="$PATH:/usr/local/x264/bin"
export C_INCLUDE_PATH="$C_INCLUDE_PATH:/usr/local/x264/include"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/x264/lib"

./configure --enable-shared --disable-static --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib --enable-libx264 --enable-gpl --prefix=/usr/local/ffmpeg4.0

進行上面操作後,如果仍提示相同錯誤,此時可能是x264編譯安裝的dll文件名上有版本號,將版本號去掉,重新試一下。

 

 

 錯誤2:make 命令時“missing separator.Stop.”錯誤。

            參考文章https://blog.csdn.net/hutianyou123/article/details/77054091 解決,內容如下:

當我們從gitlab或github中克隆ffmpeg, 配置完成後執行make時,會遇到下面的錯誤:

common.mak:159: *** missing separator.  Stop.
1
那是因爲本地git配置中的一個叫做autocrlf的參數打開了,解決方法: 
打開git bash, 執行:

git config --global core.autocrlf false
1
接下來,刪除當前的ffmpeg文件夾,使用命令:

git rm --cached -r ffmpeg/
1
如果本地git倉庫沒有修改,直接刪除本地的ffmpeg文件夾即可。

rm -rf ffmpeg/
1
最後,從gitlab中獲取ffmpeg鏡像,比如:

git clone git@gitlab/ffmpeg  (此處是比如,之前怎麼下載的,還怎麼下)
1
再重新執行命令,錯誤就消失了。

./configure --enable-shared
make && make install

 

 

錯誤3:undeclared 'ERROR_NOT_ENOUGH_MEMORY'錯誤

參考文章https://stackoverflow.com/questions/49572350/a-strange-error-undeclared-error-not-enough-memory-occurred-while-i-compling解決,內容如下:

Add winerror.h header in your os_support.h will solve the problem.//注這兩個頭文件都在mingw安裝路徑中,可以使用搜索確定

至此,make、make install 命令應該可以成功運行,生成的編譯文件就在local文件夾下。

 

 

4. 生成的庫文件,沒有lib文件,而是def文件。vs開發,需要將def文件生成lib文件,需要參考文章:

https://blog.csdn.net/leixiaohua1020/article/details/42069383,關鍵內容如下

使用VC自帶的lib生成工具“LIB”,生成“libx264.lib”文件。使用“Visual Studio command prompt”,切換至x264源代碼目錄,輸入以下命令:
LIB /DEF:libx264.def

然後根據上面的方法,生成自己需要的lib文件,至此ffmpeg windows開發用的庫編譯完成。

注:ffmpeg windows 下使用的庫,官網有編譯好的,個人建議最好使用自己編譯的庫。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章