欢迎光临散文网 会员登陆 & 注册

OBS-NDI双机直播方案分享及其他方案

2023-01-13 15:17 作者:落魄码农  | 我要投稿

    怎么做能实现高分辨率高刷新率游戏时进行直播?最近在思考怎么搞直播配置,设想以及实践下来的各种单机、双机、双卡方案等中遇到最大的一个问题就是:游戏主机是4K160Hz高分辨高刷屏(甚至还要开HDR),为了在这个规格下玩游戏,并使用OBS进行直播或者录屏,我搜索相关资料,查阅网友分享,最后实现了高分辨率高刷新率游戏的同时进行直播。考虑过的方案有:

    *. 双机采集卡方案

    *. 单机单卡方案

    *. 单机双卡方案

    *. 双机NDI方案

    从成本上考虑,单机单卡最优,不需要加额外配置就可以完成。从配置上来说,也是单机单卡最为简单。但要实现高质量游戏的同时进行直播或者录制,还得双机NDI,也是我最终的选择。每种方案的特点请看接下来的内容:

双机采集卡方案(达咩)

    第一个要排除的方案就是使用采集卡。目前能买到的采集卡(不知道专业领域有没有相关产品)最高支持4K60Hz环出,虽然使用采集卡对游戏主机的额外负载几乎没有,但使用采集卡方案达不到理想的游戏画面。在主机上也有相同的问题,XSX支持4K120Hz输出,为了直播接上采集卡后要么4K60Hz,要么降低分辨率提高刷新率。顺便说一句,我在查阅资料的过程中看到有网友提到,XBox可以直接串流到PC上,也许可以高画质玩游戏的同时进行直播。

    采集卡有两种接法,环出(需要采集卡支持环出):原本游戏主机是:显卡 --> 显示器,加入采集卡:显卡 --> 采集卡IN -- 采集卡OUT --> 显示器,显卡输出的画面通过采集卡绕一圈再转到显示器,同时采集卡采集到的视频数据通过PCI-E或者USB口传输到录制、直播主机。我看到的目前能购买到的采集卡都是HDMI接口,且最高HDMI2.0,带宽是没法支持4K120Hz及以上。PS5、XSX这边都是HDMI2.1输出,配合有相应接口的电视机或显示器才能实现高质量的游戏画面。也许以后会有HDMI2.1环出的采集卡产品,这样玩主机的主播们就可以无损游戏并直播、录屏。

    另一种接法就是接显卡的另一个输出口,在原本的:显卡port1 --> 显示器,增加一路输出:显卡port2 --> 采集卡IN,然后在游戏主机上使用复制屏幕(快捷win+p选择),这种方式在游戏主机看来采集卡就是另一个屏幕,使用过多屏的哔友应该知道问题了,我的4K160Hz主显示器会被拉低到和采集卡一个水平(看到有网友分享的win10以上多屏有不同分辨率的方案,没有进行测试)。至于使用拓展屏幕...没有意义。

    采集卡方案不适合我,但对于画质要求不是那么高的主播们是可以的,但是采集卡方案还需要处理声音(软件处理、硬件声卡都可以解决),游戏声音、外部语音(YY等)、麦克风等,感觉比较麻烦,所以我更推荐双机OBS-NDI方案,后面会讲。

单机单卡方案(不将就)

    单机单卡方案配置是最简单的,音频、麦克风这些几乎不需要考虑,也不需要添加硬件配置,不直播录制玩游戏时是怎样就是怎样。缺点是直播需要消耗部分系统资源,同时游戏+直播可能会造成占用过高,进而造成游戏卡顿甚至崩溃,影响游戏体验。下面介绍几个细分场景:

    当拥有强大CPU的时候,在OBS中选择软件编码,编码工作由CPU完成,显卡只负责游戏。这种情况下只要CPU足够强,是不会影响到游戏体验的,而且据网友们分享,CPU编码出来的画质是最好的。但我没有尝试,我的CPU是5800x,我估计多少会有影响,而且输出画质越高、码率越高,消耗的CPU资源就越高。

    当使用一张近几代的NVIDIA显卡玩游戏的时候,在OBS中选择硬件编码(NVENC),编码工作主要由显卡完成,会大大降低CPU资源的消耗。关于NVENC,近几代的N卡几乎都内置有专门负责处理视频的编码器(NVENC)、解码器(NVDEC),且几乎每一代都在进行更新,更多资料搜索NVENC关键字会有许多介绍。这里贴一个NVIDIA提供的编解码器支持信息列表:https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new#Encoder 。由于我没有近代的N卡,没有测试,据网友们分享,N卡的NVENC编码器出来的画质非常棒,接近软件编码。看NVIDIA官网介绍( https://www.nvidia.cn/geforce/broadcasting/ ),直播时使用专门的视频编码器,,能有效降低系统负载。

NVENC编码视频流

    当使用一张AMD显卡玩游戏的时候,在OBS中选择硬件编码(AMD编码器缩写有几个版本),编码工作由AMD显卡完成,与使用NVIDIA显卡类似,但又有不同。近几代A卡大部分都有类似于NVENC的专用视频处理核心,理论上和上面N卡类似,我没有深入研究。但肯定的是,A卡编码出来的画质不太好(狗头),有网友也分享了提高输出画质的设置(我没有深入测试),或许能够改善这个问题。可能是由于驱动的问题,我在使用该方案的过程中,游戏画面明显有卡顿,但是监控的CPU、GPU、网络负载都不高,很怪!后面有网友提到使用AMD自带软件(以前的ReLive,现在在控制面板就叫‘直播与录制’),亲测结果:玩游戏几乎没有受到影响,且直播输出画质不错。这是之前能找到的最适合我的方案,但还有个问题:直播时无法使用即时回放录制精彩瞬间了,而且虽然也能添加摄像头、动图文字等元素到画面中,但也就只有这些了(甚至没法添加背景图),功能远不如OBS,所以接下来我又将目标转到回OBS。

    当CPU拥有显示核心,且有独立显卡玩游戏时,这种情况和双显卡一样,下面介绍。

