【发布时间】:2012-12-01 04:45:48
【问题描述】:
我正计划编写一个应用程序,在该应用程序中,我需要能够对来自 FBO 附加纹理的给定图像序列的视频进行编码。我想利用 GPU 并行性的优势并最大限度地“服务器端”完成这一切.所以我发现 NVidia 有一个 SDK 使用 CUDA 对视频进行编码,但是在阅读了 SDK white paper 之后,我仍然不清楚是否可以发送 FBO 纹理作为 NVCUVENC(编码器)的图像帧源不离开 GPU。我相信从 CPU 上传图像会增加编码过程的巨大开销,因为如果我不能直接在 GPU 端获取 FBO 纹理,这意味着我必须将其像素读取到 CPU,然后再将它们发送到 GPU编码。 所以我基本上有两个问题:
NVIDIA CODEC Libraries 允许做我想做的事吗?
如果没有,是否可以使用其他 GPGPU SDK(如 OpenCL 甚至 OpenGL 4.3 计算着色器?
任何与 DirectX 或其他与 Windows 相关的东西都不能被考虑在内,因为我需要它用于 Linux。而且我只使用 NVidia 硬件。
【问题讨论】:
标签: opengl cuda opencl gpgpu video-encoding