FFMPEG支持硬件编解码器吗?

15

我使用 ffmpeg 在 Android 2.2 上构建了一个简单的媒体播放器。硬件是基于 ARM Cortex-A8 的 1GHz 处理器,512 MB RAM。目前性能很低,800x600 的 mp4 视频只能达到大约 15 帧每秒。我有几个问题想要了解如何提高性能。

  • 我如何使用目标设备上可用的硬件编解码器?我该如何配置 ffmpeg 来使用可用的硬件解码器?GPU 或图形驱动程序是否必须公开一些标准 API(例如 OpenMax IL)以实现这一点?

  • 在构建 ffmpeg 时应启用哪些选项,以便将其优化为我的目标硬件?类似于:--cpu=cortex=a8 --extra-cflags="-mfpu=neon" ...

我已经在网络上搜索过,但没有找到我正在寻找的答案。希望有人能给我提供建议。

先感谢您的帮助!


硬件是什么?媒体播放器本身的确切型号和芯片型号(a8是CPU核心;需要知道SoC或主板上有哪些媒体核心/GPU/加速器)。 - osgx
硬件使用的是ZiiLABS ZMS-08媒体处理器,我相信它具有H.264、WMV、MPEG4、MPEG2、Adobe Flash、XVid、DivX等编解码器。 - mctma
1
标准Zii媒体播放器基于ffmpeg吗? 视频解码硬件似乎非常定制化,ffmpeg不太可能支持此hw。 - osgx
你给我们提供了CPU/GPU/视频处理芯片的确切型号。但是设备本身的型号是什么?它是预发布还是一般可用性? - osgx
这实际上是一个基于ZMS08平台构建的预发布设备。 - mctma
@mctma - 我实际上有一个类似的问题。你找到答案了吗?如果找到了,可以分享一下笔记吗?这是我的问题https://dev59.com/WWsz5IYBdhLWcg3wfnwx - U Avalos
1个回答

3

libav/ffmpeg中必须有特定的代码来适应您的硬件。目前,我可以看到支持一些HW解码器和具有公开VPAPI或VDPAU(主要是NVidia)API的硬件。

您的硬件似乎没有通过原始libavcodec驱动程序以本地方式受到支持。如果您可以获得libavcodec源代码补丁或公开支持其中一个解码加速API的驱动程序,则可以获得加速解码。

换句话说,您应该向您的硬件提供商询问。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接