播放器架构

播放器定义
  • 播放器:是指能读取、解析、渲染 存储在 本地 或者 服务器 上的音视频文件的 软件,或者电子产品
  • 功能特性
    • 读取(IO):“获取” 内容 -> 从 “本地” or “服务器” 上获取
    • 解析(Parser):“理解” 内容 -> 参考 “格式&协议” 来 “理解” 内容
    • 渲染(Render):“展示” 内容 -> 通过扬声器/屏幕来 “展示” 内容
播放基本流程

播放流程图

解析数据
获取数据
渲染播放

数据解析图
在这里插入图片描述

  1. 第一步是获取数据
    1. 此步属于协议层
    2. 可分为从远程获取和从本地获取,远程需要先下载
    3. 拿到数据后,需要先解协议
    4. 从数据源读取数据有多种标准协议,比如常见的有:File,HTTP(s),RTMP,RTSP 等
    5. 输出二进制的数据
  2. 第二步是解析封装格式
    1. 此步属于封装数据层
    2. 不同的封装格式相当于不同的容器,用来盛放视频数据
    3. 常见的视频封装格式有:hls、mp4、mkv等
    4. hls格式:可边下载边播放,需先下载.m3u8文件(ts文件列表),然后就可以边下边播ts分片了,用ts去封装视频,优点是可以指定下载那段的m3u8文件
    5. mp4格式:虽然也可边下载边播放,但是必须先下载头文件,视频文件大的话头文件及比较大,所以不适合上视频封装
    6. 解析后得到音频流/视频流及音视频的媒体信息
  3. 第三步是解析音频流/视频流的编码格式
    1. 此步属于编解码层
    2. 编码是为了压缩体积,方便传输
    3. 常见的视频封装为h264/hevc等
    4. 常见的音频封装为aac等
    5. 解析后得到原始的 YUV 和 PCM 数据
      1. 一帧帧的像素图片(yuv数据)
      2. 音频pcm格式的数据
      3. 属于像素层
  4. 第四步是将解析得到的音频和视频数据进行渲染播放
    1. 负责视频数据的绘制和渲染
    2. AVSync,把音频和视频同步播放
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值