初识Android | 青训营笔记
这是我参与「第四届青训营」笔记创作活动的的第8天
探索多媒体直播技术
视频的基本元素
-
像素:是指在由一个数字序列表示的图像中的一个最小单位,称为像素,通常表现为一个小方格。每个像素有自己的颜色值,一般为RGB 三原色来表示。
-
RGB三原色:每种颜色都可以用三个变量来表示红色绿色以及蓝色的强度,记录及显示彩色图像时,RGB是最常见的一种方案。按照计算,256级的RGB色彩总共能组合出越1678万种颜色
-
分辨率:指的是纵横方向的像素数量,一般表示为宽*高
-
码率/比特率:表示单位时间内传送bit的数目,单位bps,表示是单位时间播放连续的媒体
-
帧&帧率:每秒传输帧数。帧率越高,显示的动作越流畅
-
视频封装:目前主要的视频容器:MPG、VOB、MP4、3GP、ASF、RMVB、WMV、MOV、Divx、MKV、FLV、TS/PS
视频压缩
-
颜色空间:RGB信号不利于压缩,在视频存储中,常用YUV色彩空间来表示色彩。(YUV420可以节省50%的数据量)
-
帧内压缩/空间压缩:帧内(Intraframe)压缩也称为空间压缩(Spatial compression)。当压缩一帧图像时,仅考虑本帧的数据而不考虑相邻帧之间的冗余信息,这实际上与静态图像压缩类似。且帧内一般采用有损压缩算法,达不到很高的压缩比。
-
帧间压缩 / 时间压缩:帧间压缩(Interframe compression)也称为时间压缩(Temporal_compression),是基于许多视频或动画的连续前后两帧具有很大的相关性(即连续的视频其相邻帧之间具有冗余信息)的特点来实现的。通过比较时间轴上不同帧之间的数据实施压缩,进一步提高压缩比.一般是无损压缩。
-
I帧:帧内帧,解码时仅需用帧的数据即可重构完整图像
-
P帧:向前预测帧,解码时将I帧的预测值与预测误差求和才能重构完整的P帧图像
-
B帧:双向编码帧,解码时参考前面或者后面已经编码的I帧和P帧,需要缓存帧,延时大
-
直播推拉流协议
-
CDN(Content Delivery Network):分布式网络,通过服务器集群来降低用户的访问延迟 -
推拉流协议:通常包括RTMP、HTTP+FLV、HLS -
推流协议(RTMP):实时消息协议,也称实时消息运输协议,优势是基于TCP协议,技术成熟,延迟低;劣势是停止更新,且规范上没有支持H265,使用1935端口,会被防火墙拦截。 -
拉流协议:FLV是一种网络视频格式,用作流媒体格式,优点是协议友好,格式简单,便与分发,延 迟较低,视频封装格式为.flvHLS是苹果公司推出的拉流协议,工作原理是把整个流分为一个个小的基于HTTP的文件,每次只下载一些,视频封装格式为m3u8
客户端工作
推流端:- 采集方式:摄像头、屏幕、图像采集卡等
- 图像处理的场景:美颜、绿幕、头饰
- 采集方式:摄像头、屏幕、图像采集卡等
拉流端: