国内人民群众喜闻乐见的网络直播最早可以追溯到YY时代,在那个年代直播多是MC与唠嗑,还有一些游戏内容,大多是一个大的YY聊天室里面有一个小小的视频窗口,然后聊天室里疯狂滚动着观众们的发言与礼物。在我去年重新配了一台PC之后,经过前后几个月的调试与Debug,基本上对如何使用OBS来进行各式各样的直播有了一定的了解,接下来我就来谈一谈直播最基本的一些要素。
我第一次接触到比较有影响力的网络直播平台应该是从属于AcFun的内测版斗鱼直播平台。当时A站在首页上有一个网络直播的入口,点进去就是现在的霸主斗鱼,直播的大部分内容都是英雄联盟等流行的网络游戏,最火的主播也不过几千观众,远比不上现在动辄上百万、甚至过千万的观看人数。
作为一个啥都想试试的手贱玩家,自然而然地也想尝试一下网络直播是一个什么样的东西。于是乎我使用我那台可怜的i5-3210M和GT610M的笔记本进行了第一次尝试,直播的是LOL,结果当然是悲壮的,各种掉帧卡顿马赛克。
所以,这篇文章主要就是说一下如何合理使用硬件来达到性价比最高的直播效果。以下内容涉及到一部分视频编码标准的内容,如果不感兴趣的话可以直接跳过去看第三部分的性能分析。
视频直播本质上是一个视频编码、传输再解码播放的过程,你可以理解为直播软件将你屏幕里面的内容实时压制成视频数据流,并将其通过特定的通信协议传送到直播平台的服务器里,观众们则从服务器下载这些视频数据流,通过视频播放器解码播放,获得观看体验。这个过程和你利用迅雷离线观看(百度云离线观看)基本是一回事,只不过你是数据的提供者而已。
视频编码是一个需要大量性能的操作,主要是对CPU性能的需求,但是随着H.265和HEVC(High Efficiency Video Coding)的出现,利用显卡进行视频编码也逐渐兴起,我们主要关注利用CPU来进行编码。
在胶片时代,视频都是储存在一格一格的胶片上,最后卷成一大盘,然后放在某个仓库里。随着电子工业的不断发展和计算机技术的不断进步,人们开始了数码摄像与数字化视频处理的工作,但是如何将原有的胶片转换成电脑能识别的数字文件,成了一个很大的课题。随着一系列的摸索和实践,最终发展出了当下应用范围最为广泛的视频编码格式:H.264/MPEG-4 AVC。
不管是网络在线观看的视频节目也好,还是利用百度云、迅雷等下载工具下载的电影、动画或者电视剧等等,常见的格式一般均为MP4和MKV,终于摆脱了万恶的RMVB(年纪小一点的朋友可能不知道这个,有兴趣的可以百度一下,那也是我国互联网发展史上不可忽视的存在)。这两种格式的资源一般均为H.264编码,而我们手中的各种掌上设备也均支持H.264编码文件的解码,那么为什么H.264这么流行,忽然全世界好像都是它了呢,这得从互联网的发展说起。
在20世纪末,互联网的接入速度还是以KB为计量单位,在线看视频、看电影那是不存在的,打开纯文字的BBS或者门户首页都得加载半天。所以人们观赏各类影视剧节目的主要途径无非是去电影院或者看电视,以及DVD。一直到21世纪初,DVD租赁是个很大的生意,就算是国内盗版横行的状态,各路影碟出租屋和电脑城都有很多DVD买或者出租,在当时,光盘能容纳的数据量相对于网络传输,那可大多了。一张标准DVD-5的容量在4.7Gb,而ADSL网络的下载速度普遍在128KB/s,所以蓝光出现之前,DVD就是高画质的代名词。
随着光纤的普及,互联网的连接速度迎来了飞跃式的进步,从KB到MB,人们能通过互联网获取到的资源也变得越来越多样化,加上智能手机全线标配的Wi-Fi功能,使人们产生了在手机上看各种影视剧的需求。虽然互联网的连接速度在发展,影视剧的数字化清晰度也一直在不断的进步,从最开始的DVD(720 x 480)到Full-HD(1080p),再到UHD(4k),甚至是UHD-HDR,数据量也迎来了爆炸式的增加。如果有了解PT的朋友肯定知道蓝光原盘的尺寸是多么的恐怖。于是乎为了让人们可以欣赏到尽可能高质量的视频资源,又不会对连接速度产生太大的压力,MPEG(Moving Picture Experts Group)和VCEG(Video Coding Experts Group)与2003年5月最终完成了H.264/MEPG-4 AVC编码标准的编篡工作。在其诞生后,蓝光(Blu-ray)碟片将其纳为视频编码标准,Apple公司为旗下的iPod随身听系列以及自己的iTunes Store添加了H.264支持(iPod Video及后续的其他iPod机型),iPhone和iPad更是从诞生之日起就支持。
H.264相对于前代的H.263实现了体积缩小接近一半而能保持相近的画质,获得了出色的性能提升,而且由于自身的灵活性,使其可以用于低画质或者高画质应用、广播、DVD/BD存储等等。H.264的大获成功让市面上越来越多的设备、系统兼容了它,成为了视频编码的绝对主流。在手持移动设备发展的早期,移动平台的CPU性能还比较弱,要解码H.264编码的视频能力还不是很够,于是很多厂商直接针对其添加了硬件解码支持,更加坚定了内容提供商对H.264编码的使用。
不仅离线视频使用场景H.264表现出色,在线视频应用领域更是没有竞争对手。由于H.264编码的数据包结构设计的十分灵活与出色,可以在传输过程中保持相当好的稳定性,简直是天生为流媒体而打造的,几乎所有的在线影视剧或者网络直播都是利用H.264编码来封装视频资源。
H.264的成功来源于它出现的时机与自身过硬的实力。而到了网络直播时代,更是当仁不让的成为了编码的首选。
在H.264编码标准发展的早期,人们都是纯粹利用CPU来进行编码工作,开发者们不停的优化着算法,提高视频编码的工作效率与视频图像质量。在这一期间,各种开源H.264编码器项目百花齐放,其中的佼佼者便是大名鼎鼎的x264。它凭借着优异的性能与相当不错的输出质量在业界取得了很大的成功,众多知名的软件都将其集成了进去,比如FFmpeg与MeGUI等,x264多次赢得H.264编码解码器大赛(没错,这玩意儿还有比赛)。在2010年4月,x264还宣布了正式兼容蓝光(Blu-ray)标准,可以编码能让蓝光播放器(不是软件,是蓝光光盘播放机)正确识别并播放的视频文件,随后华纳兄弟也宣布x264编码器将被用于它们旗下发行的蓝光碟片。
和很多人印象中的不一样,你不是一定得配备顶级硬件才可以开始你的直播之路,直播的内容决定了对硬件的要求,我将游戏类的直播大体分为了以下几类:
页游、AVG、GalGame文字类游戏
主流网络游戏、MMORPG、MOBA等
大型3A游戏、在线多人竞技游戏
主机游戏
不同级别、类型的游戏对于电脑硬件的要求是不一样的,我相信你们可以很明显的看出来我是按照游戏对硬件要求的不同而进行分类的,接下来我会逐一分析不同类型的游戏直播时对硬件性能的需求,在这之前我们得先了解一下游戏直播对电脑的性能压力究竟在哪里。
我们在分辨一个视频文件的质量好坏时,会看两个参数:
按照经验,分辨率肯定是越高越好,容量也是越大越清晰,但这两者并不是完全平等的,按重要性来说,容量的优先级要高于分辨率。这是因为分辨率可以随便拉伸,我们可以把原始分辨率为720P的视频,拉伸到4K都没有问题,但是容量你只能从大往小压缩(编码方式不变的情况下,当然,你也可以填充空白数据让容量变大,但这对视频质量没有任何意义),于是我们可能会发现4.5GB的720P BDrip的高清电影,比1.2GB的1080P WEB-DL高清电影实际上更加清楚,这就是视频比特率不同的原因了。我们分辨高质量的视频文件最主要的指标就是视频比特率,因为它代表了文件内每秒数据量的大小。在同样的编码算法下,比特率大的文件肯定要比比特率小的清晰,所包含的数据量更多。
回到游戏直播,除了分辨率与比特率,还有一个非常非常重要的参数就是帧数了,我们都知道60fps比30fps流畅,应该说流畅疯了。但是让一个游戏运行在60fps所需要的性能比30fps要高多了,对于视频编码来说也是如此,毕竟多了一倍的数据量(分辨率不变的情况下)。
也就是说,当你直播的画面质量设置越高,你电脑的CPU运算量就越大,那么游戏直播对电脑性能的主要压力就取决于你想要给观众呈现一种什么样的画面质量,而在游戏直播中,影响画面质量最大的因素就是视频比特率(Bitrate)了。理想情况下当然是观众看到的画面和你看到的是一样的,但这只是理想状况下,因为你在OBS里能设置的视频比特率一定有一个上限值,这个上限可能是你的上传带宽,更大可能是你的CPU运算能力,而且大部分直播平台对视频比特率也有限制,你必须在分辨率和帧数之间做出一定的取舍,因为你每秒能编码传送的数据总量是固定的,是选择更多的帧数,还是更好的画面质量,就取决于你自己了
按我自己的使用经验来看(Intel i5 3210M、Intel i5 6500、AMD Ryzen 1700):
如果你主要直播的内容是GalGame、页游这种基本不吃硬件资源的游戏,你可以在笔记本双核或者四核平台(i5-3210M以上)的硬件基础上,将码率设定在2000kbps,分辨率为720p30fps,可以获得不错的直播效果
如果是直播英雄联盟、守望先锋(低画质)、风暴英雄或者同级别的比较老一点的PC游戏,你在桌面(笔记本需要标压处理器)四核平台,比如Intel 8代之前的i5,8代i3处理器可以将码率设置在3000kbps左右,分辨率为720p30fps,应该不会有太大的问题,不推荐任何最新3A游戏的尝试,包括吃鸡,除非你大幅降低画质与分辨率。
如果你是最新的Intel或者AMD旗舰级CPU,比如i7 8700K和Ryzen 2700x/1700,你可以将码率调整至8000 - 10000kbps,分辨率为1080p60fps,根据游戏不同,可以不用或者稍微调低画质。
如果你需要直播的主机游戏,以我自己使用的圆钢GC 550视频采集卡为例,需要输出1080p60fps的画面质量时,推荐将码率设为6000 - 8000kbps,此时需要的CPU性能最低为笔记本平台不低于Intel Core i7 7700HQ,桌面平台不低于Intel Core i3 8100,即四核心处理器。
总结:网络直播对性能的要求,往往是在“搭配”和技巧
以上分析都是在显卡不成为性能瓶颈的情况下,即你在不进行直播时,能流畅的运行游戏。需要注意的是,以上的分辨率与帧数设置都只是我的推荐值,具体的设置还是需要根据你直播的游戏来确定。比如你在直播炉石传说这样的卡牌游戏时,可以在4500kbps码率的情况下设置1080p60fps,这是因为炉石传说的画面变化程度比较小,但是对于彩虹六号、吃鸡这样的大动态、移动很频繁的3D游戏,那么请一定要调低分辨率(在你没有办法设置高码率的情况下),不然会出现5秒直播4秒马赛克的情况。因为你频繁地移动镜头,会造成视频画面的剧烈变化,给视频编码器带来巨大的编码压力,如果CPU性能不够,可能会用马赛克来填充视频画面,甚至大幅掉帧。
网络直播对于性能的需求主要来源于视频比特率的设置,数值越高,对CPU的压力就越大。并且由于游戏、直播软件的优化问题,对于CPU性能必须保有一定的余裕。比如当你运行一个3A游戏时,你的CPU负载可能只有15%,你的帧数稳定在最高帧数,假设是100fps,但是当你打开OBS进行直播后,你的CPU负载从15%变成了45%,你会觉得CPU还没问题,毕竟一半的使用率都不到,但此时你的游戏帧数可能大幅度下降,极端情况可能会对半砍(我说的就是吃鸡),所以如何设置码率需要你根据你直播的游戏来进行调试,一般情况下,直播软件会影响15 - 50fps的游戏帧数,当然了,如果你游戏都跑不到60fps,还是不推荐你进行60fps的直播了。
双通道内存(尤其是AMD Ryzen平台)对编码性能也有一定的影响,我一直是用8GB单条内存来直播吃鸡,一直都有点卡卡的(我心还挺大的,电脑居然没炸),换成了幻光戟套条之后立马没问题了,直播时的游戏性能从原来最低的40fps,直接提升到了最低55 - 65fps(只讨论最低帧数,因为我显示器是60Hz的,更高没意义),这也主要是因为吃鸡的优化太垃圾,对双通道以及内存频率太敏感。
关于直播所需要注意的硬件相关的内容差不多就是这些了,其中很多都是我自己反复尝试得到的结果,不一定适用于你们的使用情况,但还是具有一定的参考意义。
评论区
共 25 条评论热门最新