音视频基础知识

音频量化

音频量化基本概念

采样大小

每个采样使用多少bit存放,一般采用16bit

采样率

常见的有8k、16k、32k、44.1k、48k
人耳能听到的声音频率范围是20HZ~20000HZ;根据奈奎斯特采样定理,采样率需要高于被采样信号频率的2倍时才能将被采样信号重建;
因此对信号采样时的频率至少为40KHZ,常见的AAC音频采用的是44.1khz的频率;

声道数

单声道、双声道、多声道

音频量化过程

模拟信号 => 采样 => 量化 => 编码 => 数字信号
音视频基础知识_第1张图片

音频码率计算

PCM音频流的码率 = 采样率 * 采样大小 * 声道数

音频压缩技术

消除冗余数据
有损压缩技术;这里的冗余数据主要包括人类听觉范围之外的音频信号以及时域、频域掩蔽掉的音频信号;
哈夫曼无损编码
无损编码技术,是一种变长字节编码(频率高的字符使用较短的编码,频率低的字符使用较长的编码)

音频编码过程

  1. 时域到频域的变换:便于分析和量化;
  2. 心理声学模型:过滤人类听觉范围外的信号;
  3. 频域信号和心理声学模型处理后的信号输入进行量化编码;
  4. 通过一些辅助数据转为比特流进行输出;
    音视频基础知识_第2张图片

视频基础

定义

视频可以看做是满足一定条件的一系列连续图像的合集;
视频技术泛指将一系列静态影像以电信号的方式加以捕捉、纪录、处理、储存、传送与重现的各种技术。
上面提到了一系列图像想要成为视频需要满足一定条件,这个条件就是结合人眼的视觉暂留特性使得观看者感受不到不连贯性;
音视频基础知识_第3张图片

人眼的视觉特性

  1. 人眼可见光范围
    400nm(紫)~700nm(红),敏感度曲线类似于正态分布,对555nm左右的光线最为敏感

  2. 视细胞
    主要有视锥细胞和视杆细胞
    视锥细胞:主要感受强光和颜色的细胞;在视网膜的黄斑中央凹处,只有视锥细胞,光线可直接到达视锥细胞,故此处感光和辨色最敏锐
    视杆细胞:以视杆细胞为主的视网膜周缘部,则光的分辨率低,色觉不完善,但对暗光敏感

  3. 韦伯定律
    韦伯定律是描述物理量与心理量之间关系的定律,其表明心理量与物理量的对数呈线性关系;也就是心理量的增加落后于物理量,呈对数关系;也就是说人眼对暗光的变化感知能力高于强光;
    通俗理解:屋子里没有蜡烛到点燃一支蜡烛时感知的亮度增加 >> 已有99支点燃的蜡烛时增加一支感知的亮度增加;
    在光学系统感知中也同样实验;如下图,我们将这类曲线称为gamma曲线(幂函数);γ<1时曲线对亮度的变化为下凸;γ>1时曲线对亮度的变化为上凸,同等亮度增量带来的心理感知量增量逐渐变大;
    音视频基础知识_第4张图片
    音视频基础知识_第5张图片

  4. 马赫效应
    当亮度发生跃变时,会有一种边缘增强的感觉,视觉上会感到亮侧更亮,暗侧更暗。马赫效应会导致局部阈值效应,即在边缘的亮侧,靠近边缘像素的误差感知阈值比远离边缘阈值高3~4倍,可以认为边缘掩盖了其邻近像素,因此对靠近边缘的像素编码误差可以大一些。
    音视频基础知识_第6张图片
    音视频基础知识_第7张图片

  5. 视觉暂留特性
    指的是光线停止进入人眼后,人眼对物体的视觉感知仍然能够持续一定的时间不消失,直到过了某个时间点或者有新的图像替代它;
    有研究表明这个时长大约为1/15秒,因此早期的无声电影为16fps即可感受不到停顿,至于电影24fps的来源可以参考文献4、5;

基本概念

视频的采集与展示流程

