跨平臺(tái)播放器開(kāi)發(fā) (二) QT for Linux & FFmpeg 環(huán)境搭建
簡(jiǎn)介
上一篇咱們?cè)?「MAC OS」 平臺(tái)下搭建了 QT 和 FFmpeg 開(kāi)發(fā)環(huán)境,該篇主要介紹如何在 「Linux」 平臺(tái)下搭建 QT 和 FFmpeg 開(kāi)發(fā)環(huán)境,MAC OS 平臺(tái)環(huán)境搭建可以參考上一篇文章 跨平臺(tái)播放器開(kāi)發(fā) (一) QT for MAC OS & FFmpeg 環(huán)境搭建
環(huán)境準(zhǔn)備
由于我自己用的是 MAC 電腦,所以如果想在 Linux 或者是 Win 上面想跑代碼怎么辦,只能裝一個(gè)虛擬機(jī)了??梢詤⒖荚撈恼?給mac裝個(gè) vmware 虛擬機(jī):https://snowdreams1006.github.io/tools/mac-install-vmware.html
Linux
「進(jìn)入 QT 官網(wǎng)」
從 5.15.0 版本開(kāi)始 QT 便不再支持離線安裝了。所以我們只能通過(guò)申請(qǐng)一個(gè)賬號(hào),在線安裝了。
直接點(diǎn)擊 「Go open source」 -> 「Download the Qt Online Installer」 最后會(huì)根據(jù)自己的系統(tǒng)匹配軟件,點(diǎn)擊 Download 就可以下載了。

「執(zhí)行下載下來(lái)的軟件:」
chmod?+x?qt-unified-linux-x64-4.1.1-online.run
./qt-unified-linux-x64-4.1.1-online.run
「執(zhí)行完成之后會(huì)有一個(gè)安裝頁(yè)面,如下:」

跟著指引點(diǎn)擊 Next ,


「選擇安裝路徑:」

「根據(jù)指引安裝需要的 SDK」

由于我只是在 Linux 平臺(tái)下跑代碼,所以我當(dāng)前只安裝了 QT5/QT6 桌面平臺(tái)的開(kāi)發(fā)包, 繼續(xù)點(diǎn)擊 Next 按鈕等待安裝,最后直到出現(xiàn)如下操作,就證明安裝成功了,可以啟動(dòng)開(kāi)發(fā)了。

最后 「QT for Linux ?GUI 樣式如下:」

由于咱們已經(jīng)在 MAC OS?平臺(tái)下創(chuàng)建了項(xiàng)目,所以直接通過(guò) git 命令將代碼 clone 下來(lái)就行了,
git?clone?https://github.com/yangkun19921001/QTFFPlayer.git
然后編譯 「FFmpeg for Linux」 動(dòng)態(tài)庫(kù)
#1、先安裝?FFmpeg?依賴庫(kù)
sudo?apt-get?update?&&?sudo?apt-get?install?autoconf?automake??libfreetype6-dev??libtool?make?pkg-config?zlib1g?zlib1g.dev?clang?yasm??libgnutls28-dev?\
?nasm??libx264-dev??libnuma-dev?\
?libx265-dev?libnuma-dev?libvpx-dev?\
?libfdk-aac-dev?libmp3lame-dev?libopus-dev?\
?libspeex-dev?frei0r-plugins-dev?libsdl2-2.0?libsdl2-dev?libxss1?\
sudo?apt-get?install?python3-pip?&&?\
pip3?install?--user?meson?\
#2、源碼方式編譯?FFmpeg
./configure?\
--prefix=$FFMPEG_PREFIX?\
--enable-shared??\
--disable-static??\
--enable-pthreads??\
--enable-gpl??\
--enable-nonfree?\
--enable-libmp3lame??\
--enable-libsnappy??\
--enable-libtheora??\
--enable-libx264??\
--enable-libx265??\
--enable-libfdk-aac?\
--enable-libfontconfig??\
--enable-libfreetype??\
--enable-libspeex?\
make?-j8
make?install
如果出現(xiàn)如下這樣,那么可以確定已經(jīng)開(kāi)始編譯了,根據(jù)電腦配置的不同,編譯時(shí)間也都不一樣的。

編譯完了之后,我們可以選擇 QT5 或者 QT6 的環(huán)境編譯運(yùn)行,如下所示:


可以發(fā)現(xiàn) FFmpeg 在 ?「QT for Linux」 平臺(tái)下,可以調(diào)用 API 進(jìn)行開(kāi)發(fā)了。
這里在運(yùn)行項(xiàng)目的時(shí)候報(bào)了一個(gè)錯(cuò) error while loading shared libraries: lib*.so.*: cannot open ... 查了下原因是 ubuntu ffmpeg 通過(guò)源碼編譯安裝沒(méi)有設(shè)置環(huán)境變量配置,找不到啟動(dòng)路徑導(dǎo)致的,可以通過(guò)下面方式解決
sudo?vim?/etc/ld.so.conf
![]()
#在文件末尾添加編譯好的路徑
/home/ffmpeg/lib
#更新環(huán)境變量
sudo?ldconfig
#加入全局變量
sudo?vi?/etc/profile
export?PATH="/home/ffmpeg/bin:$PATH"
#保存
source?/etc/profile
#測(cè)試
ffmpeg
總結(jié)
「QT for Mac OS」 和 「Linux」 ?開(kāi)發(fā)環(huán)境都搭建完畢了,最后還剩下一個(gè) 「Windows」 平臺(tái)了,環(huán)境都搭建完畢之后就要開(kāi)始擼碼了,激動(dòng)啊!
項(xiàng)目地址:https://github.com/yangkun19921001/QTFFPlayer.git
