目录
引言
概念
播放器
播放器的工作流程
播放器的架构
IO模块
Parser&Demuxer模块
Decoder模块
渲染模块
小结
引言
什么是播放器?
播放器是做什么的?怎么做的?
概念
播放器
可以指软件,也可以指硬件
软件:是指能够播放以数字信号形式存储的视频或音频文件的软件
硬件:是指具有播放视频或者音频文件功能的电子产品
不管软件还是硬件,数字播放器基本都是一样的流程和原理。
播放器的工作流程
1)读取-》音视频文件或者媒体流:
2)解析-》把文件或者媒体流里面的信息(metadata)和音视频数据(audio/video data)解析出来,
3)渲染-》把数据信息通过扬声器或者屏幕展示出来
播放器的架构
IO:读取文件。从数据源读取数据有多种标准协议
Parser & Demuxer:解封装。音视频数据的封装格式,都有着各种业界标准,只需要参考这些行业标准文档
Decoder:解码。只不过更多的是负责对压缩的音视频数据进行解码,拿到原始的 YUV 和 PCM 数据
Render:绘制和渲染,是一个平台相关的特性,不同的平台有不同的渲染 API 和方法
IO模块
从URL源地址获取到字节码数据,具体流程如下:
从实现框架图可以看出:源文件可以是本地的文件,也可以是网络的文件。IO模块的工作主要工作就是解传输协议,就是用对应的协议获取到文件数据流。
Parser&Demuxer模块
从IO模块输出的流媒体字节数据传入解析器模块解析出音频和视频 包数据
Parser&Demuxer解析器的主要工作内容就是解封装,就是将流媒体的字节数据按照封装协议进行解析出音视频的数据包。
Decoder模块
把解封装后得到的数据包,按照解压缩编码解析出原始的音视频原始数据
那么,就可以知道Decoder是做解压缩,就是把数据包按照音视频的压缩编码协议,解析出原始的音视频数据
渲染模块
把原始的音视频数据通过渲染器,输出到对应的显示和声音通道
对于视频数据而言,就是把视频数据渲染到显示缓存,由显示器刷新显示出来
对于音频数据而言,就是把音频数据通过功放,DA转换到喇叭输出声音
这就是播放器的基本工作原理和流程了。
小结
软件或者硬件的数字音频播放器处理音视频的流程就是:获取到数字化的音视频文件,通过解文件传输协议,解封装,解压缩,把音频数据渲染到显示器,把音频数据输出到喇叭,完成音视频数据的播放。
播放器技术分享(1):架构设计_51CTO博客_音频播放器设计