Multimedia-播放器-架构1

目录

引言

概念

播放器

播放器的工作流程

播放器的架构

IO模块

Parser&Demuxer模块

Decoder模块

渲染模块

小结


引言

什么是播放器?

播放器是做什么的?怎么做的?

概念

播放器

可以指软件,也可以指硬件
软件:是指能够播放以数字信号形式存储的视频或音频文件的软件
硬件:是指具有播放视频或者音频文件功能的电子产品

不管软件还是硬件,数字播放器基本都是一样的流程和原理。

播放器的工作流程

1)读取-》音视频文件或者媒体流:
2)解析-》把文件或者媒体流里面的信息(metadata)和音视频数据(audio/video data)解析出来,
3)渲染-》把数据信息通过扬声器或者屏幕展示出来

播放器的架构

Multimedia-播放器-架构1_第1张图片

IO:读取文件。从数据源读取数据有多种标准协议
Parser & Demuxer:解封装。音视频数据的封装格式,都有着各种业界标准,只需要参考这些行业标准文档
Decoder:解码。只不过更多的是负责对压缩的音视频数据进行解码,拿到原始的 YUV 和 PCM 数据
Render:绘制和渲染,是一个平台相关的特性,不同的平台有不同的渲染 API 和方法

IO模块

Multimedia-播放器-架构1_第2张图片

从URL源地址获取到字节码数据,具体流程如下:

Multimedia-播放器-架构1_第3张图片

从实现框架图可以看出:源文件可以是本地的文件,也可以是网络的文件。IO模块的工作主要工作就是解传输协议,就是用对应的协议获取到文件数据流。

Parser&Demuxer模块

Multimedia-播放器-架构1_第4张图片

从IO模块输出的流媒体字节数据传入解析器模块解析出音频和视频 包数据

Multimedia-播放器-架构1_第5张图片

Parser&Demuxer解析器的主要工作内容就是解封装,就是将流媒体的字节数据按照封装协议进行解析出音视频的数据包。

Decoder模块

Multimedia-播放器-架构1_第6张图片

把解封装后得到的数据包,按照解压缩编码解析出原始的音视频原始数据

Multimedia-播放器-架构1_第7张图片

那么,就可以知道Decoder是做解压缩,就是把数据包按照音视频的压缩编码协议,解析出原始的音视频数据

渲染模块

Multimedia-播放器-架构1_第8张图片

把原始的音视频数据通过渲染器,输出到对应的显示和声音通道

Multimedia-播放器-架构1_第9张图片

对于视频数据而言,就是把视频数据渲染到显示缓存,由显示器刷新显示出来

对于音频数据而言,就是把音频数据通过功放,DA转换到喇叭输出声音

这就是播放器的基本工作原理和流程了。

小结

Multimedia-播放器-架构1_第10张图片

软件或者硬件的数字音频播放器处理音视频的流程就是:获取到数字化的音视频文件,通过解文件传输协议,解封装,解压缩,把音频数据渲染到显示器,把音频数据输出到喇叭,完成音视频数据的播放。

播放器技术分享(1):架构设计_51CTO博客_音频播放器设计

你可能感兴趣的:(Multimedia,android)