Qt中使用ffmpeg--直接調(diào)用動(dòng)態(tài)庫(kù) or 手動(dòng)編譯相關(guān)

介紹下在Qt下直接調(diào)用官方下載的動(dòng)態(tài)庫(kù)以及自己編譯成靜態(tài)庫(kù)等秀又,另外關(guān)于ffmpeg怎么用算LGPL誰(shuí)知道的話求告知

直接使用動(dòng)態(tài)庫(kù)

官網(wǎng)下載

如果沒(méi)有特殊要求涮帘,可以直接在ffmpeg官網(wǎng)下載編譯好的庫(kù)文件直接使用拼苍,自己編譯還是相當(dāng)麻煩的QAQ。選擇自己操作系統(tǒng)相關(guān)的版本调缨,下載shared和dev兩個(gè)壓縮包:

官網(wǎng)下載

Static包含的是靜態(tài)編譯的ffmpeg.exe疮鲫,Shared包含的是ffmpeg的動(dòng)態(tài)庫(kù)及ffmpeg.exe,Dev中包含的是加入到工程中的lib(使用的時(shí)候還是要添加動(dòng)態(tài)庫(kù)才能運(yùn)行)。

添加到工程

在pro文件中加上對(duì)應(yīng)的libs弦叶,添加lib的時(shí)候不用寫(xiě)后綴名字:

-L$$SDKs/ffmpeg/lib -L$$SDKs/ffmpeg/bin -lavutil -lavformat -lavcodec -lswscale -lavdevice -lswresample 

在要使用的文件中引用ffmpeg相關(guān)的頭文件:


引用頭文件

可能的問(wèn)題

  • 最新的ffmpeg有把libfmx (使用intel的qsv硬編硬解俊犯,下面有說(shuō)明) 編譯進(jìn)去,但是好像沒(méi)有fmx的頭文件伤哺,會(huì)報(bào)錯(cuò)燕侠。可以去這里下下來(lái)立莉,放到ffmpeg的include目錄下绢彤。
  • 編譯沒(méi)問(wèn)題記得要把dev中的dll拷貝到生成的exe目錄下,否則運(yùn)行不起來(lái)蜓耻。
  • 相關(guān)工程可以參考gayhub的demo茫舶。

自定義編譯

官網(wǎng)下載的ffmpeg動(dòng)態(tài)庫(kù)編譯的configure里有一條是--enable gpl,我們用的時(shí)候是直接用的動(dòng)態(tài)庫(kù)刹淌,我也不確定這算不算LGPL饶氏,實(shí)在沒(méi)轍的話只能自己編譯了讥耗。

license相關(guān)

IDE安裝

本人安裝的是Qt5.7.0的mingw32bit,下載地址戳我

msys2安裝

因?yàn)橐幾g32bit的嚷往,下載選擇msys2的32位版本葛账,下載地址戳我
安裝完成后找到msys2安裝目錄下的msys2_shell.cmd柠衅,將其中一行的注釋去掉皮仁,使 MSYS2 的環(huán)境變量繼承自系統(tǒng):

msys2_shell.cmd修改

打開(kāi)Qt的命令行工具,將目錄切換到msys2的安裝目錄下菲宴,輸入:msys2_shell.cmd -mingw32

命令行輸入

msys2就打開(kāi)了贷祈,下一步是安裝相關(guān)的軟件包。

軟件包安裝

在msys2中的包管理工具是pacman喝峦,安裝命令如下:

pacman -S make
pacman -S pkg-config
pacman -S nasm
pacman -S git
pacman -S automake autoconf perl libtool

軟編(編譯libx264势誊,這貨是GPL的哈)

先下載源碼,git clone http://git.videolan.org/git/x264.git,切換到x264倉(cāng)庫(kù)目錄下:

./configure \
 --prefix=/usr/local \
 --enable-shared \
 --disable-cli
 (loading...)

 ./make -j$(nproc)
 (loading...)

make install
 (loading...)

硬編intel qsv準(zhǔn)備

需要libmfx庫(kù) 谣蠢,下載源碼粟耻,git clone https://github.com/lu-zero/mfx_dispatch.git,切換到對(duì)應(yīng)目錄下:

autoreconf -i
 (loading...)

./configure --prefix=/usr/local
 (loading...)

make -j$(nproc)
 (loading...)

make install
 (loading...)

硬編Nvidia nvenc準(zhǔn)備

添加nvidia codec頭文件,git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git,切換到目錄下:

make
make install

NVidia Video Codec SDK下載眉踱,下載地址戳我, 解壓后把里面的NvCodec下的庫(kù)文件拷貝到/usr/local/lib挤忙、頭文件拷貝到/usr/local/include下

編譯ffmpeg

下載ffmpeg源碼,git clone https://git.ffmpeg.org/ffmpeg.git,切換到對(duì)應(yīng)目錄下:

PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"
./configure \
--prefix=/usr/local/ffmpeg \
--disable-static \
--enable-shared \
--enable-gpl \
--target-os=mingw32 \
--enable-libx264 \
--enable-libmfx \
--enable-encoder=h264_qsv \
--enable-decoder=h264_qsv \
--enable-nvenc \
--enable-cuda \
--enable-cuvid \
--enable-nonfree \
--extra-cflags=-I/usr/local/include \
--extra-ldflags=-L/usr/local/lib
 (loading...)

make -j$(nproc)
 (loading...)

make install
 (loading...)

編譯好后的ffmpeg在/usr/local/ffmpeg谈喳,就是configure第一行指定的位置册烈。
最后貼下各種文件的目錄:


源碼下載路徑
ffmpeg添加的lib路徑
ffmpeg 添加的include路徑

可能的問(wèn)題

  • 測(cè)試編譯,沒(méi)有把--enable gpl去掉婿禽,不確定去掉能不能編譯哈赏僧,畢竟....x264是GPL的玩讳。
  • 編譯好后的ffmpeg可以在Qt下正常使用qsv姓迅、nvenc編碼甲馋,解碼暫時(shí)沒(méi)用到不確定倦始。
  • 編譯出來(lái)的ffmpeg.exe沒(méi)法雙擊運(yùn)行霹俺,提示無(wú)法定位程序輸入點(diǎn)__gxx_personality_v0于動(dòng)態(tài)鏈接庫(kù)avcodec-58.dll上稳其。
  • Nvidia的cuda硬解在mingw下貌似搞不了......相關(guān)問(wèn)題
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末定血,一起剝皮案震驚了整個(gè)濱河市电爹,隨后出現(xiàn)的幾起案子恢筝,更是在濱河造成了極大的恐慌哀卫,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撬槽,死亡現(xiàn)場(chǎng)離奇詭異此改,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)侄柔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)共啃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)占调,“玉大人,你說(shuō)我怎么就攤上這事移剪【可海” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵纵苛,是天一觀的道長(zhǎng)剿涮。 經(jīng)常有香客問(wèn)我,道長(zhǎng)攻人,這世上最難降的妖魔是什么取试? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮怀吻,結(jié)果婚禮上瞬浓,老公的妹妹穿的比我還像新娘。我一直安慰自己蓬坡,他們只是感情好猿棉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著屑咳,像睡著了一般萨赁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上乔宿,一...
    開(kāi)封第一講書(shū)人閱讀 51,165評(píng)論 1 299
  • 那天位迂,我揣著相機(jī)與錄音,去河邊找鬼详瑞。 笑死掂林,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的坝橡。 我是一名探鬼主播泻帮,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼计寇!你這毒婦竟也來(lái)了锣杂?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤番宁,失蹤者是張志新(化名)和其女友劉穎元莫,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蝶押,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡踱蠢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了棋电。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茎截。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡苇侵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出企锌,到底是詐尸還是另有隱情榆浓,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布撕攒,位于F島的核電站陡鹃,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏打却。R本人自食惡果不足惜杉适,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望柳击。 院中可真熱鬧,春花似錦片习、人聲如沸捌肴。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)状知。三九已至,卻和暖如春孽查,著一層夾襖步出監(jiān)牢的瞬間饥悴,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工盲再, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留西设,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓答朋,卻偏偏與公主長(zhǎng)得像贷揽,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子梦碗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 用到的組件 1禽绪、通過(guò)CocoaPods安裝 2、第三方類(lèi)庫(kù)安裝 3洪规、第三方服務(wù) 友盟社會(huì)化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 14,613評(píng)論 1 180
  • 懷念已故的親人恐怕比思念遠(yuǎn)方親人更幽遠(yuǎn)綿延印屁,沒(méi)有止境。 思念僅僅是一種牽掛斩例,它有物可思雄人,有點(diǎn)可尋,被思念的人就在那...
    虞叔叔的夜光寶盒閱讀 221評(píng)論 0 0
  • 自然的春夏秋冬更迭洋满,讓流年易逝,容顏易老珍坊。而抵抗歲月侵襲的魔法牺勾,就藏在自然的饋贈(zèng)中。享受美味的同時(shí)阵漏,也可以保持年輕...
    魏麗惠閱讀 407評(píng)論 0 0
  • 當(dāng)火車(chē)還在駛向站臺(tái) 緣分使你我相遇 這一切來(lái)的都是那么的偶然 就這樣你和我彼此之間相知 當(dāng)聽(tīng)你說(shuō)起白羊和獅子很合的...
    瀏小煚拓閱讀 717評(píng)論 0 0
  • 這是《溝通的藝術(shù)》(作者 羅納德·B·阿德勒/拉賽爾·F·普羅科特)精讀版的閱讀筆記驻民。Day-2/6。 昨天小結(jié):...
    丨張偉丨閱讀 167評(píng)論 0 0