ffmpeg - gpu ffmpeg cuda编码OpenEncodeSessionEx失败: 内存不足

我在使用GPU (uda )的ffmpeg视频编码时遇到问题。

我有2x nVidia GTX 1050 Ti

当我尝试执行并行编码时,问题就来了。超过2个进程和ffmpeg就挂掉了:


[h264_nvenc @ 0xcc1cc0] OpenEncodeSessionEx failed: out of memory (10)



问题是,nvidia-smi显示gpu上有许多可用的资源:


+-----------------------------------------------------------------------------+


| NVIDIA-SMI 384.66 Driver Version: 384.66 |


|-------------------------------+----------------------+----------------------+


| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |


| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |


|===============================+======================+======================|


| 0 GeForce GTX 105... Off | 00000000:41:00.0 Off | N/A |


| 40% 37C P0 42W / 75W | 177MiB / 4038MiB | 30% Default |


+-------------------------------+----------------------+----------------------+


| 1 GeForce GTX 105... Off | 00000000:42:00.0 Off | N/A |


| 40% 21C P8 35W / 75W | 10MiB / 4038MiB | 0% Default |


+-------------------------------+----------------------+----------------------+



时间:

  • 因为没有关于如何应用编码上下文的代码,所以我无法知道为什么第二个gpu没有被使用,你在av_opt_set()或命令行参数中指定了使用它?
  • 更重要的问题是,GeForce卡不能在一个系统中拥有超过2个编码会话,如果需要更多,你必须使用像quadro,tesla等等
...