【问题标题】:FFMPEG with hardware codec support支持硬件编解码器的 FFMPEG
【发布时间】:2012-01-28 23:48:15
【问题描述】:

我在 Android 2.2 上使用 ffmpeg 构建了一个简单的媒体播放器。硬件是基于 arm cortex-a8 的 1GHz 处理器,512 MB RAM。我的性能很差,800x600 mp4 视频大约 15 FPS。我有几个关于如何提高性能的问题

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

  • 在构建 ffmpeg 时应该启用哪些选项,以便可以针对我的目标硬件进行优化?就像是: --cpu=cortex=a8 --extra-cflags="-mfpu=neon" ...

我已经在网上四处寻找,但找不到我正在寻找的答案。我希望有人能在这方面给我建议。

提前致谢!

【问题讨论】:

  • 什么是硬件?媒体播放器本身和所用芯片的确切型号(a8 是 cpu 核心;需要知道 SoC 或主板上有哪些媒体核心/GPU/加速器)
  • 硬件使用 ZiiLABS ZMS-08 媒体处理器,我相信它有 H.264、WMV、MPEG4、MPEG2、Adobe Flash、XVid、DivX...编解码器
  • 标准的Zii媒体播放器是基于ffmpeg的吗?视频解码硬件好像很定制,ffmpeg不太可能支持这个hw。
  • 你给我们CPU/GPU/视频处理芯片的确切型号。但是设备本身是什么型号?是预发布版还是正式版?
  • 它实际上是一个围绕ZMS08平台构建的预发布设备

标签: android ffmpeg codec


【解决方案1】:

libav/ffmpeg 中必须有针对您的硬件量身定制的特定代码。现在,我可以看到对某些硬件解码器和具有公开 VPAPI 或 VDPAU(主要是 NVidia)API 的驱动程序的硬件的支持。

stock libavcodec drivers 似乎不以本机方式支持您的硬件。如果您可以获取 libavcodec 的源补丁或公开受支持的解码加速 API 之一的驱动程序,则可以获得加速解码。

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

【讨论】:

    猜你喜欢
    • 2014-11-07
    • 1970-01-01
    • 2021-10-24
    • 2014-05-21
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 2014-09-08
    • 2011-03-23
    相关资源
    最近更新 更多