cudaEncode编码详细过程如下:
一,ParseInputParams(argc, argv,&sEncoderParams)
//配置参数:输入、输出文件,配置文件,基本的参数
二,pCudaEncoder = new VideoEncoder (&sEncoderParams);
执行的详细过程:
1,fpIn= fopen(m_pEncoderParams->inputFile,"rb")输入文件
2,fpOut= fopen(m_pEncoderParams->outputFile,"wb")输出文件
3,GetEncodeParamsConfig(m_pEncoderParams)
3.1 fopen_s(&fpConfig,pParams->configFile, "r");
3.2 fscanf_s(fpConfig, "%d",&(pParams->iCodecType));
3.3 同上…(从配置文件中获取参数)
3.4 fclose(fpConfig)
三,pCudaEncoder->InitEncoder (&sEncoderParams);
执行的详细过程:
1,NVCreateEncoder(&m_pEncoder)创建用于编码的NVIDIA CUDA 视频编码器库对象
2,SetCodecType(m_pEncoderParams)设置编码类型,VC-1已经不支持啦
2.1,NVSetCodec(m_pEncoder,pParams->iCodecType)设置压缩编解码器类型,H.264或VC-1编码
3,GetGPUCount(m_pEncoderParams,&gpuPerf, &bestGPU) 看有几个GPU,我们这里只有一个GPU,别无选择
3.1,GetParamValue(NVVE_GET_GPU_COUNT, &(pParams->GPU_count))
3.1.1,NVGetParamValue(m_pEncoder,dwParamType, pData)
4,SetActiveGPU(m_pEncoderPar