close

FFmpeg 自從幾年前開始就不再提供編譯好的Lib & DLL, 導致現在現有的libdll都是別人用好的, 於是決定參考網路一些資料, 並且在自己電腦實測, 將編譯的技術分享給各位.

 

 

首先我們先來看看成功會是如何,

 

image

 

 

 

  1. 創建資料夾

D > open_project > ffmpeg_vs2019 > msvc & source

 

  • , 名字請一定要照打, 不然沒有辦法透過script來進行編譯.

 

  1. 下載FFmpeg

#Step1.  使用git bash clone ffmpeg

  #Step2.  CD D:\open_project\ffmpeg_vs2019\source

  #Step3.  Clone FFmpeg

 

image

 

  1. 下載FFmpeg相關的依賴Lib, 這個我們可以透過他裡面的script去做, 這樣我們就不需要一個一個下載, 反而會增加錯誤的風險, 但使用這個方式的前提是, <步驟一>一定要是一模一樣的.

 

 #Step1.  CD ffmpeg_vs2019\source\FFmpeg\SMP

 #Step2.  執行 ./project_get_dependencies.bat

 

image

 

這裡需要下載一段時間, 並且我建議執行個兩三次, 確認所有的下載都出現以下的提示後, 在繼續下一個動作.

 

image

 

 

  1. 其他的文件下載

  #Step1. ffmpeg_vs2019/msvc裡面創建 includeVSNASM & VSYASM 資料夾, include裡面創一個glAMF兩個資料夾, 其他不用管他, 等等程式跑起來的時候會自己創建.

 

image

image

 #Step2. CD d:/open_project/ffmpeg_vs2019 , 下載opengl頭文件

 

image

image

#Step3. CD d:/open_project/ffmpeg_vs2019 , 下載EGL頭文件

image

image

 

#Step4. CD d:/open_project/ffmpeg_vs2019 , 下載nv-codec頭文件

image

image

 

 

#Step5. CD d:/open_project/ffmpeg_vs2019 , 下載AMF頭文件

 

image

image

 

 

#Step6. CD d:/open_project/ffmpeg_vs2019 , NASMYASM

image

  • 找到你的Visual Studio command tools

image

  • 右鍵 > 然後用系統管理員來執行
  • 然後我們cd 到這兩個資料夾內, 分別執行相同的程式

image

 

 

  1. 然後我們就可以打開去d:\open_project\ffmpeg_vs2019\source\FFmpeg\SMP內打開名為 ffmpeg_desp.sln的程式

image

 

 

#Step1. 打開後, 你就開始編吧, 整個過程大概會需要一些時間, 然後你會產生47lib.

image

image

  • 如果有少, 代表你路徑錯誤, 或是你資料夾檔案錯誤沒有放好, 不然一定會有47succeeded

image

 

 

 

 

 

 

 

 

 

接下來我們來寫點程式驗證Lib可不可以用吧 !

 

#Step1. D:\open_project\TEST_FFMPEG_LIB

 

  • ffmpeg_vs2019\msvc\include的這五個檔案複製到D:\open_project\TEST_FFMPEG_LIB\inc

image

 

  • Lib的話可以先複製這兩個 libavformatd.lib & libavutild.lib

image

 

 

  • 接下來我們到程式裡面去做一些基本配置

image

 

image

 

image

 

 

 

程式本體,

 

image

執行結果

image

 

 

以上就是如何在windows底下一次將ffmpeg包成lib的方式, 在網路上有許多不同的方式, 但都是要一個一個lib包一次, 那很麻煩, 有了這個方式之後, 以後只要有新出的FFmpeg, 就可以一次打包了; 之後有想到什麼再補充, 照上面的做法是可以成功的, 如果有不行的話請隨時和我說.

arrow
arrow
    創作者介紹
    創作者 Eric 的頭像
    Eric

    一個小小工程師的心情抒發天地

    Eric 發表在 痞客邦 留言(0) 人氣()