单机双卡方案(机箱塞不下)

    双显卡大多数情况都是CPU自带显示核心,但平时都是使用独显玩游戏,显示核心就闲置下来了。这种情况不需要升级配置,也不需要占用独显的资源,就能进行直播,玩起游戏来几乎不受影响。我最早用intel平台的时候就是用的这种方案,将核显对应的驱动更新好,然后在OBS中选择对应的编码器,intel:硬件编码QuickSync;amd: 硬件编码VCE、AVC等(具体看显示核心)。

    还有一种就是有一张独立显卡的同时,再添加一张卡专门用于视频编码,编码卡AMD、NVIDIA、Intel都可以,但推荐NVIDIA,原因见上节:单机单卡方案。由于机箱大小、散热以及供电等多种原因,使用一张单槽、无独立供电的显卡来编码是最合适的。在电商逛了一圈,本来想搞一张Quadro P400,它使用的是第六代NVENC,但价格还是要几百块...为了未来考虑,加一张intel显卡也可以(支持AV1编码),但最低规格的A380能买到的全都是要独立供电,且占双槽位置。A310看了介绍,也是支持AV1编码的,规格比A380低一点,估计会有无独立供电,单槽mini卡的形态,但还没上市。

    另外再看OBS论坛的时候,外国友人不建议双卡方案,理由也各式各样,但据我之前的使用经验来看,核显+游戏主卡还是没有什么问题的。

双机NDI方案

    该方案是我目前使用的方案,效果也很理想,达到了在4K160Hz游戏的同时进行直播或者录制。NDI(Network Device Interface),是NewTek公司于2015年推出的网络设备接口协议,OBS-NDI插件就是基于该协议。使用OBS-NDI需要用到两台(也可以多台电脑、多信号源直播),游戏主机和直播主机皆安装OBS、OBS-NDI插件、OBS-NDI插件对应版本的NDI运行时基础库,安装完成后需要重启。简单描述下配置及步骤:

    1、游戏主机+直播主机接入同一个局域网,为了保证质量只少是千兆环境(局域网千兆就可以,出口宽带满足直播上传即可),实测1080p60Hz画面传输需要占用150M左右的带宽。

    2、游戏主机运行OBS(管理员模式运行),设置好捕获的游戏、文字、图片摄像头等(与单机直播设置相同)之后,不需要点击开始直播或者开始录制,在菜单栏中选择 工具 --> NDI输出设置,勾选主输出,这时候游戏主机这端的OBS就准备完成了,其他不需要设置。

    3、接下来在直播主机上运行OBS(同样以管理员模式运行),在来源中添加NDI来源,并选择游戏主机输出的NDI来源,该来源中包含了视频画面、音频,也可以单独接受音频。至此游戏主机的画面及音频就通过NDI实时传输到直播主机。

    4、将接收到的游戏主机的画面和声音编码推到直播平台或者录制保存。

    经过我实测,游戏主机没有受到影响,只是消耗了网络带宽,现在压力来到了直播主机这边。由于直播机没有做其他工作,所以我选择使用软件编码来处理音视频信号,成功将清晰的画面推到了直播平台。而且直播主机可以二次加工数据,多场景切换,设想下局域网内有多个主播通过NDI将画面传到局域网,坐在直播机面前的导播负责切换视角、加滤镜、录制回放等。当然越多的源头、游戏主机输出的画面质量越高占用的网络带宽越大,根据实际情况更改网络配置即可。

    在使用该方案的过程中也遇到一些问题,分享给大家:

    1、游戏主机端的OBS怎么设置?游戏端OBS设置主要是输出画面、音频的设置,和单机直播没有区别,同样可以添加直播间背景图,添加文字,播放音乐等。来源设置好之后调整输出的画面规格(可以直接设置为目标的直播规格,比如我设置的1080p60Hz),如果想要录制更高规格的视频,需要在游戏机这端提高输出规格。最后准备好之后点开工具,NDI输出设置,修改一个名称用于标识,勾选上"主输出",点击确定就准备好了,只要不关闭OBS就会实时输出画面和音频。        

OBS-NDI输出设置

    2、直播端怎么设置?直播端打开OBS后增加来源选NDI来源,这个来源中就包含了游戏端输出的视频、音频数据,然后就按照正常的直播设置将NDI中的数据推到直播平台。 

    3、直播端接收到的画面与声音不同步,声音延迟。这个问题目前在OBS29+NDI插件4.10.0上没有,看到有网友说有问题,估计是版本的问题。

    4、接收到的声音有噪音。我一开始遇到这个问题了,后来发现噪声出现在右声道,有两个办法,将NDI源的声道平衡拖到最左,也就是只使用左声道,然后勾选单声道,输出的声音“听起来”就正常了,没有噪音。还有一个从根本上解决,我搜索OBS论坛中看到外国友人也在说这个问题,并且NDI插件有一个分支修复了这个(https://obsproject.com/forum/threads/obs-ndi-plugin-static-in-audio-issue.161480/#post-597595),去下载这个DDRBoxman打包的插件安装好就没问题了(https://github.com/DDRBoxman/obs-ndi/releases/tag/4.10.1)        

    以上就是我关于直播方案的一些分享,各种方案的具体操作步骤如果大家感兴趣的话我再详细写写,欢迎大家一起讨论。谢谢。

OBS-NDI双机直播方案分享及其他方案的评论 (共 条)

分享到微博请遵守国家法律