android 采集声音aac,Android PCM音频的采集和编码成AAC

Android原生的视频录制是不能做到分段不漏秒的,所以需要定制一套录制系统。

该系统的核心步骤如下:

(A)同步采集视频帧数据(YV12)和音频帧数据(PCM);

(B)通过硬件编码器对所述视频帧数据和音频帧数据进行编码;(视频:YV12->H.264,音频:PCM->AAC)

(C)将编码后的视频帧数据和音频帧数据及其时间戳传输给分段录像模块;

(D)将时间戳对应的视频帧数据和音频帧数据写入多媒体文件;

(E)判断所述多媒体文件的时长是否达到预设的最大时长,若达到最大时长则保存多媒体文件并进入下一步,否则保持步骤(D);

(F)新建多媒体文件,采用前一多媒体文件的最后一视频帧作为第一视频帧,跳转至步骤(D)。

今天看一下音频的处理。

PCM(脉冲编码调制)

AAC(高级音频编码)

相关基础:

* 一般情况下,一帧PCM是由2048次采样组成;

* 16位PCM,每一个样本2字节。立体声的PCM数据左右声道交替存储,用L表示左声道的一个PCM样本,R表示右声道的一个PCM样本,PCM数据在WAV文件中的存放序列是这样的:LRLRLRLR……

“Android SDK 提供了两套音频采集的API,分别是:MediaRecorder 和 AudioRecord,前者是一个更加上层一点的API,它可以直接把手机麦克风录入的音频数据进行编码压缩(如AMR、MP3等)并存成文件,而后者则更接近底层,能够更加自由灵活地控制,可以得到原始的一帧帧PCM音频数据。”

我们并没有采用这两种API方法,而是直接把相关功能集成到了mediaserver,定制性更胜一筹。

待续。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值