如下图的流程图所示:
将自然界中的真实场景记录下来并最终展示到显示器上,通常需要通过采集、编码、传输、解码、显示等步骤;这其中需要经过两个重要的非线性变换OETF和EOTF;
音视频基础知识_第8张图片

OETF

光电转换函数,将光信号转为对应的电信号;

EOTF

电光转换函数,将电信号转为对应的光信号;

Gamma校正与图像显示

encoding gamma曲线幂指数小于1,display gamma曲线幂指数大于1;
两者的乘积大于1时心理感知量略迟滞于自然场景亮度变化;
但是由于人眼的感知其实与周围环境亮度也相关,在较暗的地方感知度相对更强,所以一般电影院采用的gamma值(乘积)为1.5,而明亮的室内采用1.125;
常见的gamma应用:sRGB:编码gamma - γ=0.45(1/2.2), CRT:显示gamma - γ=2.2;
音视频基础知识_第9张图片
音视频基础知识_第10张图片

gamma校正的意义:

先上答案:gamma 校正实际上是用来解决显示设备亮度灰阶不足的问题的。如果设备存储和显示位宽支持扩展到32位甚至更高,那么的确可以不需要gamma校正;
两段 gamma 校正实际上是一对逆过程,一个将光信息转化为数字
信息,一个将数字信息转化为光信息。因此,按照常理来说,并不需要进行这样复杂的

非线性映射,只需要将归一化之后的光信息记录下来,然后再让显示设备进行输出即可。
从这种角度来说,gamma 校正是一个不必要的操作。然而我们目前常用像素位宽为8位,也就是说我们图像灰阶需要用256级模拟真实场景亮度;
根据韦伯定律,人眼对亮度的感知呈现γ<1的gamma曲线;参考下图可以看到,我们需要用256*20%的灰阶取表示人眼可感知的纯黑到中灰的一半亮度范围,而用剩余80%灰阶表示人眼感知的另一半亮度范围;这样显然不合理;
因此,更加合理的显然是在记录时结合人眼的亮度非线性特性,采用γ<1的gamma函数,使得量化亮度128的自然界亮度正好映射为心理感知量的0.5;
音视频基础知识_第11张图片

理论上,encoding gamma和display gamma的乘积为1时,显示图像与真实场景是一种线性映射关系;
然而大多数情况下,两个gamma值的乘积并非1,通常稍大于1;光线明亮的室内约为1.125,电影院为1.5

帧率(framerate)

即frame per second,每秒钟视频的帧数,表征视频的流畅性,更高的帧率可以更清晰地记录高速运动物体的细节等;
通常的电影帧率24fps,电视帧率25fps;目前很多视频已经出现了29.97fps、30fps、50fps、60fps、120ps等;下面的视频是有png序列通过ffmpeg编码的fps=16的视频,并未感受到不连贯;

码率(bitrate)

单位内传输的数据量,单位kb/s、Mb/s;相同条件下码率越大,画质越高,视频体积越大;
一些码率控制相关的需要区分的概念:
CBR:Constant Bitrate——固定码率;所有视频内容从头至尾采用一致的码率进行编码;容易预估出文件体积;
VBR:Variable Bitrate——动态码率;根据视频内容的复杂程度采用不同的码率;高复杂度采用更高的码率,简单画面使用较低的码率;
ABR:Average Bitrate——平均码率;可以看做是CBR和VBR的一种折中,它将视频分为很短小段(比如50帧),每段视频采用固定的码率,而在内部又分别对高复杂度视频和低复杂度视频采用不同的码率;可以在提供较好质量的同时能够使文件体积可预测;

色域(colorSpace)

指的是人眼能够感知的所有颜色范围;而通常由于显示器的硬件能力限制,通常只能将一部分的颜色范围展示出来,因此出现了不同的色域标准;
常见的普通显示器采用的是sRGB,打印机采用的是Adobe RGB;NTSC色域是美国的标准电视广播传输的一套标准,在美国、墨西哥、加拿大、中国台湾等国家和地区使用;
sRGB ≈ 72% NTSC,Adobe RGB≈95% NTSC;
更宽的色域及更深的位深可以带来更好的色彩还原;
位深 (bitdepth)
目前主流的仍为8bits,部分尝试10bits、12bits;
位深不仅可以描述灰阶数,也可以描述视频中可以使用的颜色数;也就是说,更高的位深一定程度上可以带来更高的亮度和更丰富的色彩体验,从而获得还原度更加真实的观看体验;
音视频基础知识_第12张图片

