archlinux下的obs 4k推流使用报告 您所在的位置:网站首页 obs推流用cpu还是显卡 archlinux下的obs 4k推流使用报告

archlinux下的obs 4k推流使用报告

2023-03-24 11:55| 来源: 网络整理| 查看: 265

背景

一直以来,我都以为intel家的核显对付4K输出、4K录制和推流都绰绰有余,毕竟B站的各种视频和商品的推广图片里都写着嘛,比如下面这个nuc12的宣传图:

尽管这是移动端的cpu宣传图,考虑到桌面端的核显是阉割版本的,但支持个双屏4K总不成问题吧?

正好我计划利用空余时间直播码代码,就决定用Intel核显来推流了!

配置

我用来码代码+学习的机器是一台nuc12 extreme,它搭载了12代i9-12900,我给它配备了两个32G的DDR4笔记本内存,我闲着无聊,还装上了一张RTX3080-10G的独立显卡。

仅使用独显

在装上独立显卡并安装好nvidia驱动后,系统其实是默认使用独立显卡输出的,如果只使用Intel核显,需要修改以下两个地方

1. 添加 /etc/X11/xorg.conf.d/20-intel.conf文件,包含以下内容

Section "OutputClass"                                                                                

    Identifier "intel"                                                                               

    MatchDriver "i915"                                                                               

    Driver "modesetting"                                                                             

    Option "PrimaryGPU" "yes"                    

EndSection  

其中比较重要的是 Option "PrimaryGPU" "yes" 这个配置,顾名思义,意思是这张卡作为主要的输出GPU。

2. 注释掉/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf。nvidia驱动每次安装后,都会重新创建并覆盖/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf 文件,所以如果不注释掉这个文件的话,那么重启后,xorg将运行在N卡上,其他应用运行在intel核显卡上,是不是很奇怪?

特立独行的OBS

nvidia提供了一个双显卡切换的命令 prime-run,使用prime-run命令,可以指定进程在独立显卡上运行,但是obs是个例外,使用prime-run obs命令启动的obs,仍然会运行在核显上,仅在不注释 /usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf 这个文件的时候才能正常工作。

我后来又尝试了prime开源方案,obs也无法兼容开源版本的prime,xorg运行在哪个显卡上面,obs就会运行在哪。

拉胯的集成显卡

obs运行在核显上的时候,使用屏幕捕获,使用intel_gpu_top命令能看到负载特别高

这时候整个电脑响应会变得卡顿,chrome也会卡死,但这时候系统的负载特别低。就算你的cpu是13900也不能幸免,所以为了良好的使用体验,obs不能运行在集显上。

我花费了大量的时间查了原因,疑似是xorg实现机制的原因,导致屏幕捕获效率低资源占用大。我顺便测试了其他的录屏工具,资源占用都比obs稍好。

我的最佳实践

xorg运行在独显上,但使用核显来输出

obs使用prime-run运行在独显上,其他应用均使用核显



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有