一、知识点
ES流(Elementary Stream): 也叫基本码流,包含视频、音频或数据的连续码流.
PES流(Packet Elementary Stream): 也叫打包的基本码流, 是将基本的码流ES流根据需要分成长
度不等的数据包, 并加上包头就形成了打包的基本码流PES流.
TS流(Transport Stream): 也叫传输流, 是由固定长度为188字节的包组成, 含有独立时基的一个或
多个program, 一个program又可以包含多个视频、音频、和文字信息的ES流; 每个ES流会有不同的
PID标示. 而又为了可以分析这些ES流, TS有一些固定的PID用来间隔发送program和ES流信息的表格: PAT和PMT表.
(在MPEG-2系统中,由视频, 音频的ES流和辅助数据复接生成的用于实际传输的标准信息流称为MPEG-2传送流)
封装 : 就是捆绑打包, 将画面视频文件和音轨文件打包在一起, 并按照一定规则建立排序和索引, 便
于播放器或播放软件来索引播放. 包括AVI \ PS(Program Stream)\ TS(Transport Stream)\ MKV(Matroska)等.
二、播放过程回放
Figure 1. 视频播放基本处理流程
①access 访问: 无需多说, 可理解为接收、获取、得到数据流
②demux 解复用: 把合在一起的音频和视频分离(还有可能的字幕)
③decode 解码: 包括音频和视频的解码
④output 输出: 也分为音频和视频的输出(aout 和 vout)
这里需要着重说明的是: demux 和 decode 部分
demux部分
我们都知道, 音视频在制作的时候实际上是独立编码的, 得到的是分开的数据, 为了传输方便必须要用某种
方式合起来, 这就有了各种封装格式. 例如