我正在尝试设计基于Android的硬件加速视频编码器。我已经做了一段时间的研究,但我没有找到太多有用的东西。
无论如何,我看到了Gstreamer(http://gstreamer.freedesktop.org/)。据说这可以提供硬件视频编码器。但是,在我阅读手册后,我发现编码器没有任何内容。
有谁知道这些东西?谢谢!
答案 0 :(得分:2)
它将依赖于您的硬件。你在运行什么设备?
如果您的处理器包含实现视频编码/解码的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。
Broadcom处理器支持:https://packages.debian.org/wheezy/gstreamer0.10-crystalhd
视频加速器硬件还有几个标准接口,包括VDPAU,VAAPI和OpenMax IL。如果您的处理器不是上述处理器之一,则可能有人编写了一个驱动程序,将其中一个标准接口映射到您的硬件。
Rasberry Pi显然得到了OpenMax IL插件的支持:http://gstreamer.freedesktop.org/releases/gst-omx/1.0.0.html
如果您不知道您的处理器是否受支持,我会搜索" VDPAU"," VAAPI"等的名称和各种组合。
答案 1 :(得分:1)
Gstreamer中有多种编码选项可以采用原始流并对其进行编码。几乎任何以“enc”结尾的元素都可以用来进行编码。以下是一些编码管道的一个很好的例子:
https://developer.ridgerun.com/wiki/index.php/TVP5146_GStreamer_example_pipelines
话虽如此,我要提醒的是,视频编码非常耗费硬件。我还会考虑获得一个专用的硬件编码器,如果你的流是一个健壮的大小,不要通过GStreamer进行软件编码。