15

I have built a simple media player using ffmpeg on Android 2.2. Hardware is an arm cortex-a8 based 1GHz processor, 512 MB RAM. I am getting low performance, around 15 FPS for 800x600 mp4 video. I have a couple of questions on how I can improve the performance

  • How can I use the hardware codecs available on my target device. How can I configure ffmpeg to use the available hardware decoders? Does the GPU or graphics driver have to expose some standard API like OpenMax IL in order to this?

  • What are the options that should be enabled when building ffmpeg so that it can be optimized for my target hardware? Something like: --cpu=cortex=a8 --extra-cflags="-mfpu=neon" ...

I have already looked around the net but I couldn't find the answers that I am looking for. I hope someone can advice me on this.

Thanks in advance!

6
  • What is the hardware? Exact model of media player itself and of chips used (a8 is the cpu core; it is needed to know what media cores/GPUs/accelerators there are on SoC or on mainboard) Commented Aug 30, 2011 at 1:18
  • The hardware uses ZiiLABS ZMS-08 Media processor which I believe has H.264, WMV, MPEG4, MPEG2, Adobe Flash, XVid, DivX... codec Commented Aug 31, 2011 at 2:46
  • 1
    Is standard Zii media player based on ffmpeg? The video decoding hardware seems to be very custom, and it is unlikely that ffmpeg supports this hw. Commented Aug 31, 2011 at 10:18
  • You give us the exact model of CPU/GPU/Video processing chip. But what model is the device itself? Is it pre-release or general availability? Commented Aug 31, 2011 at 10:22
  • it's actually a pre-release device built around the ZMS08 platform Commented Sep 2, 2011 at 5:40

1 Answer 1

3

There must be specific code in libav/ffmpeg tailored to your hardware. Right now I can see support for some HW decoders and for hardware that have drivers that expose VPAPI or VDPAU (mostly NVidia) APIs.

Your hardware does not seem supported in a native way by the stock libavcodec drivers. You can get accelerated decoding if you can get hold of either source patches to libavcodec or drivers that expose one of the supported decoding acceleration APIs.

In other words, you should ask your HW provider.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.