颜色模型(color model)

常见的颜色模型有RGB、CIE XYZ、HSL、YUV等

视频制式

基本分为美国标准的NTSC和欧洲标准的PAL制式,具体可以参考文献——What’s the Difference Between NTSC and PAL?
美国等小部分国家和地区的交流电频率为60HZ,对应的电视频率为29.97fps(Drop-frame Timecode, 保障彩色电视机在黑白信号接收器中正常播放;主要是彩色电视机引入了彩色副载波频率信号,这些信号在黑白电视上无法被解析,因此画面是静止的,所以降低频率以保证在黑白和彩色电视机上都能正常播放)、30fps(黑白电视);其他多数国家都为50HZ,采用的是PAL制式,对应的电视频率为25;

关于为什么是29.97fps可以参考文献——Drop Frame vs. Non-Drop Frame and How It Affects Captions & Subtitles

隔行扫描与逐行扫描

我们经常看到一些视频是720p、1080p,这里的P到底指的是什么呢?
电视信号的传输方式分为逐行扫描(progressive)和隔行扫描(interlaced)
逐行扫描:从左到右、从上到下扫描和图像 —— 早期带宽成本很高;
隔行扫描:每帧图像分为奇数场和偶数场,两个场的扫描时间存在一定的时间差,利用人眼视觉暂留特性相互补足形成完整的画面
音视频基础知识_第13张图片

常见视频容器格式与编码格式

编码格式

编码格式决定了视频数据具体如何进行编码处理

编码格式 类型 描述 优缺点
HEVC/H.265 Lossy/Lossless 提供更高的压缩率,压缩时间相对H.264更长;提供更加丰富的编码方式、分辨率、直播流支持等; 提供更高的压缩率,压缩时间相对H.264更长
MPEG-4 AVC Lossy/Lossless 也称为H.264、MPEG-4 Part10,是由ITU-T及MPEG共同推进的标准,是目前使用最广泛的一种编码格式;提供较好的压缩率和画质,主要应用于蓝光光盘以及Netflix、Hulu、Youtube等网络流; 相对于MPEG-4 Visual有较高的压缩率和较高的视频质量(针对Intra Prediction进行了改造);
MPEG-4 Visual Lossy 即MPEG-4 Part 2,由MPEG(运动图像专家组)提出,向下兼容H.263;是另一种较为通用的编码方式 也是一种较为通用的编码方式,但是压缩率不及AVC
VP8/VP9 Lossy/Lossless 由Google提出的两种编码方式;相对于HEVC(更好的图像质量),提供更加一致可靠的流 支持webm视频
AV1 Lossy/Lossless 开源、免费的一种编码格式,主要用于视频网络传输等,如HTML5 Video;可以看做是VP9的继承者,支持更高的压缩率; the AV1 reference encoder achieved 34%, 46.2% and 50.3% higher data compression than libvpx-vp9, x264 high profile, and x264 main profile respectively.

编码器

编码器是编码方式的具体实现
x264、x265
openH264:与x264类似,但是支持Scalable Video Coding技术,SVC的码流除了正常的高质量视频流,还包含一些子视频流的集合——这些子集在时域、空域或者质量上提供了伸缩性,如更低的帧率、更低的分辨率、更低的质量(码流等),但是硬件支持程度不完善;纯软解码会造成较高的CPU占用;
vp8/vp9

容器格式

容器格式,又称封装格式;可以理解为是将多个多媒体数据流合成在一个文件中的一类计算机文档,一般包括视频流、音频流、metadata;
音视频基础知识_第14张图片

由于容器并不提供数据和元数据如何进行编码的,因此有时候会遇到解封装成功但是无法解码的情况;
不同的容器格式提供了不同的视频质量、文件大小、视频回放支持等;
在这里插入图片描述

