我正試圖設計基於Android的硬件加速視頻編碼器。我已經做了一段時間的研究,但是我沒有發現太多有用的東西。如何在Android上使用GStreamer的硬件加速視頻編碼?
無論如何,我看到了Gstreamer(http://gstreamer.freedesktop.org/)。據說這可以提供硬件視頻編碼器。但是,在閱讀本手冊後,我對編碼器一無所知。
有沒有人知道這個東西?謝謝!
我正試圖設計基於Android的硬件加速視頻編碼器。我已經做了一段時間的研究,但是我沒有發現太多有用的東西。如何在Android上使用GStreamer的硬件加速視頻編碼?
無論如何,我看到了Gstreamer(http://gstreamer.freedesktop.org/)。據說這可以提供硬件視頻編碼器。但是,在閱讀本手冊後,我對編碼器一無所知。
有沒有人知道這個東西?謝謝!
Gstreamer中有各種各樣的編碼選項可用於採集原始數據流並對其進行編碼。幾乎任何以「enc」結尾的元素都可以用來進行編碼。下面是幾個編碼管線的一個很好的例子:
https://developer.ridgerun.com/wiki/index.php/TVP5146_GStreamer_example_pipelines
雖這麼說,我會告誡說,視頻編碼是非常密集的硬件。我也會考慮獲取專用硬件編碼器,並且如果流是健壯的大小,則不要通過GStreamer進行軟件編碼。
這將取決於您的硬件。你在運行什麼設備?
如果您的處理器包含一個實現視頻編碼/解碼的IP核,製造商需要提供一個驅動程序,以便您可以調用此硬件,或者理想情況下更進一步,併爲GStreamer提供一個特定的插件。
例如,飛思卡爾i.MX6處理器(在Wandboard和CuBox使用)具有由飛思卡爾保持了司機:https://github.com/Freescale/gstreamer-imx
TI OMAP處理器具有支持:http://processors.wiki.ti.com/index.php/GStreamer,也見TI Distributed Codec Engine。
博通處理器擁有支持:https://packages.debian.org/wheezy/gstreamer0.10-crystalhd
也有一些標準的接口,視頻加速器硬件,包括VDPAU,VAAPI和OpenMax IL。如果您的處理器不是上述之一,則可能有人編寫了將這些標準接口之一映射到您的硬件的驅動程序。 http://gstreamer.freedesktop.org/releases/gst-omx/1.0.0.html
如果您不知道您的處理器是否支持這樣做,我搜索的名稱和「VDPAU」的各種組合,「VAAPI:
的樹莓派顯然是由OpenMax的IL插件支持「等
謝謝!那麼這是一個硬件加速嗎? –
不知道我是否理解你的問題。如果通過「硬件編碼」,你的意思是有特定的硬件編碼或CPU,那麼GStreamer主要是一個庫,它允許通用CPU進行編碼,但它的軟件完成。有一些使用GStreamer進行硬件編碼的選項,請參閱http://www.jumpnowtek.com/?option=com_content&view=article&id=81:gumstix-dsp-gstreamer&catid=35:gumstix&Itemid=67 –
但是有沒有插件允許我們將硬件編碼卸載到GPU上? – nirvanaswap