移植ffmpeg neon版到android

    最近要移植一个ffmpeg版本到android,当然有两种方式,一种是NDK编译方式,网上有很多的资料,例如:ffmpeg neon优化必看

    但是也比较麻烦,我这里介绍一种交叉编译方式,这样就可以像gcc编译一样,configure、make、make install了。

    同时,这里需要ffmpeg支持NEON图像加速指令,这对视频的解码性能有及其重要的影响,那么应该如何正确移植ffmpeg neon版本呢?
    (本文参照了VLC for android的相关代码)

    首先是configure,例如:

    ./configure --prefix=xxx/arm-linux-androideabi --enable-cross-compile --target-os=linux --arch=arm --cpu=cortex-a8 --enable-neon --cross-prefix=arm-linux-androideabi-


    然后就可以直接make和make install了。

    你可以查看ffmpeg/libavcodec/arm/目录下的一些带neon的汇编源码是否参与了编译,按照上述编译,肯定是编译了的。

    但是有一点奇怪的,config.h里面的配置仍然是#define HAVE_NEON 0,但是确实是优化过了的。


    需要补充的是,这里的交叉编译工具链是从NDK中提取出来的,可以参照之前的博文http://blog.chinaunix.net/uid-25272011-id-3491368.html 制作一个android编译工具,下载一个ffmpeg的版本,我这里采用的是ffmpeg-0.8.14的版本。

      我的工程是VLC改编的,这样链接了这个ffmpeg版本,解码视频的性能明显提升了不少。


你可能感兴趣的:(ffmpeg)