问题标签 [nvdec]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ffmpeg - 我可以在生成的 ffmpeg 视频上测试 nvidia 解码器(nvdec/cuvid)的功能吗?
目标:在我的脚本中,我尝试检查我的显卡上的 nvdec 是否可用/功能正常。我此时没有任何源视频(H.264 / H.265)可用作输入,所以我想生成它。也不需要使用编码器,因为我不需要输出文件。我正在测试命令 ffmpeg ($?) 的退出代码。我使用 nvidia-smi 来检查 dec/enc 负载。
我的尝试:
我的命令的输出:
我在 test.ts 之前尝试添加 -t 5 但没有任何改变。输出 ts 文件大小为零。
如果我调试命令,我希望将它添加到末尾“-f null - 2>/dev/null”。输出文件仅用于调试目的。
谢谢你。
c++ - 从内核直接写入 D3D 纹理
我正在使用来自 NVIDIA CUDA 样本的 NVDEC H.264 解码器,我发现一件事是一旦帧被解码,它就会从 NV12 转换为分配在 CUDA 一侧的 BGRA 缓冲区,然后将该缓冲区复制到 D3D BGRA质地。
我发现这在内存使用方面效率不高,并希望使用此内核将 NV12 帧直接转换为 D3D 纹理:
void Nv12ToBgra32(uint8_t *dpNv12, int nNv12Pitch, uint8_t *dpBgra, int nBgraPitch, int nWidth, int nHeight, int iMatrix)
因此,创建 D3D 纹理(BGRA、D3D11_USAGE_DEFAULT、D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_UNORDERED_ACCESS、D3D11_CPU_ACCESS_WRITE、1 个 mipmap),然后在 CUDA 端注册并写入:
一旦调用内核,我就会崩溃。可能是因为滥用 CUarray,任何人都可以澄清如何使用 cuGraphicsSubResourceGetMappedArray 的输出从 CUDA 内核写入纹理内存?(由于只需要写入原始内存,因此无需处理正确的钳位、过滤和值缩放)