【问题标题】:NVENC : fail to compress H264 with for multiple video streamsNVENC:无法为多个视频流压缩 H264
【发布时间】:2015-05-27 18:35:09
【问题描述】:

我有两个 Quadro K620 NVidia 显卡。我想使用 NVENC SDK 压缩 4 个 H.264 流,每张卡 2 个流。视频为 640x 480 30 fps。

2 个流运行良好,没有任何问题,但是当我尝试编码 3 个流时它失败了。

函数 nvEncOpenEncodeSessionEx 在第 3 个流中返回 NV_ENC_ERR_OUT_OF_MEMORY 错误。

有什么想法吗?

谢谢。

【问题讨论】:

  • 据我所知,NVENC 与 CUDA 无关,因此您不太可能通过使用此标签标记问题来寻求帮助。从错误消息看来,您已经达到了 NVENC 对并发流数量的限制。仔细检查 NVENC 文档,了解对支持的流数量的任何限制(硬限制或基于特定 GPU 的能力)。
  • Quadro K620 支持 2 个流媒体。我在我的 PC 中插入了两张 K620 卡。我将第二个视频卡用于第三个流。但它不起作用。
  • 我找到了。 NVENC 文档称“当前的 SDK 包允许每个系统最多同时进行两个编码会话,用于低端 Quadro 和 GeForce 卡。”但我不确定什么是“低端”。你知道吗?谢谢。
  • Quadro K620 绝对是低端的。如果你看一下 NVIDIA 的 Quadro 概述 (nvidia.com/object/quadro-desktop-gpus.html),从高端到低端排序,K620 出现在底部。
  • 谢谢。你能告诉我什么是最小板,以便我可以压缩 4 个流吗?

标签: gpu video-encoding


【解决方案1】:

这是由于 licensing limitations

请阅读此内容:“以下是针对 R358 驱动程序和以前的驱动程序的许可政策之间的区别。在驱动程序之前R358 , 无论系统中存在多少不合格的 GPU , 每个系统都允许同时进行两个编码会话. 例如, 在具有一个 Quadro K4000 卡和两个 GeForce 卡的系统上, 只能运行两个同时编码会话, 无论其中 GPU 正在运行编码会话。从 R358 开始,两个同时编码会话的限制将仅适用于在所有非合格卡上执行的会话总数。在上面的示例中,应用程序可以同时运行 N 个同时编码会话Quadro K4000 卡(其中 N 由编码器/内存/硬件限制定义)和两个 GeForce 卡上的两个会话相结合。因此对 n 的限制此类系统的同时编码会话数为 N + 2"

QUADRO K2000 支持 2 个以上 NVENC 线程的最小板是
请参阅NVENC SUPPOTED GPUs

【讨论】:

  • 您知道是否可以通过运行虚拟机 (kvm) 并为每个虚拟机分配一张卡来解决此问题?假设您有 2 张卡并创建 2 个虚拟机……我可以运行 4 个会话吗?还是在硬件层面进行控制?
  • @NublaII 这是个好主意,但是,我没有检查它。在驱动程序级别完成的控制。我认为这个答案对你有用:video.stackexchange.com/questions/17419/…
  • 我可以确认使用 kvm 和直通卡我可以同时编码 4 个流;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-12
  • 2013-08-26
  • 2023-03-16
  • 1970-01-01
  • 2020-02-17
  • 2013-04-10
相关资源
最近更新 更多