自定義構建GStreamer使之包含你應用需要的功能

文章來源:CNX SOFTWARE中文站 — 嵌入式開發者的新聞知識庫!

由於全球軟體諮詢公司 Collabora 和華為之間的合作,現在構建GStreamer時可以只使用特定應用程式所需的功能了。這樣可以減少那些儲存空間受限的嵌入式系統二進位制檔案的大小。

可能有一些人不

瞭解Gstreamer,Gstreamer其實是一個非常流行的開源多媒體框架,廣泛用於各種專案和產品中。它擁有很多的功能,這些功能分佈在超過 30 個庫中,而且Gstreamer在 230 個外掛中有超過 1600 多個元素。數量如此繁多的功能在臺式PC和大多數智慧手機上應用時都不是問題,但對於某些系統來說,Gstreamer二進位制的檔案可能太大了。直到現在也還沒有一種簡單、好用的方法來為特定應用程式定製構建GStreamer。不過,Collabora 公司現在更改的程式碼可以讓gst-build生成最小的

GStreamer 構建了。這也算是一個不錯的變化了。

自定義構建GStreamer使之包含你應用需要的功能

自定義構建的Gstreamer

其實,這次Collabora公司的Gstreamer是在去年 9 月釋出的 GStreamer 1。18 基礎上構建的。此次又構建了一項新功能,這個新功能可以將GStreamer整體構建到單獨一個名

為gstreamer-full幷包含所有的庫的共享庫中,該共享庫同時也包含外掛和其他依賴項,例如 GLib。該公司解釋說,gst-build 已經提供了要構建外掛的選項,透過使用 gstreamer-full 庫,可

以使用-Dgst-full-libraries=來選擇最終庫包含哪些庫。然後根據配置和可用的依賴項自動包含外掛。下面是一個示例:

自定義構建GStreamer使之包含你應用需要的功能

前往“CNX Software中文站”官網,檢視完整資訊

所有這些都已經包含在 Gstreamer 1。18 中。那麼 Collabora 究竟做了什麼?其實他們向 Gstreamer 選單添加了五個新選項從而提供了更好的粒度,如下所示:

重要的部分是-Dauto_features=disabled行,它禁用自動特性選擇,然後允許我們在選定的外掛中選擇特定的特性。

gst-full-plugins – 選擇你想要包含的外掛。預設情況下,所有外掛都會在被構建過程中啟用,並且必須至少傳遞一個外掛以避免構建所有外掛。

gst-full-elements – 使用 plugin1:elt1,elt2;plugin2:elt1格式選擇element(s)

gst-full-typefind-functions – 使用plugin1:tf1,tf2;plugin2:tf1格式選擇 typefind(s)

gst-full-device-providers – 使用plugin1:dp1,;dp2;plugin2:dp1格式選擇decide-provider(s)

gst-full-dynamic-types – 使用plugin1:dt1,;dt2;plugin2:dt1格式選擇dynamic-type(s)

Element、typefind、device-provider 和 dynamic type 都

是Gstreamer 文件中

定義的外掛功能。

為了展示該解決方案,Collabora公司 首先構建了 Gsteamer ,然後將所有選項生成一個 49。2 MB 的 gstreamer-full 靜態庫,然後是僅包含三個元素的自定義構建,即 filesrc、fakesink 和identity:

自定義構建GStreamer使之包含你應用需要的功能

前往“CNX Software中文站”官網,檢視完整資訊

你們可以在他們的

公告中找到有關 Co

llabora 公司實施的更多詳細資訊。

最終整個檔案就只有 3。2 MB 的大小了,或者說大小減少了 93。5%。還是十分不錯的。

更多優質文章推薦:

1。ClusBerry機架外殼,最多可容納四個可熱插拔的樹莓派CM4模組 - CNX Software中文站

2。香蕉派BPI-R2 Pro千兆乙太網路由器主機板,由瑞芯微RK3568供電 - CNX Software中文站

3。搭載Amlogic S905X4、可執行Android 11的UGOOS AM7電視盒預售了 - CNX Software中文站