Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~
在本系列文因為工作上的產品應用需求,進而探索到很多層面的點滴事。透過每篇 EP 的分享把這些點滴整理,看起來或許像是個獨立的小品抒發文、也或許是一系列技術研究文!?
總之,就當作的隨手雜記文吧!
本篇是 莫名其妙就跟世界等級的 OpenSource 專案攪和了!? 系列文的 EP09。
還是繼續介紹 Gstreamer 運作的基本原理所提的:
[Source] → [Decoder] → [Filter/Effect] → [Encoder] → [Sink]
前一回 EP 介紹了 Source (源頭)、Sink (終尾)。
這回來談談 Decoder:解碼器吧~~~
當有了 Source 之後,就會需要把從這個 Source 來的多媒體資料讓機器(或稱裝置!?)進行正確的 解碼 處理(或稱運算!?)後,才能對這個多媒體資料做壞壞的事情。
如果在 Source 使用 filesrc 去讀取一個副檔名為 mp4 影片檔案時,那就代表著至少你已經知道這是個透過 mp4 格式 編碼後而存在的一份視訊檔案。
所以在裝置上要 "看看" 這個視訊檔案時,就必須先對這個視訊檔案 "解碼"。
可以到 "https://peach.blender.org/download/" 網站。
並從 https://download.blender.org/peach/bigbuckbunny_movies/ 下載經典的 BigBuckBunny 的 mp4 檔案 來測試看看。
而如果你有需要 BigBuckBunny 更高解析的 mp4 檔案,可到 https://download.blender.org/demo/movies/BBB/ 下載對應的 zip 檔案。
所以測試的 Gstreamer 指令為:
gst-launch-1.0 filesrc location="c:/tmp/bbb_sunflower.mp4" ! decodebin ! autovideosink
Gstreamer 所呈現的結果如下:
PS 有人可以告訴我 Sink 怎麼翻譯比較好嗎?
PS' 不用懷疑,現在 Windows 上的處理檔案路徑可以用正斜線 "/",若看不習慣還是可以用雙反斜線 "\\"。