FFmpeg学习—android 利用ffmpeg 集成libfdk-aac 录制aac 音频文件

ffmpeg 自带aac 编码器但是 不支持  AV_SAMPLE_FMT_S16 的采样,所以本文采用libfdk-aac 进行aac的编码,其中libfdk-aac编译步凑参考:http://blog.csdn.net/xiaibiancheng/article/details/69676965,ffmpeg 编译步凑参考:http://blog.csdn.net/xiaibiancheng/article/details/69445097,将libfdk-aac 集成到ffmpeg 的编译文件如下:

#!/bin/bash
NDK="/home/wh/android-ndk-r12b"
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
function 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_FLAG
make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm -I/home/wh/FFmpeg-n3.1.3/fdkacc/include/  -DANDROID"
ADDI_LDFLAGS="-L/home/wh/FFmpeg-n3.1.3/fdkacc/lib/"

CPU=armv5te
OPTIMIZE_CFLAGS="-marm -march=$CPU"
PREFIX=./android/$CPU
ADDITIONAL_CONFIGURE_FLAG="--disable-armv6 --disable-armv6t2 --disable-vfp --disable-neon"
build_one

#arm v7n
CPU=armv7-a
OPTIMIZE_CFLAGS="-marm -march=$CPU"
PREFIX=./android/$CPU
ADDITIONAL_CONFIGURE_FLAG=--enable-neon
build_one

将上述内容保存为以 .sh文件格式的文件放到ffmpeg 跟目录下  在终端执行  上述文件,将进行编译。

其中有几点说明如下:

--enable-encoder=libfdk_aac \  启用libfdk_aac编码器
--enable-decoder=libfdk_aac \  启用libfdk_aac解码器
--enable-libfdk-aac \ 注册libfdk-aac 解码器,不加这个是不会注册的,最终还是用的ffmpeg 默认的aac解码器
--enable-muxer=adts \           使用adts 容器格式,使用了这个才能创建aac文件格式数据


源码地址  https://github.com/XIAIBIANCHENG/AacRecord  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值