直播码率多少合适(直播码率是什么意思)

摘要:本届世界杯与往届世界杯最大的不同是,很多互联网用户看的是直播,而不是电视。在网上看直播,互联网的网络条件不一样,观众会看到不同码率的视频。所以我主要分享阿

摘要:本届世界杯与往届世界杯最大的不同是,很多互联网用户看的是直播,而不是电视。在网上看直播,互联网的网络条件不一样,观众会看到不同码率的视频。所以我主要分享阿里云在直播中是如何做码率控制的。

直播码率多少合适(直播码率是什么意思)

在本月的重庆云起大会天妃技术博览会上,阿里云资深算法专家黄海钰分享了一个题为“超大规模直播的码率控制”的话题。从制作环节来看,世界杯如何让观众看到更清晰的视频?

本届世界杯与往届世界杯最大的不同是,许多互联网用户观看直播,而不是电视。在网上看直播,互联网的网络条件不一样,观众会看到不同码率的视频。所以我主要分享阿里云在直播中是如何做码率控制的。

分享分为三个部分。首先讨论为什么要重视速率控制,其次宏观上怎么做,最后介绍微观上怎么做。

为什么我们要关注码率控制

我们先来看一个直播的简单流程。

世界杯通常会得到非常高清的直播源,比特率非常大,不适合在网上直接传输。所以整个环节会有一个视频内容的重现过程。这个重现过程中最重要的就是视频的转码,会转换成几个不同分辨率的档位。比如我们看视频有流畅的,标清的,高清的,超清的,都是为了让不同网络的用户流畅的看视频。转码后的视频流会被CDN放大,会有很多用户观看。

其中,码率控制发生在转码过程中,即对高清视频进行解码,然后重新编码。视频的转码是一个有损压缩的过程,对原始视频进行处理,忽略里面的细节,以较低的带宽满足用户对流畅播放的需求。

码率控制有什么影响

首先,码率控制对清晰度有影响。我们通常的概念是,清晰度越高,码率越高,用户下行带宽越高。

第二,速率控制影响用户的流畅度。用户玩不同的网络。只有用户带宽大于视频速率,才能流畅播放。

再次,速率控制的影响是成本的影响。在世界杯直播的整个过程中,最大的成本是CDN的带宽,CDN的总带宽消耗是不同速率的乘积与同速率在线的人数之和。

所以我们的问题是用户的网络有限。如何才能在有限的网络下最好的控制码率,为用户提供最清晰的视频?

宏观码率控制

下图是世界杯期间直播的一个例子。左边是另一个直播平台的视频直播,右边是优酷。可以清楚的看到,左边的视频场景非常模糊,而右边的视频看起来流畅细腻。这两个视频的码率是一样的,左边是1080P的2.5M,右边是720P的2.5M,但是为什么会是这个场景呢?

让我们来看看整个视频编码过程:

上面那行是把一个1080P视频转换成1080P视频播放的过程。第一步是解码,这一步不会有视频清晰度的损失。然后视频编码,比如一个25帧的视频,需要把这25帧的图像编码成一个3M 1080P的图像。在这个过程中,为了保证3M的输出码率,丢失了大量的细节;第三步,视频通过CDN网络的传输到达用户的播放器,用户会解码播放。此步骤不会丢失任何信息。最后一步是播放器的渲染,这一步没有信息损失。

我们来看一下720P转码,1080P视频解码,下采样到720P,720P编码,传输,解码,最后上采样,再编码到1080P,在播放器渲染的过程。视频清晰度在这个过程中有两个损失,第一个是在上采样和下采样的过程中,这个信息实际上是一个固定的损失,和我们的采样算法有关;第二,它发生在720P图像被编码成3M视频的时候。为什么1080P没有720P清晰,是因为在720P编码中,我们可以非常清晰地描述720P的每一个像素,这部分的信息损失加上采样的信息损失,只比1080P编码少。

所以综上所述,我们需要控制码率。码率控制的目的是在一定的带宽条件下,让每一个比特都发挥作用,分配到最需要的地方,从而提高用户的观看体验。

当涉及到将每个比特分配到最需要的地方时,通常有许多方法。在整个编码过程中,有信息丢失的地方都可以做。例如:

首先是在分辨率上做文章。对于给定的比特率,您可以选择不同的分辨率进行调整。

二是在帧率上做文章。对于给定的比特率,您可以选择不同的帧速率。

