android如何使用fdk-aac编码库来把aac转成pcm

android如何使用fdk-aac编码库来把aac转成pcm,第1张

线性PCM就是WAV。

AAC-LC是AAC的一个规格,你下载到或者转换的这些高码率的AAC都是AAC-LC的。

扩展名是.m4a。

.aac 是aac的音频数据流,m4a是aac的一个封装方式。其内容本身是一样的。

我用s754,和e453功能是一样的。m4a和wav的我都放了,没问题,只是.aac的我还没试过。

但我相信lz没有.aac的。。因为这年头你下载到的或者转换出来的都是m4a的

通过FFmpeg进行AAC编码步骤如下:

1.通过名字 libfdk_aac 找到AAC编码器。

2.创建编码上下文环境,并设置上下文的参数(比特率、采样大小、采样率、声道数等信息)。

3.创建并打开输出文件,打开编码器,对帧数据进行编码处理(实际应用中原始帧数据是来自麦克风或解码后的音频,这里是人工添加的模拟数据)。

4.将帧数据编码后的包写进文件。

本文介绍自己编译sdl2,fdk-aac,x264,ffmpeg源码集成到Xcode工程中,其中fdk-aac,x264嵌套编译进ffmpeg中,并使用sdl播放音频,OPenGLES渲染视频实现简单播放器

若报错 fdk-aac-2.0.2/configure: No such file or directory ,则用我网盘中的解压文件,里面包含了configure执行文件,执行 ./build.sh 后,

修改build-ffmpeg.sh文件为最新的版本4.3.2,修改CONFIGURE_FLAGS值中增加禁止生成可执行文件ffmpeg,ffplay,ffprobe,fdk-aac需要增加--enable-nonfree选项,fdk-aac和x264文件绝对路径要一致

将编译好的sdl,fdk-aac,x264,ffmpeg头文件和库文件(include和lib文件夹)

导入Xcode工程中并设置Header Search Path为

导入依赖的库AVFoudation.framework,CoreMedia.framework,VideoToolBox.framework,AudioToolBox.framework,lbz.tbd,libbz2.tbd,libiconv.tbd

使用ffmpeg库获取ffmpeg版本号

集成后可使用ffmpeg进行软解码,sdl播放音频,OpenGLES绘制视频实现一个简单播放器

开启子线程读取到MP4文件后,从MP4文件中解封装出h264文件和aac文件分别解码为YUV原始视频帧和pcm原始音频,将解封装出来的h264文件放入_vPktList,aac文件放入_aPktList

SDL通过回调的方式开启子线程播放音频

配置参数可精简和优化ffmpeg,在ffmpeg目录中,终端执行./configure --help列出全部参数


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11268933.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存