jellyfin 转码,为什么多卡 3090 只有一张卡能被利用?

2022-09-12 15:43:11 +08:00
 liulongquan
公司内网服务器装个 jellyfin 玩玩,顺便把显卡加速搞好了
是用 portainer-ce 加上的,选择 gpu-all
https://imgur.com/a/oNmgc2k
然后在 win11 edge 网页端看了一部 1080p 10bit hdr 的视频,确实显示是硬解(转码原因:hdr 有问题),转码速度能有四五百帧一秒,很快,但是只有 0 号显卡在解码,其他的都在睡觉
显卡功率大概在 150W 左右,编码显示是直接吃满的
https://imgur.com/a/rMvHDmw
https://imgur.com/a/dx2FODT

为什么选择了 gpu-all 还是只有一张显卡在干活呢,按道理说视频转码就像多线程下载,并行度很好的,是不是 jellyfin 的程序没有考虑到多卡情况?有什么办法能开启多卡转码吗?
1319 次点击
所在节点    问与答
12 条回复
ltkun
2022-09-12 15:48:36 +08:00
你这一张卡能同时支持几十部片子转吧 我 hd630 都可以两部 4k
liulongquan
2022-09-12 15:50:54 +08:00
@ltkun 您的意思是说这个 gpu 利用率不够高? encode 显示 100% 了, 是不是几十个人看不同的视频,一起转码就能把所有的 gpu 都利用上?
F798
2022-09-12 15:54:05 +08:00
片子 24 楨,五百楨的話算上缓冲,至少 15 個人同时看?
F798
2022-09-12 15:58:02 +08:00
1080p 太轻松了?同时打开 10 个 4k 试一下
msg7086
2022-09-12 16:02:05 +08:00
> [按道理说]视频转码就像多线程下载,并行度很好的

按什么道理?视频转码电路又没有多卡协调功能,怎么并行。
ltkun
2022-09-12 16:16:55 +08:00
转码看 ffmpeg 它支持那就支持
liulongquan
2022-09-12 16:17:14 +08:00
@msg7086 把视频分段啊,比如分成 4 段分给四个显卡
msg7086
2022-09-12 17:00:03 +08:00
@liulongquan 也不是不可以,但是你看视频是串流,正常情况下并不会同时看一部视频的前面和后面。分段转码带来的收益太小了。
ColorfulBoar
2022-09-12 17:01:44 +08:00
非专业卡驱动有限制每个系统(不是每张卡)能开的 encode sessions 数量不多于 3 个(如果驱动版本不太对甚至只有 2 个),虽然据说能 hack 驱动绕开这个限制但换我是开发者我也懒得整这种吃力不讨好的事。
另外理论上如果一个视频编码很整蛊的话(每一帧都要参考上一帧)是没法分段的……
jfdnet
2022-09-12 17:03:04 +08:00
群晖的垃圾集显都能轻松转码,别纠结了。
liulongquan
2022-09-12 17:41:22 +08:00
@ColorfulBoar 啊,非专业卡驱动有这个限制啊,nvidia 驱动不是全闭源的吗,咋 hack 的? 不知道 nvidia studio 驱动怎么样
ColorfulBoar
2022-09-12 17:58:50 +08:00
@liulongquan #11 好像这个数量限制就在用 nvenc api 时候用的那个动态链接库里面随便检查一下,也没仔细藏,所以估计直接找准位置改汇编就完事了……studio 驱动没区别(专业卡是指非 GeForce 的那些品种,具体哪张卡限制什么样参考 https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new 里面 Max # of concurrent sessions 那列

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/879452

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX