视频直播知识之三:播放端播放

前言

这篇文章主要记录拉流后,在播放端解码和渲染等相关知识。

同系列文章:

  1. 视频直播知识之一:数据的采集和编码
  2. 视频直播知识之二:推流、拉流和服务端处理
  3. 视频直播知识之三:播放端播放
  4. 视频直播知识之四:直播DEMO——RTMP推流和HTTP-FLV拉流

1 播放流程

拿到流数据之后,一个传统的客户端播放器播放一个视频流经过了如下各个环节:
播放流程

1.1 解封装

在开始播放的之前,需要根据封装的格式(如mp4等)把图像、声音、字幕(可能不存在)等从拉取的流数据中分离出来,这个分离的行为和过程就是解封装(demux)。

在解封装之后获得图像、声音、字幕等基本流,而后基本流可以通过解码器进行解码。

1.2 解码

在解封装之后,需要根据视频的编码格式(如H.264、H.265等)对分离出来的原始码流进行解码,生成音、视频播放器可播放的数据。

  • 音频解码获得的数据是PCM采样数据。
  • 视频解码获得的数据是一幅YUV或RGB图像数据。

1.3 渲染

渲染,指的是将解码后的数据,在 pc 硬件上(显示器、扬声器)进行播放。负责渲染的模块我们称之为渲染器(Render),Web 播放器一般使用 video 标签来嵌入。

参考