元数据可以理解为“the data of data”,即音视频的一些描述信息,包括编码格式、码率、分辨率等信息;
音视频基础知识_第15张图片

容器格式 文件后缀 Owner 优缺点
MP4(MPEG-4 part14) .mp4 MPEG 广泛支持的一种容器格式,支持h.264/h.265及所有版本的MPEG-4标准;能够保持视频质量的同时提供相对较小的文件体积;许多大型的流媒体服务都使用mp4,如YouTube/Vimeo等;
AVI .avi Microsoft Windows 支持很多编解码器,需要进行很多的不同文件的设置;文件体积较大,导致其不太适用于流媒体传输和下载;更适用于本地视频的存储;不支持B帧、不支持VFR(可变帧率)
FLV(Flash) .flv Adobe Inc. 以前使用较多的一种视频格式,由于较小的文件体积、广泛的浏览器插件支持及第三方flash播放器的支持存在了很多年;目前使用逐渐减少
MPEG transport stream(TS) .ts MPEG 主要用于广播系统如DVB、ATSC、IPTV等;
QuickTime File Format .mov, .qt Apple Inc. 提供非常高的视频质量,但文件体积也很大;通用性较差,某些播放器并不支持;
WebM .webm Google 由Google提出,支持透明视频;

不同场景下视频容器格式的选择:
一般应用场景可以分为

  1. 本地视频编辑:需要高质量的文件
  2. 网络分发:更小的文件体积、平滑的视频回放

视频编解码

以H.264为例:

基本概念

I帧/IDR

都是使用帧内预测的关键帧;IDR帧即 Instantaneous Decode Refresh frame,即解码到该帧视频时会立即刷新和重置缓存;两个IDR之间的视频可以单独寻址和解码出来,可以看做是一个独立的视频段;所有IDR后的视频不可以参考该IDR帧前的所有帧;

P帧

前向参考帧,压缩时参考前一帧的信息;

B帧

双向参考帧,编码时参考前后两帧的信息;

GOP

两个I帧之间的多帧图像,通常将一个场景中将场景变化较小的一组图像划分为一组,称为一个GOP
由于采用的压缩方式不同,它们占用的比特数也不同,一般I帧 > P帧 > B帧;当然压缩率的代价是压缩速率和性能,由于B帧需要双向数据作为参考,因此缓存的数据也更多,对硬件的要求等也越高;因此,部分视频只有I帧和P帧;
音视频基础知识_第16张图片

每个GOP中仅有一个I帧,GOP size为两个I帧之间的帧数;GOP一般使用2个数字描述——分别表示I/P之间的间隔及GOP size;如M=3,N=12,则对应的GOP为:
IBBPBBPBBPBB(I)

码率一定时,一定条件下提高GOP size,可以提升P、B帧的占比,因此可以获得较好的图像质量(P、B具有更好的压缩率);
当然,P、B帧也具有更高的复杂度,过大的GOP size也会影响编码效率,同时影响seek定位操作的响应速度;

视频花屏、卡顿

花屏与卡顿
  1. 原因:GOP中的P帧丢失造成解码端发生错误,这时会造成花屏
  2. 避免:如果某个GOP中的P帧或I帧丢失,则不显示本GOP内的所有帧,然后再下一个GOP的I帧到来时刷新图像;由于丢失一个GOP,所以视频会暂时保留在上一个GOP画面,就造成了视频卡顿;

PPS

Picture Parameter Set,图像参数集,nal_unit_type等于8;多个NALU组成一个视频帧,该视频帧相关的元数据(metadata)保存在PPS中;
PPS通常独立保存在一个NAL unit中;
包含熵编码模式标识、切片数目(默认slice group=0标识该帧为一个slice group)等信息;

SPS

Sequence Parameter Set,序列参数集,nal_unit_type等于7;
多个PPS组成一个视频序列,该序列相关的原始数据保存在SPS中;
包含序列帧数、参考帧数目、码流的profile/level等信息

SEI

