提示💡
- 解协议(http,rtmp)→解封装(mp4、flv、ts)→解码 (H264、H265、ACC)→显卡、声卡(YUV、RGB、PCM)
引言
对于音视频播放器,你肯定不陌生,日常听歌曲或者看视频,基本都使用到了播放器。将一份mp4(也可能是mkv,或者其他容器格式)的文件使用播放器打开,播放器就能输出图片、声音等媒体元素。
对于普通用户而言,播放器是一个黑盒,完全不清楚为什么一个文件输入,就有如此多丰富的信息展示出来。
本章节将带你走入播放器世界,探究播放器的谜底。
注意❗
注:这里的播放器是指能播放以数字信号形式存储的音视频的软件。例如播放器:暴风影音、windows media player、迅雷影音等。
播放器做哪些事情
图解播放器
可以看到播放器的几个基本流程:
1 ,解协议
从原始的流媒体协议数据中只保留下来音视频数据,列入采用RTMP协议传输的数据,经过解协议后输出flv(ts等)格式的数据。
2,解封装
解封装音频和视频压缩编码数据,常见的封装格式mp4,mkv,rmvb,flv,avi这些格式,然后将已经压缩编码的视频、音频数据放到一起。例如 FLV 格式的数据经过解封装后输出 H.264 编码的视频码流和 AAC 编码的音频码流。
3,解码
视频,音频压缩编码数据,还原成非压缩的视频,音频原始数据,音频的压缩编码标准包括 AAC,MP3,AC-3等,视频压缩编码标准包含H.264,MPEG2,VC-1等经过解码得到非压缩的视频颜色数据如 YUV420P,RGB 和非压缩的音频数据如 PCM 等。
4,音视频播放
将同步解码出来的音频和视频数据(中间可能经过同步)分别送至系统声卡和 显卡 播放。
下一章节
以上是对播放器的一个基本介绍,现在你对播放器应该有了一个初步的认知。可以继续学习下个章节:拉流。
后面章节,我们将按照上述播放器顺序,对播放器的各个流程详细介绍。