FFmpeg编译:Linux下使用NDK编译FFmpeg

Posted 夜行过客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFmpeg编译:Linux下使用NDK编译FFmpeg相关的知识,希望对你有一定的参考价值。

环境: Ubuntu 14.04 , android-ndk-r14b , ffmpeg3.4 

1.下载并解压FFmpeg3.4.zip(略)

2.将编译脚本放入到FFmpeg解压后的目录。

3.执行编译脚本: ./linux_build_android.sh 

linux_build_android.sh

#!/bin/bash
echo "进入编译ffmpeg脚本"
NDK=/home/yongdaimi/Android/android-ndk-r14b
#5.0
PLATFORM=$NDK/platforms/android-21/arch-arm
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
CPU=armv7-a
#输出路径
PREFIX=./android/$CPU
function buildFF
{
    echo "开始编译ffmpeg"
    ./configure     --prefix=$PREFIX     --target-os=android     --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi-     --arch=arm     --cpu=$CPU      --sysroot=$PLATFORM     --extra-cflags="$CFLAG"     --cc=$TOOLCHAIN/bin/arm-linux-androideabi-gcc     --nm=$TOOLCHAIN/bin/arm-linux-androideabi-nm     --enable-shared     --enable-runtime-cpudetect     --enable-gpl     --enable-small     --enable-cross-compile     --disable-debug     --disable-static     --disable-doc     --disable-ffmpeg     --disable-ffplay     --disable-ffprobe     --disable-ffserver     --disable-postproc     --disable-avdevice     --disable-symver     --disable-stripping     $ADD 
    make -j16
    make install
    echo "编译结束!"
}
###########################################################
echo "编译支持neon和硬解码"
CPU=armv7-a
PREFIX=./android/armv7-a-neon-hard
CFLAG="-I$PLATFORM/usr/include -fPIC -DANDROID -mfpu=neon -mfloat-abi=softfp "
ADD="--enable-asm 
    --enable-neon     --enable-jni     --enable-mediacodec     --enable-decoder=h264_mediacodec     --enable-hwaccel=h264_mediacodec "
buildFF

###########################################################
#echo "编译不支持neon和硬解码"
#CPU=armv7-a
#PREFIX=./android/$CPU
#CFLAG="-I$PLATFORM/usr/include -fPIC -DANDROID -mfpu=vfp -mfloat-abi=softfp "
#ADD=
#buildFF

PS:需要将NDK上面的路径替换成自己本机的路径。

 

以上是关于FFmpeg编译:Linux下使用NDK编译FFmpeg的主要内容,如果未能解决你的问题,请参考以下文章

Linux下NDK编译FFMPEG包含neon参数

NDK编译FFMpeg[Linux]

如何用Android NDK编译FFmpeg

使用NDK(r20)编译FFmpeg

Android集成ffmpeg(一,Linux平台下编译ffmpeg)

ffmpeg 64位编译脚本