三是在视频中不同帧之间分配码率。对于复杂场景,分配更多的码率,对于简单场景,分配更少的码率。

四是在一帧内分配码率,在一帧内,根据图像的复杂程度和人眼的敏感程度分配码率。

在世界杯的场景下,要考虑球员的兼容性,使用分辨率、帧间码率、帧内码率的优化手段。

宏观码率控制——分辨率

首先,我们来看看在宏码率选择中,如何根据码率选择最佳分辨率。

这是在世界杯的视频上做的一个实验,用不同的分辨率编码,用相同的码率编码。从上图可以看出,信息的损失,我们可以在相同的比特率下,随着我们分辨率的增加,实际上视频的清晰度逐渐增加。达到最高点后,视频的分辨率会增加,清晰度会降低。这也验证了我们之前看到的例子。

所以根据这样一条曲线,我们就可以得到分辨率和码率的模型,找到一个任意分辨率的最优码率。其实在世界杯这个场景中,我们把视频分成很多码率,在任何给定的码率下都可以找到对应的分辨率。

如果你关注阿里云的直播,你会看到转码建议会给出很多不同寻常的分辨率,比如432P和648P,在相应的码率下通常都能得到很好的清晰度。

微观码率控制——帧间码率

当涉及到微观速率控制时,首先是如何在许多帧之间分配速率。

上图显示了各种比特率分配算法。第一种算法是传统的CBR,即无论视频如何变化,都采用相同的码率对视频进行编码,并且尽可能每秒码率相同。CBR是途中的红线。我们可以看到,视频清晰度的损失实际上波动很大。在红线中我们可以看到,高的时候可以很高,低的时候也可以很低。我们绝对不希望看到一个播放时抖动剧烈的视频,对人眼观看极为不利。所以我们尝试用一种叫做CQP的方法对视频进行编码,这实际上决定了视频编码的量化步长。在这种情况下,我们可以得到一个清晰度相对稳定的视频。然而,这种编码不是没有成本的。使用CBR时,码率相对稳定。然而,当使用CQP时,为了提高复杂画面中的清晰度,码率会非常高。大家可以看到,在右图中,CQP(绿线)的码率已经飙升到了12mbps,这显然是普通用户无法接受的。所以最终采用了VBR+VBV的方式。在使用VBR+VBV的控制策略时,蓝线的码率质量波动略好于红线,VBV模型也能保证用户带宽达到VBV规定的最大码率时视频能流畅播放。

VBR的烦恼

VBR也会给大型直播带来一些问题。这张图是世界杯开幕式CDN带宽分布图。横坐标是时间,纵坐标是CDN带宽。

你可以在这张图上看到两个非常明显的波动。第一个发生在半场,第二个出现在23:00,开幕式之后,比赛正式开始之前。第一个波动很好解释,因为很多观众半场就走了,中间精彩的进球又会回来一部分观众,下半场一开始还会有很多观众继续看。在低谷面前,不好解释。通过观察码率的分布图,我们发现当时的码率很低。其实这期间正好是普京的讲话,是比较静止的画面。由于采用了VBR,码率波动剧烈,导致带宽波动剧烈。

这种波动对于平时的直播来说是没有问题的。不同的用户看的是不同的直播,所以码率的峰值会趋向于码率的平均值。但是在世界杯场景下,70%的流量观看的都是相同的直播内容,CDN的带宽非常高,使得CDN的带宽随着码率的波动而波动。通常的CDN通常用当前的水位来评估一个新用户应该放什么CDN节点,或者根据一些历史条件来估算CDN应该放什么节点。在世界杯中,这个问题通过在CDN中引入新的调度策略得到了解决。

帧内码率分配

帧内码率分配考虑的是如何在一帧图像中分配码率,以获得最佳的视觉效果。我们会根据人眼的注意力来调整码率分配。上图中,人类关注的焦点毫无疑问是梅西的头部,人眼可能不会注意到后面模糊的内容。所以转码的时候会优先考虑这个图像的聚焦区域在哪里,在这些地方会提高它的码率。另一方面,人眼对规则纹理非常敏感,这部分也需要分配更多的码率,而在散焦区域,我们会适当降低一些码率。通过以上手段,整个视频的码率并没有增加,但是人眼的主观感觉会更清晰。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/403045.html

发表回复

登录后才能评论