《FFmpeg開發實戰:從零基礎到短影片上線》一書的“7.3.1 Linux環境安裝libass”介紹瞭如何在Linux環境給FFmpeg整合libass,其實在Windows環境也能給FFmpeg整合libass,具體的整合步驟說明如下。注意:下列的所有命令均需在MSYS視窗中執行。
1、安裝freetype
fontconfig、fribidi、harfbuzz、libass都依賴於freetype庫,所以要先安裝該庫。freetype的安裝步驟說明如下。
(1)freetype的下載頁面是https://download.savannah.gnu.org/releases/freetype/,比如2023年8月釋出的freetype-2.13.2,該版本的原始碼下載地址是https://download.savannah.gnu.org/releases/freetype/freetype-2.13.2.tar.gz。
(2)進入解壓後的freetype目錄,執行下面命令配置freetype。
(3)執行下面命令編譯freetype。
(4)編譯完成後,執行下面命令安裝freetype。
(5)給環境變數PKG_CONFIG_PATH新增freetype的pkgconfig路徑,也就是在/etc/profile檔案末尾新增如下一行內容:
然後執行下面命令重新載入環境變數:
執行下面命令檢視當前的環境變數,發現PKG_CONFIG_PATH的修改已經奏效。
2、安裝libxml2
由於字型配置庫fontconfig依賴於libxml2庫,因此要先安裝該庫。libxml2的安裝步驟說明如下。
(1)libxml2的下載頁面是http://xmlsoft.org/sources/,比如2010年11月釋出的libxml2-2.7.8,該版本的原始碼下載地址是http://xmlsoft.org/sources/libxml2-2.7.8.tar.gz。執行下面命令解壓下載好的壓縮包:
(2)修改include/libxml/xmlexports.h,在檔案開頭增加下面一行:
(3)進入解壓後的libxml2目錄,執行下面命令配置libxml2。
(4)執行下面命令編譯libxml2。
(5)編譯完成後,執行下面命令安裝libxml2。
(6)給環境變數PKG_CONFIG_PATH新增libxml2的pkgconfig路徑,也就是在/etc/profile檔案末尾新增如下一行內容:
然後執行下面命令重新載入環境變數:
執行下面命令檢視當前的環境變數,發現PKG_CONFIG_PATH的修改已經奏效。
3、安裝gperf
由於字型配置庫fontconfig依賴於gperf,因此要先安裝該工具。Windows環境執行下面命令安裝gperf:
4、安裝fontconfig
fontconfig是一款字型配置工具,它能夠自動檢測字型檔,以及管理和配置字型檔。fontconfig的安裝步驟說明如下。
(1)fontconfig的下載頁面是https://www.freedesktop.org/software/fontconfig/release/,比如2023年1月釋出的fontconfig-2.14.2,該版本的原始碼下載地址是https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.14.2.tar.gz。執行下面命令解壓下載好的壓縮包:
(2)進入解壓後的fontconfig目錄,執行下面命令配置fontconfig。
注意:如果沒安裝libxml2,執行configure就會報錯“*** expat is required. or try to use --enable-libxml2”。
(3)執行下面命令編譯fontconfig。
(4)編譯完成後,執行下面命令安裝fontconfig。
(5)給環境變數PKG_CONFIG_PATH新增fontconfig的pkgconfig路徑,也就是在/etc/profile檔案末尾新增如下一行內容:
然後執行下面命令重新載入環境變數:
執行下面命令檢視當前的環境變數,發現PKG_CONFIG_PATH的修改已經奏效。
5、安裝fribidi
fribidi是個中東字型增強庫,它實現了Unicode字符集的雙向演算法,以便處理阿拉伯語、希伯來語這些中東語言。fribidi的安裝步驟說明如下。
(1)fribidi的下載頁面是https://github.com/fribidi/fribidi/releases,比如2023年5月釋出的fribidi-1.0.13,該版本的原始碼下載地址是https://github.com/fribidi/fribidi/releases/download/v1.0.13/fribidi-1.0.13.tar.xz。注意要下載副檔名是tar.xz的壓縮包,不能下載副檔名是tar.gz的壓縮包,因為tar.gz裡面沒有configure檔案。執行下面命令解壓下載好的壓縮包:
(2)進入解壓後的fribidi目錄,執行下面命令配置fribidi。
(3)執行下面命令編譯fribidi。
(4)編譯完成後,執行下面命令安裝fribidi。
(5)給環境變數PKG_CONFIG_PATH新增fribidi的pkgconfig路徑,也就是在/etc/profile檔案末尾新增如下一行內容:
然後執行下面命令重新載入環境變數:
執行下面命令檢視當前的環境變數,發現PKG_CONFIG_PATH的修改已經奏效。
6、安裝harfbuzz
harfbuzz是一個文字塑形引擎,它能夠將Unicode字元轉換為格式正確的字形輸出,可用於除錯和預覽字型效果。harfbuzz的安裝步驟說明如下。
(1)harfbuzz的最新原始碼在https://github.com/harfbuzz/harfbuzz,但是高版本harfbuzz容易編譯失敗,實際應用採取1.2.7版本就夠了。各版本harfbuzz的下載頁面是https://www.freedesktop.org/software/harfbuzz/release/,比如1.2.7版本的原始碼下載地址是https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-1.2.7.tar.bz2。執行下面命令解壓下載好的壓縮包:
(2)進入解壓後的harfbuzz目錄,執行下面命令配置harfbuzz。
(3)執行下面命令編譯harfbuzz。
(4)編譯完成後,執行下面命令安裝harfbuzz。
(5)給環境變數PKG_CONFIG_PATH新增harfbuzz的pkgconfig路徑,也就是在/etc/profile檔案末尾新增如下一行內容:
然後執行下面命令重新載入環境變數:
執行下面命令檢視當前的環境變數,發現PKG_CONFIG_PATH的修改已經奏效。
7、安裝libass
確認以上的freetype、libxml2、gperf、fontconfig、fribidi、harfbuzz等庫全都正確安裝之後,再來安裝字幕渲染器libass。libass的安裝步驟說明如下。
(1)libass的原始碼頁面是https://github.com/libass/libass,下載頁面是https://github.com/libass/libass/releases,比如2023年2月釋出的libass-0.17.1,該版本的原始碼下載地址是https://github.com/libass/libass/releases/download/0.17.1/libass-0.17.1.tar.gz。執行下面命令解壓下載好的壓縮包:
(2)進入解壓後的libass目錄,執行下面命令配置libass。
(3)執行下面命令編譯libass。
(4)編譯完成後,執行下面命令安裝libass。
(5)給環境變數PKG_CONFIG_PATH新增libass的pkgconfig路徑,也就是在/etc/profile檔案末尾新增如下一行內容:
然後執行下面命令重新載入環境變數:
執行下面命令檢視當前的環境變數,發現PKG_CONFIG_PATH的修改已經奏效。
8、啟用libass
由於FFmpeg預設未啟用libass,因此需要重新配置FFmpeg,標明啟用libass,然後重新編譯安裝FFmpeg。FFmpeg的Windows環境完整編譯過程參見《FFmpeg開發實戰:從零基礎到短影片上線》一書的“8.1 Windows環境編譯FFmpeg”,詳細的啟用步驟說明如下。
(1)確保下列路徑均已載入至環境變數PKG_CONFIG_PATH
(2)執行以下命令,在libxml2的安裝路徑下補充一個xmlversion.h,因為配置FFmpeg的時候會檢查<libxml2/libxml/xmlversion.h>。
(3)回到FFmpeg原始碼的目錄,執行以下命令重新配置FFmpeg,主要增加啟用libass。(增加了選項--enable-libass --enable-libfribidi --enable-libxml2 --enable-fontconfig)
(4)執行下面命令編譯FFmpeg。
(5)執行下面命令安裝FFmpeg。
(6)執行以下命令檢視FFmpeg的版本資訊。
檢視控制檯回顯的FFmpeg版本資訊,找到“--enable-libass”,說明FFmpeg正確啟用了字幕渲染器libass。