先说下虚拟机的配置
虚拟机 1 是 Win11 ,用虚拟屏幕开了 sunshine 串流
虚拟机 2 是 Ubuntu ,Docker 里安装了 Jellyfin ,可以转码视频
2 台虚拟机都是 ovmf(uefi)+i440fx ,并且添加了不一样的 sriov 核显。
以上 2 个虚拟机单独使用是没问题的,问题表现为:
我观察转码时,显示的核显负载也不高。但此时 Win11 串流就是不行(转圈圈、屏幕卡死),sunshine 的 troubleshooting 也看不到报错。求教有遇到过此类问题的朋友,如何解决该问题?
intel_gpu_top -d sriov
1
ericww 8 天前 via iPhone
alderlake-s 的编码器和视频增强单元的调度都是独占的,不是时间分片。同时只能被一个 vm 调用。
|
![]() |
3
zer OP @ericww 和处理器内置的 Multi-Format Codec Engines 数量有关么?如果使用 UHD770 的 CPU ,内置 2 个 Multi-Format Codec Engines ,是不是可以同时并发 2 个转码调度
|
4
ericww 8 天前 via iPhone
@zer 具体要看任务,优先级是解码>编码>处理,gen12 是 2 个编解码和 1 个视频增强,jellyfin 一个任务就占用两个编解码了,其他就只能等待任务结束。
|
![]() |
5
iamqk 8 天前
实测 N150 上跑了 6 个 win10 ,都是 sriov 的核显。就开了两个远程 win10 ,edge 开了 b 站,可以同时解码视频
|
![]() |
8
wuyadaxian 7 天前
Jellyfin 转码问题,转码时独占 gpu 的 encode 和 decode 。
导致其他需要用 gpu 的机器被中断冻结。 实测 7 台 win11 虚拟机能同时使用 gpu 资源,同时看 youtube ,gpu 解码。 |
![]() |
9
wuyadaxian 7 天前 ![]() @zer 可以,这边 windows11 ,7 台虚拟机。可以同时处理。12700 核显。
parsec 远程( h.264 or h.265 视频流),gpu 编码。 +虚拟机内 youtube 视频,gpu 解码。 |
![]() |
10
wuyadaxian 7 天前
我查看了一下资料,发现不仅是 Jellyfin ,所有的媒体服务器包括 plex/emby 都会出现 op 的这个问题。
我一开始怀疑是 encode 和 decode 并发的问题。 我们知道 nvidna 的消费级显卡有 NVENC encoding sessions 的限制,3 个/5 个/8 个。 查了一下 intel gpu 的情况。there is no concurrent encoding sessions limit on Intel iGPU and ARC dGPU. intel 显卡并没有并发限制。 那么可能就是 QSV ,VA-API 等驱动问题。 不过我最近没有时间研究。op 如果有兴趣可以去查查相关的代码。 |
![]() |
11
zer OP ![]() @wuyadaxian https://github.com/strongtz/i915-sriov-dkms/issues/254#issuecomment-2655468421
我按照这个 issue 里的方法,给 Jellyfin 指定了个自定义的 ffmpeg 脚本,加上了 `-readrate 2` 的参数。 现在 jellyfin 转码性能虽然下降到了 50fps ,但是同时开着的 sunshine 串流不会卡死了,处于可用的状态。 算是暂时解决了此问题吧😂 |