Camera Video Frame Capturing
过去一年我一直在努力。我正在尝试使用webrtc
及其相关技术制作视频流插件。我知道市场上已经有一些插件可以流式传输视频,即PixelStreaming
.
最近,我提出了执行以下操作所需的新研究;
因为这
latency
是开发更可靠的流插件的关键因素。因此,我尽最大努力优化Camera Video Frame Capturing期间运行的每个进程。我还试图在此过程中减少额外的跃点数。
我开发的这个当前系统运行100
良好,没有任何崩溃,正如您在此处看到的那样;
我在这里关注的一点是,我是否有可能直接从 GPU 中提取相机视频RAW
帧Encoded
?
因为我想Camera
使用 GPU运行Nvidia GPU (GTX GEFORCE)
,我可以使用 Python 模块获取一些详细信息,以便在 Python 中以编程方式使用 Nvidia-SMI 从 NVIDIA GPU 获取 GPU 状态。但它没有让我有任何访问权限来获取、获取或提取在 GPU 上运行的相机的视频帧。
简单示例:
作为一个例子,让我们以一个简单的相机为例,它的帧被处理,GPU
而不是CPU
这样;
我已经访问了这个非常酷的答案:
就目前
Nvidia Encoder
而言,我还使用过这个非常酷的编码器,并成功地使用NvEnc
. 我也直接知道它的 C/C++ 实现。
让我们再举一个非常简单的例子。我曾尝试使用cudaMalloc
CUDA C++ 编程在 GPU 中分配内存。我还可以使用以下方法将分配的 GPU 内存复制到主机程序cudaMemcpy
中;
int main()
{
const unsigned int N = 1048576;
const unsigned int bytes = N * sizeof(int);
int *h_a = (int*)malloc(bytes);
int *d_a;
cudaMalloc((int**)&d_a, bytes);
memset(h_a, 0, bytes);
cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);
cudaMemcpy(h_a, d_a, bytes, cudaMemcpyDeviceToHost);
return 0;
}
对于当前运行的进程/程序,plugin
是否有人可以给我关于直接从 GPU 中提取帧而不是每次都从相机中获取帧的任何建议或一些建议。module
library