本文共 2346 字,大约阅读时间需要 7 分钟。
ffmpeg 自带aac 编码器但是 不支持 AV_SAMPLE_FMT_S16 的采样,所以本文采用libfdk-aac 进行aac的编码,其中libfdk-aac编译步凑参考:,ffmpeg 编译步凑参考:,将libfdk-aac 集成到ffmpeg 的编译文件如下:
#!/bin/bashNDK="/home/wh/android-ndk-r12b"SYSROOT=$NDK/platforms/android-9/arch-arm/TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64function build_one{./configure --prefix=$PREFIX \ --disable-shared \ --enable-static \ --disable-debug \ --disable-doc \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-avdevice \ --disable-doc \ --disable-symver \ --disable-encoders \ --disable-muxers \ --disable-demuxers \ --disable-parsers \ --disable-bsfs \ --disable-protocols \ --disable-indevs \ --disable-outdevs \ --disable-filters \ --disable-decoders \ --enable-small \ --enable-asm \ --enable-nonfree \ --enable-neon \ --enable-gpl \ --enable-encoder=libfdk_aac \ --enable-decoder=libfdk_aac \ --enable-libfdk-aac \ --enable-muxer=adts \ --disable-encoder=libfaac \ --enable-protocol=file \ --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ --target-os=android \ --arch=arm \ --disable-libfaac \ --enable-cross-compile \ --sysroot=$SYSROOT \ --extra-cflags="-Os -fpic $ADDI_CFLAGS -mfpu=neon" \ --extra-ldflags="$ADDI_LDFLAGS" \ $ADDITIONAL_CONFIGURE_FLAGmake install}CPU=armPREFIX=$(pwd)/android/$CPUADDI_CFLAGS="-marm -I/home/wh/FFmpeg-n3.1.3/fdkacc/include/ -DANDROID"ADDI_LDFLAGS="-L/home/wh/FFmpeg-n3.1.3/fdkacc/lib/"CPU=armv5teOPTIMIZE_CFLAGS="-marm -march=$CPU"PREFIX=./android/$CPUADDITIONAL_CONFIGURE_FLAG="--disable-armv6 --disable-armv6t2 --disable-vfp --disable-neon"build_one#arm v7nCPU=armv7-aOPTIMIZE_CFLAGS="-marm -march=$CPU"PREFIX=./android/$CPUADDITIONAL_CONFIGURE_FLAG=--enable-neonbuild_one
将上述内容保存为以 .sh文件格式的文件放到ffmpeg 跟目录下 在终端执行 上述文件,将进行编译。
其中有几点说明如下:
--enable-encoder=libfdk_aac \ 启用libfdk_aac编码器
源码地址
转载地址:http://knzoi.baihongyu.com/