Supplymental Enhancement Information,辅助增强信息,包含了增强视频的 一些辅助信息;比如直播答题中增加一些与视频信息同步的文本信息,或者字幕信息控制等用户自定义信息均可以放在SEI中;生成SEI中的方式包括编码时生成SEI及容器封装时写入SEI信息等;

PTS与DTS

根据I、B、P的关系,如果按照顺序进行传输时,序列为I->B->P;这时在解码端收到序列时由于B帧需要依赖于P帧的信息,这时候传输顺序和解码顺序不一致,B帧和P帧的解码和显示时间就变得不确定了,因此引入了PTS和DTS;如果没有B帧,那么传输顺序与解码顺序是一致的;
PTS即Presentation Time Stamp,显示时间戳,用于表示什么时候去显示该帧;
DTS即Decode Time Stamp,解码时间戳,用于表示什么时候去解码该帧;

帧分组与组内宏块查找

帧分组:将场景变化较小的一组图像划分为一组,称为一个GOP
组内宏块查找:将一组图中的相邻两个图进行逐行扫描比较;
音视频基础知识_第17张图片

运动估计与补偿

编码器从缓存区取出前两帧视频进行宏块扫描,如果发现前一帧中有物体,则会在第二帧的对应搜索窗口内进行搜索。如果找到该物体,那么通过比较这两帧图像可以得到运动物体相关的矢量(大小和方向),将两者相减得到的差值就是补偿数据,第二帧图像的完整数据可以根据前一帧图像的数据及补偿数据进行完全恢复;
音视频基础知识_第18张图片
音视频基础知识_第19张图片

宏块

是运动预测的基本单位,通常一张完整的帧可以分为多个宏块,宏块是选择特定预测类型的基准,整个图像可以使用不同的预测类型;H.264中宏块可以进一步划分为子块,能够提供更高的压缩率;
音视频基础知识_第20张图片

图像分割

  1. slices:一幅图像可以分割为1或多个slices,每个slices是独立自给自足的;slices由一系列的宏块(macroblock)组成;设置slice的目的是其独立性可以避免预测误差的扩散和传输;每个slice内的宏块不会与其他slice中的宏块为参考,并且slice编码后会打包进一个NALU,所以传输时是独立的;
    slice的类型: 0-P slice;1-B slice;2-I slice;3-SP slice;4-SI slice;
  2. macroblock:是基本的语义和处理单元,是视频信息的主要承载者;每个slices中的macroblock是相互依赖的;macroblock可以被进一步分割;

音视频基础知识_第21张图片

编码的基本流程

编码的过程基本分为预测(时/空域:帧内、帧间)、变换(频域:DCT)、量化(模拟到离散,降采样)和熵编码(CABAC等);
音视频基础知识_第22张图片

H.264的层级结构

根据官方文档,h.264主要有两部分构成——VCL & NAL;如下,是h.264的层级结构示意图;

  1. VCL涉及到的包括:图像分割及交错处理、编码器结构、运动补偿预测、帧内预测、预测残差编码、去块效应滤波器等;VCL主要负责有效处理视频数据
    VCL的新特性:
  • 增强的运动补偿;
  • 小区块使用变换编码
  • 提升的去块效应滤波器
  • 提升的熵编码
  1. NALNAL Units 及 type;RTP负载及字节流格式;NAL主要是比特流的处理和封装,保证能够正确地进行网络传输和解码;
    音视频基础知识_第23张图片

H.264的压缩方式

帧内预测

定义:主要处理空域的数据冗余,为一帧中的每个宏块找出最相近的预测模式,然后将预测模式与对应的残差信号保存用于解码(H.264提供9中帧内预测模式);
理论基础:人眼对图象都有一个识别度,对低频的亮度很敏感,对高频的亮度不太敏感。所以基于一些研究,可以将一幅图像中人眼不敏感的数据去除掉。
音视频基础知识_第24张图片

帧间预测

主要处理时域上的数据冗余,主要是运动估计与运动补偿方式;

DCT

