网上得到一个nvidia encoder 的代码片断,自己把它补全. 可以测试网卡编码的个数限制.
cat main.cpp
#include <stdio.h>
#include <cuda.h>
#include "cuda_runtime.h"
#include "nvEncodeAPI.h"
//#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
int main()
{
cuInit(0);
//获取cuDevice
CUdevice cuDevice = 0;
cuDeviceGet(&cuDevice, 0);
//创建cuContext
CUcontext cuContext = NULL;
cuCtxCreate(&cuContext, CU_CTX_SCHED_BLOCKING_SYNC, cuDevice);
//准备编码会话参数
NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS encodeSessionExParams = { NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS_VER };
encodeSessionExParams.device = cuContext;
encodeSessionExParams.deviceType = NV_ENC_DEVICE_TYPE_CUDA;
encodeSessionExParams.apiVersion = NVENCAPI_VERSION;
//创建nvenc示例
NV_ENCODE_API_FUNCTION_LIST nvenc = { NV_ENCODE_API_FUNCTION_LIST_VER };
NVENCSTATUS nvStatus = NvEncodeAPICreateInstance(&nvenc);
int loop=0;
void *hEncoder;
while(1)
{
hEncoder = NULL;
nvStatus = nvenc.nv

本文分享了一段用于测试 NVIDIA 编码器的 C++ 代码片段,该代码能够帮助测试者了解网卡编码能力的限制。代码使用 CUDA 和 nvidia-encode 库,并提供了编译所需的配置说明。
最低0.47元/天 解锁文章
877

被折叠的 条评论
为什么被折叠?



