GStreamer 編譯安裝 2021 1 11

2022-06-07 04:48:07 字數 2378 閱讀 1708

本文適合開發者採用gstreamer開發gstreamer應用。只針對linux。對於windows,可以參考 building using cerbero.

一、設定gst-build

git clone

cd gst-build

或者,如果您具有開發人員訪問儲存庫的許可權,請執行以下操作:

git clone [email protected]:gstreamer / gst-build.git

cd gst-build

gst構建的布局

gst-build包含一些著名的指令碼和目錄:

meson.build是頂級構建定義,它將遞迴配置所有依賴項。它還定義了一些幫助程式命令,使您可以解除安裝開發環境或輕鬆更新gstreamer模組的git儲存庫。

subprojects /是包含gstreamer模組和一系列依賴項的目錄。

基本meson用法

通過執行以下命令來配置模組(或在gst-build中一次完成幾個配置):

meson

build_directory是所有構建指令和輸出所在的位置(這也稱為「目錄外」構建)。如果未建立目錄,則將在此時完成。請注意,不帶任何命令引數呼叫meson就是隱式呼叫meson設定命令(即執行專案的初始配置)。

關於build_directory的位置只有乙個限制:它不能與源目錄相同(即,您在其中轉殖模組或gst-build的位置)。它可以在該目錄之外,也可以在該目錄下/內。

配置meson後,您可以:

輸入指定的構建目錄並執行ninja。

cd 《構建目錄》

ninja

或者,您可以僅將構建目錄指定為引數,而不是每次希望執行ninja命令時都切換到構建目錄。此選項的優點是您可以在任何地方執行它(而不是更改為ninja目錄)

ninja -c /path/ to/build_directory

這將從該模組(和子專案,如果在gst-build中)構建所有內容。

注意:修改原始檔時,無需重新執行meson,只需要重新執行ninja 即可。如果您更改了構建/配置檔案,ninja 將自行確定meson需要重新執行,並將自動執行。

進入「解除安裝」環境

gstreamer由幾種工具,外掛程式和元件組成。為了簡化開發和測試,有乙個目標(由gst-build提供)將相應地設定環境變數,以便您可以直接使用所有構建結果。

ninja -c 《路徑/到/構建目錄》 devenv

您會注意到提示已相應更改。然後,您可以執行直接構建的任何gstreamer工具(例如gst-inspect-1.0,gst-launch-1.0等)。

使用多個分支機構或遠端站點

跟蹤多個git遠端儲存庫(例如官方上游儲存庫和您在gitlab上的個人轉殖)並不罕見。

您可以使用configure命令列出meson專案的所有可用選項:

meson configure

這個命令非常關鍵,顯示的結果如下:

這個可以指導如何寫-d 《選項名稱》 = 《選項值》 ,比如第一項 gst-plugins-bad:accurip, meson命令可以通過

meson -dgst-plugins-bad:accurip=enabled

將該選項設定為使能。

如果您已經配置了構建目錄,則可以提供該目錄,並且還將獲得該構建的配置值:

meson configure

該命令將列出每個選項:

注:auto的值表示meson將在配置時確定正確的值(例如,如果您有可用的開發包來構建某個外掛程式)。

您還將看到《繼承自主專案》的值。這主要用於作為通用選項的選項。例如,doc選項出現在頂層以及每個子模組上(例如:gstreamer:doc)。通常,您只想一次設定該選項的值,所有子模組都將繼承自該選項。

然後,當使用-d 《選項名稱》 = 《選項值》配置構建時,可以為meson提供這些選項。例如,如果不想在gst-build(rs選項)中構建rust外掛程式,則可以執行以下操作:

meson-drs =disable 《構建目錄》

執行測試

通過從構建目錄呼叫meson測試或meson測試-c 來執行單元測試。如果有任何失敗,您可以檢視最後指定的檔案,也可以執行meson測試--print-errorlogs,它將在執行後向您顯示失敗測試的日誌。

您也可以通過指定名稱name來僅執行測試的子集。例如meson測試gst_gstpad。完整的測試列表可通過meson測試--list獲得。

如果構建了gst-devtools子模組,則還可以使用gst-validate-launchergst-validate來執行測試。

gst-validate-launcher check.gst *

交叉編譯 GStreamer

交叉編譯通用指令碼cross compile.sh 把指令碼放到待編譯原始碼目錄 輸入命令 cross compile.shmakeconfigmakeallmakeinstall 統一安裝到 sysroot usr目錄下 bin sh 交叉編譯通用指令碼cross compile.sh home ...

GStreamer 安裝測試

include include 定義訊息處理函式,static gboolean bus call gstbus bus,gstmessage msg,gpointer data default break return true int main int argc,char argv 建立管道和元...

centos安裝gstreamer報錯解決方案

最近在倒騰語音識別的乙個方案 在ubuntu下可以安裝readme.md的步驟順利安裝成功,在centos下,則需要自行修改dockfile的指令,講講其中遇到的兩個問題 1 安裝openfst一直失敗,這個問題主要是經驗不足造成的,由於之前失敗過,後邊儘管按照提示一步一步解決依然make失敗,主要...