Hardware accelerated FFmpeg on android?

11k views Asked by At

I compiled an older version of FFmpeg for Android (if I recall correctly it was 0.6.X). FFmpeg decodes a video frame, scales it, then I'm using OpenGL to draw it on the screen. As far as I can tell, the problem is the decoding and scaling---they're not hardware accelerated.

My question is:

  1. Is the latest version of FFmpeg hardware accelerated for ARM (Android) processors?
  2. Am I going about this the wrong way? i.e., is there a better way of doing this? Where "this" is playing a h264 HD video as a video live wallpaper---the framerate needs to be high, so hardware acceleration is desirable whenever available.
3

There are 3 answers

2
Adnaan On

What you need is ffmpeg compiled for ARM NEON. See: https://groups.google.com/forum/#!topic/android-ndk/mGF6t3uWZ4U

0
code7amza On
  1. I think so , yes. see : http://ffmpeg.org/#pr9 . the major release that has the hardware accelerated decoding of h264 on Android is Harmony 0.9

  2. if you use a decoder that takes advantage of the hardware acceleration, when it's available, I don't see how you can do better...

0
Justin Buser On

You could also try compiling ffmpeg with libstagefright_h264, I was able to get it to compile and read video file properties, but have been unable to get avcodec_open to work with it... That would be hardware accelerated assuming it was supported by the device.