文章來源:CNX SOFTWARE中文站 — 嵌入式開發者的新聞知識庫!
由於全球軟體諮詢公司 Collabora 和華為之間的合作,現在構建GStreamer時可以只使用特定應用程式所需的功能了。這樣可以減少那些儲存空間受限的嵌入式系統二進位制檔案的大小。
可能有一些人不
瞭解Gstreamer,Gstreamer其實是一個非常流行的開源多媒體框架,廣泛用於各種專案和產品中。它擁有很多的功能,這些功能分佈在超過 30 個庫中,而且Gstreamer在 230 個外掛中有超過 1600 多個元素。數量如此繁多的功能在臺式PC和大多數智慧手機上應用時都不是問題,但對於某些系統來說,Gstreamer二進位制的檔案可能太大了。直到現在也還沒有一種簡單、好用的方法來為特定應用程式定製構建GStreamer。不過,Collabora 公司現在更改的程式碼可以讓gst-build生成最小的
GStreamer 構建了。這也算是一個不錯的變化了。
自定義構建的Gstreamer
其實,這次Collabora公司的Gstreamer是在去年 9 月釋出的 GStreamer 1。18 基礎上構建的。此次又構建了一項新功能,這個新功能可以將GStreamer整體構建到單獨一個名
為gstreamer-full幷包含所有的庫的共享庫中,該共享庫同時也包含外掛和其他依賴項,例如 GLib。該公司解釋說,gst-build 已經提供了要構建外掛的選項,透過使用 gstreamer-full 庫,可
以使用-Dgst-full-libraries=來選擇最終庫包含哪些庫。然後根據配置和可用的依賴項自動包含外掛。下面是一個示例:
前往“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:
前往“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中文站