音视频播放基本流程
音视频播放的原理主要分为:解协议->解封装->解码->音视频同步->播放。当然,如果是本地播放,没有解协议这一步骤
- 解协议->
- 流媒体协议格式转换为封装格式
- 音视频流媒体的传输格式是RTMP、HLS、HTTP-FLV…的格式,网络传输完成需要对这种格式进行解析,解析出来是AVI、FLV、TS…的格式,这是一种封装了的格式需要再进行解封装
- 解封装->
- 封装格式转换为原始格式
- 由AVI、FLV、TS、MP4等封装格式,音频解析为ACC…视频解析为H.264等
- 解码->
- AAC等转换为PCM YUV等音视频原始格式
- 音视频同步->
- 播放
图像编码
YUV,RGB,包括YcbCr是色彩空间的模型,而平常所说的BMP、PNG、JPEG是文件的存储形式。而YUV是音视频(编解码)最常用的格式。
音频编码
说到音频,主要有两个概念比较重要,一个是采集到的原始音频数据(比如PCM)和压缩后的音频数据(比如AAC),本文将介绍下PCM的相关知识。(AAC相关知识请参见下篇文章)
什么是PCM?
PCM(Pulse Code Modulation,脉冲编码调制)音频数据是未经压缩的音频采样数据裸流,它是由模拟信号经过采样、量化、编码转换成的标准数字音频数据。
什么是AAC?
AAC(Advanced Audio Coding,高级音频编码)是一种声音数据的文件压缩格式。AAC分为ADIF和ADTS两种文件格式。
视频编码
macMP4info分析工具
https://github.com/ksvc/MediaParser/releases/tag/v0.0.1