Travis990
Travis990

Reputation: 1

nvenc encoder performed resolution 2560 * 1440 encoding yuv444 failed ?

NVIDIA Gefore GTX 1660Ti graphics card, I use video-sdk-samples for HEVC encoding, YUV format: NV_ENC_BUFFER_FORMAT_YUV444, resolution “1920 * 1080” and “3840 * 2160” resolution encoding is successful, but resolution 2560*1440 encoding, prompting error info :NV_ENC_ERR_INVALID_PARAM, I do not know where the problem lies?

void NvEncoder::DoEncode(NV_ENC_INPUT_PTR inputBuffer, std::vector<bool> &vKeyFrame, std::vector<std::vector<uint8_t>> &vPacket, NV_ENC_PIC_PARAMS *pPicParams)
{
    NV_ENC_PIC_PARAMS picParams = {};
    if (pPicParams)
    {
        picParams = *pPicParams;
    }
    picParams.version = NV_ENC_PIC_PARAMS_VER;
    picParams.pictureStruct = NV_ENC_PIC_STRUCT_FRAME;
    picParams.inputBuffer = inputBuffer;
    picParams.bufferFmt = GetPixelFormat();
    picParams.inputWidth = GetEncodeWidth();
    picParams.inputHeight = GetEncodeHeight();
    picParams.outputBitstream = m_vBitstreamOutputBuffer[m_iToSend % m_nEncoderBuffer];
    picParams.completionEvent = m_vpCompletionEvent[m_iToSend % m_nEncoderBuffer];
    NVENCSTATUS nvStatus = m_nvenc.nvEncEncodePicture(m_hEncoder, &picParams);
    if (nvStatus == NV_ENC_SUCCESS || nvStatus == NV_ENC_ERR_NEED_MORE_INPUT)
    {
        m_iToSend++;
        GetEncodedPacket(m_vBitstreamOutputBuffer, vKeyFrame, vPacket, false);
    }
    else
    {
        printf("picParams.inputWidth = %d,picParams.inputHeight = %d \n", picParams.inputWidth, picParams.inputHeight);
        NVENC_THROW_ERROR("nvEncEncodePicture API failed", nvStatus);
    }
}

error:
nvEncEncodePicture Prompt Error:NV_ENC_ERR_INVALID_PARAM 

`

Upvotes: 0

Views: 266

Answers (0)

Related Questions