主要处理频域的数据冗余,一般对帧内预测和帧间预测后的残差信号进行DCT处理;DCT具有能量聚集的特性,声音、视频等信号的能量大都集中在DCT变换后的低频信号;将视频信号进行DCT变换,然后降低高频分量占比(音视频细节,人眼对高频分量不敏感)然后采用熵编码,可以有效提高压缩率;
DCT变换可以看做是DFT的一种特殊形式,首先看DFT变换公式:
在这里插入图片描述

实部为:
在这里插入图片描述

虚部为:
在这里插入图片描述

当x[n]为偶函数时,实部为偶函数,虚部为奇函数,所以Im[k]为0;此时DFT表示为:
在这里插入图片描述

所以DCT就是将输入信号x[n]限制为偶函数的DFT;

DCT变换的能量聚集效果如下所示:
音视频基础知识_第25张图片
音视频基础知识_第26张图片

CABAC

context-adaptive binary arithmetic coding,内容自适应二元算数编码,是H.264/AVC熵编码的一种;H.264/AVC标准定义了两种熵编码类型:CABAC和VLC(Variable-length Coding);残差信号做完DCT后需要进一步使用CABAC进行无损压缩;

直播相关

直播产品的种类:

  1. 泛娱乐化直播:娱乐直播(花椒、映客)、游戏直播(斗鱼、虎牙)—— 更加注重流的质量,通常采用TCP协议
  2. 实时互动直播:音视频会议、教育直播等(声网、全时等)—— 更加注重实时性

相关协议

RTP与RTCP

RTP(Real-Time Transport Protocol)是一种基于UDP协议的主要用于流媒体数据传输的协议,RTP建立在UDP之上,应用层之下
RTCP(Real-Time Transport Control Protocol)主要用于质量控制,它为RTP提供的服务质量提供反馈,包括传输字节数、已接收/丢失分组数、网络时延等统计信息;这些信息可以供使用应用的服务进行策略调整以提高服务质量;

RTMP(Real Time Messaging Protocol)

实时消息传输协议是由Adobe推动的一种基于TCP协议的、在服务端和观看端传输实时音视频流数据的应用层协议。它具有多个变种:

  1. 基于TCP协议(端口1935)的明文协议;
  2. RTMPS,通过一个TLS/SSL连接传输RTMP
  3. RTMPT,用HTTP封装以穿透防火墙。RTMPT通常在TCP端口80和443上使用明文请求来绕过大多数的公司流量过滤。封装的会话中可能携带纯粹的RTMP、RTMPS或RTMPE数据包;
  4. RTMFP, 使用UDP而非TCP的RTMP,取代RTMP Chunk Stream。Adobe Systems开发了安全的实时媒体流协议包,可以让最终用户直接地相互连接(P2P)

RTSP(Real Time Streaming Protocol)

实时流传输协议,是一种应用层协议;该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输

HLS(HTTP Live Streaming)

是苹果公司2009年提出的一种基于HTTP的流媒体网络传输协议,支持点播和直播;它适用范围较广,包括Android和ios移动设备、桌面浏览器、智能电视、HTML5视频播放器等;支持动态码率自适应技术;
HLS主要包括.m3u(8)索引文件和.ts媒体分片文件
m3u8文件记录了每个切片文件的地址及播放顺序,这样可以通过它解析获得视频播放的地址和顺序,每次根据网络状况选择下载对应的切片;

#EXTM3U   // m3u8文件第一行必须的标签
#EXT-X-VERSION:3  // 版本
#EXT-X-MEDIA-SEQUENCE:35232 // 播放列表第一个切片文件的序列号
#EXT-X-TARGETDURATION:10  // 每个切片允许的最大时长
#EXTINF:10.000, // 当前切片时长
cctv6hd-1549272376000.ts
#EXTINF:10.000,
cctv6hd-1549272386000.ts
#EXTINF:10.000,
cctv6hd-1549272396000.ts
#EXTINF:10.000,
cctv6hd-1549272406000.ts
#EXTINF:10.000,
cctv6hd-1549272416000.ts
#EXTINF:10.000,
cctv6hd-1549272426000.ts

直播协议对比

LL-HLS延时小于3秒,同时原生支持H5
音视频基础知识_第27张图片

