1、编译fdk-aac:
http://blog.csdn.net/u011270282/article/details/77259320
2、编译ffmpeg脚本:
https://github.com/kewlbear/FFmpeg-iOS-build-script
3、build-ffmpeg.sh修改
#FDK_AAC=`pwd`/../fdk-aac-build-script-for-iOS/fdk-aac-ios
改为:
FDK_AAC=`pwd`/fdk-aac-ios
if [ "$FDK_AAC" ]
then
CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-libfdk-aac"
fi
改为
if [ "$FDK_AAC" ]
then
CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-nonfree --enable-libfdk-aac"
fi
4、将第二部编译好的fdk-aac-ios文件夹放到build-ffmpeg.sh同一目录,执行build-ffmpeg.sh脚本
5、build通过之后,使用的时候,如果:
_pCodec = avcodec_find_encoder(AV_CODEC_ID_AAC);
后面会报如下错误:
Specified sample format s16 is invalid or not supported
改成如下:
NSString* codecName = @"libfdk_aac";
_pCodec = avcodec_find_encoder_by_name([codecName UTF8String]);
就好了。