2013-07-17 190 views
1

我做nvEncodeApp成功,但是當我運行它,我的輸出是這樣nvEncodeApp成功使但是在運行它:在CNVEncoder.cpp NVENC錯誤:1282碼= 15(使用無效結構版本)「nvStatus」

./nvEncoder -infile=HeavyHandIdiot.3sec.yuv -outfile=outh.264 -width=1080 -height=1080 
> NVEncode configuration parameters for Encoder[0] 
> GPU Device ID    = 0 
> Input File    = HeavyHandIdiot.3sec.yuv 
> Output File    = outh.264 
> Frames [000--01]   = 0 frames 
> Multi-View Codec   = No 
> Width,Height    = [1080,1080] 
> Video Output Codec  = 4 - H.264 Codec 
> Average Bitrate   = 0 (bps/sec) 
> Peak Bitrate    = 0 (bps/sec) 
> BufferSize    = 0 
> Rate Control Mode   = 2 - CBR (Constant Bitrate) 
> Frame Rate (Num/Denom) = (30000/1001) 29.9700 fps 
> GOP Length    = 30 
> Set Initial RC  QP = 0 
> Initial RC QP (I,P,B)  = I(0), P(0), B(0) 
> Number of B Frames  = 0 
> Display Aspect Ratio X = 1080 
> Display Aspect Ratio Y = 1080 
> Number of B-Frames  = 0 
> QP (All Frames)   = 26 
> QP (I-Frames)    = 25 
> QP (P-Frames)    = 28 
> QP (B-Frames)    = 31 
> Hiearchical P-Frames  = 0 
> Hiearchical B-Frames  = 0 
> SVC Temporal Scalability = 0 
> Number of Temporal Layers = 0 
> Outband SPSPPS   = 0 
> Video codec profile  = 100 
> Stereo 3D Mode   = 0 
> Stereo 3D Enable   = No 
> Number slices per Frame = 1 
> Encoder Preset   = 3 - ; 
> YUV Input Format   = NV12 (Semi-Planar UV Interleaved) Pitch Linear 
> NVENC API Interface  = 2 - CUDA 
> Map Resource API Demo  = No 
> Dynamic Resolution Change = 0 
> Dynamic Bitrate Change = 0 
Input Filesize: 236390400 bytes 
Input Filename: HeavyHandIdiot.3sec.yuv 
Auto-Detected (nvAppEncoderParams.endFrame = 135 frames) 


>> GetNumberEncoders() has detected 8 CUDA capable GPU device(s) << 
    [ GPU #0 - < GRID K1 > has Compute SM 3.0, NVENC Available ] 
    [ GPU #1 - < GRID K1 > has Compute SM 3.0, NVENC Available ] 
    [ GPU #2 - < GRID K1 > has Compute SM 3.0, NVENC Available ] 
    [ GPU #3 - < GRID K1 > has Compute SM 3.0, NVENC Available ] 
    [ GPU #4 - < GRID K1 > has Compute SM 3.0, NVENC Available ] 
    [ GPU #5 - < GRID K1 > has Compute SM 3.0, NVENC Available ] 
    [ GPU #6 - < GRID K1 > has Compute SM 3.0, NVENC Available ] 
    [ GPU #7 - < GRID K1 > has Compute SM 3.0, NVENC Available ] 

>> InitCUDA() has detected 8 CUDA capable GPU device(s)<< 
    [ GPU #0 - < GRID K1 > has Compute SM 3.0, Available NVENC ] 
    [ GPU #1 - < GRID K1 > has Compute SM 3.0, Available NVENC ] 
    [ GPU #2 - < GRID K1 > has Compute SM 3.0, Available NVENC ] 
    [ GPU #3 - < GRID K1 > has Compute SM 3.0, Available NVENC ] 
    [ GPU #4 - < GRID K1 > has Compute SM 3.0, Available NVENC ] 
    [ GPU #5 - < GRID K1 > has Compute SM 3.0, Available NVENC ] 
    [ GPU #6 - < GRID K1 > has Compute SM 3.0, Available NVENC ] 
    [ GPU #7 - < GRID K1 > has Compute SM 3.0, Available NVENC ] 

>> Select GPU #0 - < GRID K1 > supports SM 3.0 and NVENC 
NVENC error at src/CNVEncoder.cpp:1282 code=15(NVENC indicates that an invalid struct version was used by the client) "nvStatus" 

SO,我得到這個錯誤:

在SRC/CNVEncoder.cpp

NVENC錯誤:1282碼= 15(NVENC表示 無效結構版本,使用由客戶端) 「nvStatus」

,這是行1282和之後CNVEncoder和nvStatus是NVENCSTATUS結構:

checkNVENCErrors(nvStatus); 

    if (nvStatus == NV_ENC_SUCCESS) 
    { 
     return S_OK; 
    } 

什麼是NVENCSTATUS結構?我怎麼能找到它?

+0

看看nvStatus的值是在哪裏設置的(1282行之前的地方) – axon

回答

0

當你評論1208行,編譯之後,問題就解決了,你可以毫無問題地運行示例,但是現在我不怎麼克服這個錯誤而沒有評論它。

// checkNVENCErrors(nvStatus); 

    if (nvStatus == NV_ENC_SUCCESS) 
    { 
     return S_OK; 
    } 

我只是做了它

0

這是一個已知的問題,並在最新的NVENC軟件包已被更新。

使用隨樣品提供的nvidia驅動程序,那麼你不應該有這個問題。

+0

對於許多使用更新內核的人來說,這不是一個選項。 nvidia失敗。 – totaam

相關問題