# 15.视频播放器流程分析 #### 目录介绍 - 01.视频播放的流程图 - 02.流程图简单分析 ### 01.视频播放的流程图 - 常规的视频播放分为传输,解封装,解码,绘制四个步骤,以下按播放网站上(HTTP)的mp4文件为例,简单介绍一下几个过程: - ![image](https://img-blog.csdnimg.cn/20201013114850247.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3NzAwMjc1,size_16,color_FFFFFF,t_70#pic_center) ### 02.流程图简单分析 - HTTP传输 - 播放器使用HTTP协议把MP4下载下来,这部分需求一般需要边下边播,服务器的HttpServer一定要支持HTTP Seek,因为播放的过程中需要跳转到不同的位置下载内容,比如MP4结构中的moov元数据信息在很多视频文件中都被放置在文件末尾了。 - MP4解封包 - 这部分我们常见的封包格式就是mp4, 视频编码后h264数据被拆分为多个片段封包到mp4中,解封包就是从mp4中解析出h264视频裸码流的过程。需要对Mp4格式有更多了解…… - H264解码 - 视频解码就是将h264裸码流解析成视频像素数据的过程(一般是yuv,也可以是rgba,类似于将jpg图片解码为bitmap数据。h264格式可以使用Android系统提供MediaCoder硬解码,也可以使用FFMpeg进行软解码。 - OpenGL绘制 - 就是绘制就是将解析为yuv格式的视频数据绘制到屏幕上的过程,一般使用OpenGL绘制。OpenGL相关绘制的知识点相对比较复杂,不太懂