目录
一.音频处理概要流程
音频处理流程
1.直播客户端处理流程
音视频采集 -> 音视频编码 -> 传输 -> 音视频解码 -> 音视频渲染
2.音频数据流
pcm(完整的数字信号)-> aac/mp3 (压缩后的数据) -> mp4/flv/mov(套一层马甲作为可识别的多媒体文件) -> 解码器解封(aac/mp3)-> 还原pcm去播放。
二.PCM与WAV
1.音频的原始数据:
pcm格式数据(纯音频数据无任何编码和封装)
WAV格式数据(有文件格式,可以储存原始数据PCM数据,相当在原始数据加了个头)
2.量化基本概念:
采样大小:一个采样用多少bit存放。常用的是16bit(也叫位深)
采样率:采样频率 8k,16k,32k,44.1k,48k, (采样率越高还原度越高)
声道数:单声道,双声道,多声道
PCM数据就是采样大小x采样率x声道数
3.码率计算:
要算一个PCM音频率的码流是一件很轻松的事情,采样率x采样大小x声道数
例如:采样率为44.1kHZ,采样大小为16bit。双声道的PCM的编码的WAV文件,它的码率为44.1kx16x2=1411.2kb/s。
这么大的码流显然无法再我们网络上传输,需要压缩后进行传输。
4.WAV数据解析:
ChunkSize:数据块大小
Format:数据格式(fmt 或者 data),fmt后面是解析信息,data就是直接是数据
NumChannals:声道数
SampleRate:采样率
BitsPerSample:采样大小
举例如下:
三.各个平台采集音频的方式
Android端音频采样 #AudioRecorder(更底层) MediaRecorder
IOS端音频采样 #Audio unit AV foundation
windows端音频采集 #Direct show Open AL Audio core(Win7后)
1.AudioRecord(基于字节流录音)
优点:可以实现语音的实时处理,进行边录边播,对音频的实时处理。
缺点:输出的是PCM的语音数据,如果保存成音频文件是不能被播放器播放的。要用到AudioTrack这个去进行处理。
2.MediaRecorder(基于文件录音)
已集成了录音,编码,压缩等,支持少量的音频格式文件。
优点:封装度很高,操作简单
缺点:无法实现实时处理音频,输出的音频格式少。