1.簡述
在Windows平臺,搭建FFmpeg開發(fā)環(huán)境,能夠幫助我們做各種開發(fā)的測試,如推流,拉流,濾鏡等。
2.下載源碼
(1)登陸FFMPEG官網(wǎng)
官網(wǎng)地址:http://ffmpeg.org/
下載4.2.1版本源碼地址:https://ffmpeg.org/releases/ffmpeg-4.2.1.tar.bz2
下載4.2.1編譯好的文件:https://ffmpeg.zeranoe.com/builds/
官網(wǎng)截圖如下:
找到適合的源碼和編譯好的文件。
32位下載地址:
Shared:包含F(xiàn)FMPEG的dll庫文件。
地址:https://ffmpeg.zeranoe.com/builds/win32/shared/ffmpeg-4.2.1-win32-shared.zip
Static:包含了FFMPEG的官方文檔。
地址:https://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-4.2.1-win32-static.zip
Dev:包含F(xiàn)FMPEG的lib文件/頭文件,以及example范例。
地址:https://ffmpeg.zeranoe.com/builds/win32/dev/ffmpeg-4.2.1-win32-dev.zip
注意:這里以32位版本為例子,其它版本也類似。
3.FFmpeg命令行環(huán)境搭建
解壓:ffmpeg-4.2.1-win32-shared.zip
(1)拷貝ffmpeg-4.2.1-win32-shared\bin目錄的執(zhí)行文件到C:\Windows
(2)拷貝ffmpeg-4.2.1-win32-shared\bin目錄的動態(tài)庫到C:\Windows\SysWOW64
WoW64 (Windows On Windows64 [1] )是一個Windows操作系統(tǒng)的子系統(tǒng),被設(shè)計用來處理許多在32-bit Windows和64-bit Windows之間的不同的問題,使得可以在64-bit Windows中運(yùn)行32-bit程序。
(3)打開cmd命令行窗口,輸入ffmpeg -version。如果出現(xiàn)如下界面,證明測試成功。
4.FFmpeg與QT環(huán)境搭建
(1)QT安裝
QT官網(wǎng):https://www.qt.io/
這里以QT 5.10.1版本為例子進(jìn)行下載。以下2個地址,2選一即可。
下載地址:http://download.qt.io/official_releases/qt/5.10/5.10.1/
直接選擇下載地址:http://iso.mirrors.ustc.edu.cn/qtproject/archive/qt/5.10/5.10.1/qt-opensource-windows-x86-5.10.1.exe
選擇如下版本:
下載后,準(zhǔn)備安裝。
按照安裝向?qū)б徊讲絅ext(或下一步)。
可以選擇自定義路徑或使用默認(rèn)也可以。
勾選如下插件,如果怕漏選,可以全選(可能安裝時間會長點,更占用硬盤空間)。
同意許可證。
等待安裝結(jié)束
5.測試FFmpeg與QT使用
(1)創(chuàng)建QT工程
新建工程
選擇Non-Qt Project。根據(jù)需求選擇C++還是C工程。
填寫項目名稱以及路徑,如下所示就創(chuàng)建了一個叫xxx(名字自定義)的工程。
選擇編譯器
注意:需要使用C時則選擇,“Plain C++ Application”
到此步驟結(jié)束,就可以創(chuàng)建 一個最基本的工程。
(2)添加FFmpeg庫
將從FFmpeg網(wǎng)站上下載下來的ffmpeg-4.2.1-win32-dev拷貝到ffmpeg-version目錄下。如下界面:
在ffmpeg-version.pro里面添加ffmpeg頭文件和庫文件路徑,按照如下代碼添加:
注意:LIBS的多行引用一定要記得帶斜杠,否則后續(xù)的引用無效。
修改main.c文件
使用FFmpeg庫,能否生效。
執(zhí)行程序
如果能夠顯示如下打印,證明搭建成功。
到此步驟結(jié)束,Windows QT+FFMPEG的開發(fā)環(huán)境就搭建完畢了。
本篇文章就分析到這里,歡迎大家關(guān)注歡迎關(guān)注,點贊,轉(zhuǎn)發(fā),收藏,分享,評論區(qū)討論。
后面關(guān)于項目知識,后期會更新。歡迎關(guān)注微信公眾號"記錄世界 from antonio"。
在文章《使用VS2017在win10 x64上編譯調(diào)試FFmpeg(附源碼和虛擬機(jī)下載)》中,我們在win10+VS2017的環(huán)境下基于開源項目ShiftMediaProject完成了FFmpeg源碼調(diào)試環(huán)境的配置。在win7+VS2015的環(huán)境下,ShiftMediaProject配置過程和win10+VS2017下類似,但編譯問題會更多一些。經(jīng)過一番排查,將編譯問題解決后,即可進(jìn)行源碼調(diào)試。
下載ShiftMediaProject的過程,可參考《使用VS2017在win10 x64上編譯調(diào)試FFmpeg(附源碼和虛擬機(jī)下載)》。可以直接復(fù)用已經(jīng)下載好的ShiftMediaProject源碼包。進(jìn)行安裝操作,這里不再贅述。
直接在win7上使用VS2015編譯上述ShiftMedia,會出現(xiàn)編譯錯誤,下面逐個解決。
未找到方法[MSBuild] NormalizePath
原因可能是MSBuild版本不一致,導(dǎo)致某些MSBuild函數(shù)找不到,做等效修改即可。
解決方法: 修改 ShiftMediaProject\source\VSNASM\nasm.targets 文件,修改前:
nasm.targets修改前
修改后:
nasm.targets修改后
2.2.2 未定義標(biāo)識符DXVA_PicParams_VP9
未定義標(biāo)識符DXVA_PicParams_VP9
原因是代碼中檢測了系統(tǒng)類型,win7系統(tǒng)下,沒有此結(jié)構(gòu)的定義,相關(guān)函數(shù)也不會被使用。
解決方法: 使用宏關(guān)閉不使用的定義和引用。
解決未定義標(biāo)識符DXVA_PicParams_VP9
原因是 Windows SDK 版本安裝不完全,需要安裝對應(yīng)的SDK版本10.0.10240.0。在以下路徑查看已安裝的SDK版本:
C:\Program Files (x86)\Windows Kits\Include\
安裝方法比較簡單,可以通過VS安裝包修改安裝,也可以通過微軟官方的SDK安裝工具安裝,這里不再贅述。
關(guān)注公眾號Qt未來工程師,后臺回復(fù) vs2015_win7_x64 FFmpeg調(diào)試源碼包 獲取下載地址。
關(guān)注公眾號Qt未來工程師,后臺回復(fù) vs2015_win7_x64 FFmpeg調(diào)試虛擬機(jī) 獲取下載地址。
至此,win7或win10平臺上的FFmpeg源碼調(diào)試環(huán)境均已搭建完成,源碼調(diào)試的準(zhǔn)備工作已全部完成。