CDN

内容分发网络;
应用: 解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度和成功率。

CDN是只对网站的某一个具体的域名加速。如果同一个网站有多个域名,则访客访问加入CDN的域名获得加速效果,访问未加入CDN的域名,或者直接访问IP地址,则无法获得CDN效果。

音视频基础知识_第28张图片
音视频基础知识_第29张图片

构成

边缘节点

用户从边缘节点获取数据

二级节点

主干网节点——主要用于缓存,减轻源站压力

源站

内容供应商将内容放到源站

分类

传统CDN网络 —— 过期拉取
音视频直播流CDN网络 —— 推拉结合;源节点直接push到主干接点,访问时从边缘节点或主干接点pull;

CDN网络结构

CDN网络结构如下所示,基于此简述用户访问CDN网络的过程;
多个CDN网络通过光纤等将不同网络的主干接点连接起来;

如果有个服务在联通,当一个电信用户用户访问该服务时,首先会通过DNS访问离其最近的边缘节点;
如果访问的服务不在该边缘节点,向上到该网络的主干接点进行查询;
主干接点首先会在缓存中查找,如果没有找到会判断服务是在电信还是联通;
判断该服务是联通的服务后,首先访问联通的主干接点,没有则继续向上查找到其源节点;

当用户非首次访问时则可以达到加速效果
音视频基础知识_第30张图片

架构

泛娱乐化直播

音视频基础知识_第31张图片

主要包括
  1. 共享端(主播端)
  2. 信令服务器 —— 包括创建房间、聊天、送礼物等信令;
  3. 流媒体云(CDN)
  4. 观众端
主要流程
  1. 共享端发送信令(可以是创建房间、聊天、送礼物等)至信令服务器通知创建房间,创建成功后会返回给共享端一个流媒体云地址;
  2. 共享端采集音视频数据形成rtmp流推送到CDN网络;
  3. 观众端想观看该房间时发送一个信令至信令服务器,信令服务器会将其加入到该主播的房间,并返回该主播直播的流媒体云地址;
  4. 观众端从对应地址拉取该直播流 进行观看;

实时互动直播

音视频基础知识_第32张图片

  1. 自有网络——与传输协议相关(TCP协议)
  2. 节点服务器(信令服务器 + 媒体服务器)—— 负载均衡、容灾
  3. 控制中心——负责控制负载均衡等;控制中心与节点通过心跳保持通信——获取节点的CPU占用、网络状况、内存占用等;
  4. 内总线 —— 负责控制中心与节点服务器或者泛娱乐化模块通信;
  5. 媒体转换服务器——将RTP包转为RTMP包,融合实时互动直播网络与泛娱乐化直播网络
  6. 将转换后的数据流推送到CDN,供观众端观看

直播连麦

什么是QUIC协议

参考文献

  1. Video[wikipedia]
  2. Persistence of vision: how does animation work?
  3. 视觉暂留特性
  4. 24帧电影基于“视觉暂留”?一个持续百年的错觉。
  5. 人眼帧数是否不能高于 30 ,李安 120 帧的电影是否没有意义?
  6. Gamma、Linear、sRGB 和Unity Color Space,你真懂了吗?
  7. Color Model
  8. What’s the Difference Between NTSC and PAL?
  9. Drop Frame vs. Non-Drop Frame and How It Affects Captions & Subtitles
  10. 交错、反交错与IVTC —— 从入门到放弃
  11. Comparison of video container formats
  12. Container format (computing)
  13. AV1
  14. Video Formats, Codecs and Containers (Explained)
  15. The difference between the I frame and IDR frame in H264
  16. 详解离散余弦变换(DCT)
  17. 流媒体传输协议(rtp/rtcp/rtsp/rtmp/mms/hls)
  18. 也许是史上最全的一次CDN详解
  19. Live Streaming Protocol Comparison
  20. Video Streaming Protocols: Which to Use for Professional Broadcasting
  21. The In-Depth Guide on Video Streaming Protocols: A to Z

你可能感兴趣的:(视频编码,音视频,视频编解码)