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