该系列文章主要为了归纳总结,自己做一些文档输出,主要参考的有雷神的博客,和一些其他资源,如果有链接,会在文末附上
简介
音视频,说白了就是音频和视频,我们在网上看的所有电影,电视等内容都是存在音视频技术。也就是说所有展现在我们眼前的视频都包含音频和视频,这两个是分离存在的,所以有时候发现所看的视频人物的口型对不上声音。
听到音频和视频,脑子里第一时间反映出来的就是 mp3格式的音频文件和 mp4格式的视频文件。这些格式其实代表这文件的封装格式。
视频播放的基本流程
我们播放互联网上的视频,都会经历:解协议、解封装、音频解码、视频解码、音视频同步。
解协议
将流媒体协议数据解析为标准的相应封装格式数据。
音视频文件在网络上传播的时候常常使用了各种流媒体协议,例如HTTP,RTMP等。使用这些协议的时候会附加一些数据,例如网络状态信息等。所以我们需要把传输过来的文件删去这些附加的数据只保留音视频数据,这一步就是解协议。
例如:采用RTMP协议传输的数据,经过解协议后,输出FLV格式的数据
解封装
将输入的封装格式数据,分离为音频流压缩编码数据和视频流压缩编码数据。
封装格式例如mp4就是将音频数据和视频数据封装在一起了。
例如:FLV格式的数据在解封装后就输出H.264编码的视频码流和AAC编码的音频码流。
解码
将音频/视频压缩编码数据,解码为非压缩的音频视频原始数据。
H.264编码的视频码流和AAC编码的音频码流都是压缩编码标准,通过解码生成非压缩的颜色数据,如YUV,RGB等,和非压缩的音频数据PCM等。
音视频同步
根据解封装模块处理过程中获取到的参数信息,同步解码出来的视频和音频数据。
在上一步中,获取到了非压缩的视频和音频数据,在播放的时候需要将俩者同时播放才能达到正常的视频播放状态。
每层具体的内容
流媒体协议、封装格式、视频编码、音频编码点击下方链接,雷神总结的很详细。