1

Camera Video Frame Capturing过去一年我一直在努力。我正在尝试使用webrtc及其相关技术制作视频流插件。我知道市场上已经有一些插件可以流式传输视频,即PixelStreaming.

最近,我提出了执行以下操作所需的新研究;

因为这latency是开发更可靠的流插件的关键因素。因此,我尽最大努力优化Camera Video Frame Capturing期间运行的每个进程。我还试图在此过程中减少额外的跃点数。


我开发的这个当前系统运行100良好,没有任何崩溃,正如您在此处看到的那样;

在此处输入图像描述

我在这里关注的一点是,我是否有可能直接从 GPU 中提取相机视频RAWEncoded

因为我想Camera使用 GPU运行Nvidia GPU (GTX GEFORCE),我可以使用 Python 模块获取一些详细信息,以便在 Python 中以编程方式使用 Nvidia-SMI 从 NVIDIA GPU 获取 GPU 状态。但它没有让我有任何访问权限来获取、获取或提取在 GPU 上运行的相机的视频帧。


简单示例:

作为一个例子,让我们以一个简单的相机为例,它的帧被处理,GPU而不是CPU这样;

在此处输入图像描述

我已经访问了这个非常酷的答案:

就目前Nvidia Encoder而言,我还使用过这个非常酷的编码器,并成功地使用NvEnc. 我也直接知道它的 C/C++ 实现。

让我们再举一个非常简单的例子。我曾尝试使用cudaMallocCUDA 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 中提取帧而不是每次都从相机中获取帧的任何建议或一些建议。modulelibrary

4

0 回答 0