音视频播放原理

一、封装格式

   1、因为来源的不同,视频会有不同的格式,分别用不同的后缀表示,avi/rmvb/mp4等,这些格式代表的就是封装格式

   2、封装格式就是把已经压缩编码视频数据和音频数据按照一定的格式放到一起,不同的封装格式之间差距不大,各有优劣

   3、封装格式支持音视频编码标准,有些封装格式支持的音视频编码标准十分广泛,比如MKV,而有些封装格式支持的视音频编码标准很少,属于落后的封装格式,比如RMVB,所以单从封装格式无法看出某视频具体使用了什么音视频编码标准

二、视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤

    1、解协议

       1)就是将流媒体协议的数据,解析为标准的相应的封装格式的数据

       2)音视频在网络上传播的时候,常常采用各种流媒体协议,例如HTTP/RTMP/MMS等等,这些协议在传输数据的同时,也会传输一些信令数据,这些信令数据包括对播放的控制(播放,暂停,停止),或者对网络状态的描述等

       3)解协议的过程中会去掉信令数据而只保留音频数据,例如,采用RTMP协议传输的数据,经过解协议操作后,输出FLV格式的数据

    2、解封装的作用

       将输入的封装格式的数据,分离成为音频流压缩编码数据和视频流压缩编码数据,例如,FLV格式的数据,经过解封装操作后,输出H264编码的视频码流和AAC编码的音频码流

    3、解码

        解码是整个系统中最重要也是最复杂的一个环节,通过解码,

           压缩编码的视频数据输出成非压缩的颜色数据,例如YUV420P,RGB等等,

           压缩编码的音频数据输出称为非压缩的音频抽样数据,例如PCM数据

    4、音视频同步

         根据解封装模块处理过程中获取到的参数信息,同步解码出来的视频和音频数据,并将音频视频数据送至系统的显卡和声卡播放出来




你可能感兴趣的:(音视频播放原理)