Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~
在本系列文因為工作上的產品應用需求,進而探索到很多層面的點滴事。透過每篇 EP 的分享把這些點滴整理,看起來或許像是個獨立的小品抒發文、也或許是一系列技術研究文!?
總之,就當作的隨手雜記文吧!
本篇是 莫名其妙就跟世界等級的 OpenSource 專案攪和了!? 系列文的 EP15。
在 EP07 有提到一件事:
這旋即就有願意開疆闢土的開發者從 .NET Core 時代就(注意是 .NET Core) 完成了示範 Avalonia UI 上的 Sample,陸續隨著 .NET Core 3.1 的繼任者 .NET 5 的推出,該範例也都有能夠正常運作。
gstreamer-netcore 這個 Github 上的開源專案,透過兩個 .NET Core 3.1 的 Sample Code,其中一個是 Console 專案;另一個是 Avalonia UI 的專案。
示範著如何繼續使用 .NET Core 3.1 之後的 .NET 架構下,如何運用 gstreamer-sharp、GtkSharp 中的 gio-sharp、glib-sharp 這三套 binding 套件,來跟 gstreamer 的運作去進行 binding 轉換的處理。
而 vladkol 作者有特別在此 README 當中提醒要使用 gstreamer-netcore 這套程式庫用戶:
It doesn't work with MSVC build...
然後前一回 EP14 不是有特別提醒要在 Windows 上要安裝 gstreamer 時,請下載 MSVC 版本來安裝嗎?
"是這樣沒錯,但不是這樣"
(取自 BanG Dream! It's MyGO!!!!! 網路哽圖)
咳~~~又離題了...
簡單說如果在 Windows 上雖然按照 gstreamer 官方的說法是 "建議" 安裝 MSVC 的版本,但礙於要透過 gstreamer-netcore 設計方式來使用 gstreamer 時,又只能選擇使用 MinGW 的版本,而整體運作起來也相當正常,所以就只好先採用 MinGW 的版本。
等等,那會有什麼影響?
詳情可見 Gstreamer 官網在 Download for Windows 的部分有提到的:
toolchain-compatibility-notes
這東西是 C/C++ 那邊一團亂七八糟的狀況而衍生來的,就跟 .NET Framework 穢土轉生成 .NET 的過程,隨著年代的推進,那個發展的過程就是一整個很複雜!
而從 gstreamer 目前 (version: 1.26.5) 所發佈的穩定版本,只看一個很直觀的屬性:檔案大小。
就同樣拿 "x86_64" 的來比較,兩個版本的安裝檔大小就差很多了,更別說安裝完畢後所佔的儲存空間大小差異。
那各位會怎麼選擇?