Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用ffmpeg本机aac将原始PCM编码为aac_Android_Ffmpeg_Aac - Fatal编程技术网

Android 使用ffmpeg本机aac将原始PCM编码为aac

Android 使用ffmpeg本机aac将原始PCM编码为aac,android,ffmpeg,aac,Android,Ffmpeg,Aac,我试图将原始PCM转换为aac,所以我试图通过ffmpeg实现它 我的ffmepg配置 --启用交叉编译--arch=arm--cpu=armv6--enable asm--target os=linux--disable strip--enable neon--enable-version3--disable shared--enable static--enable gpl--enable memalign hack--cc=arm linux androidabi gcc--ld=arm

我试图将原始PCM转换为aac,所以我试图通过ffmpeg实现它

我的ffmepg配置

--启用交叉编译--arch=arm--cpu=armv6--enable asm--target os=linux--disable strip--enable neon--enable-version3--disable shared--enable static--enable gpl--enable memalign hack--cc=arm linux androidabi gcc--ld=arm linux androidabi ld--extra cflags='-fPIC--DANDROID D_thumb--mthumb Wfatal errors--Wno deprecated--marm-三月=armv6'--禁用一切--启用编码器=aac--启用解码器=h264--启用hwaccels--禁用ffmpeg--禁用ffplay--禁用ffprobe--禁用ffserver--禁用网络--启用筛选器=缓冲--启用筛选器=缓冲汇--禁用解复用器=v4l--禁用解复用器=v4l2--禁用索引=v4l--禁用索引=v4l2

avcodec_find_encoder(CODEC_ID_AAC)  find's the AAC encoder succesfully.

audio_context= avcodec_alloc_context()
avcodec_open(audio_context, audio_encoder)  failed to open aac 

有什么想法吗?

我想答案应该在logcat的ffmpeg部分。您应该在ffmpeg LIB中打开调试级日志记录,并捕获日志以找出codec_open语句失败的地方


在这里提供日志

尝试使用libfaac,而不是使用ffmpeg内置aac编码器

首先,为android交叉编译libfaac

在ffmpeg中——额外的cflags提供编译后的libfaac的include目录的路径

中--extra-ldflags提供已编译libfaac的lib目录的路径

在ffmpeg
config.sh
中使用--启用libfaac

使用libfaac再次编译ffmpeg