Jump to content

Transcoding/Encoding Issue (QNAP, NVIDIA Quadro P2000, IPTV)


embyaner

Recommended Posts

embyaner

Hi guys,

 

I am having an issue with transcoding/encoding an UHD IPTV stream using H.265/HEVC.

Hardware acceleration is not used when encoding the stream in H.264/AVC.

 

System Type: QNAP x86_64 with AMD processor

Graphics Card: NVIDIA Quadro P2000 (NVENC + NVDEC)

Used version of emby: 4.4.0.16-beta (same behaviour with the current stable)

 

Decoding HEVC seems to work:

>>>>>>  FindVideoDecoder - MediaType: hevc, Mode: Custom
Info    Checking: 'NVDEC Quadro P2000 - H.265 (HEVC)'
Info    Check successful - selecting 'NVDEC Quadro P2000 - H.265 (HEVC)'

But encoding does not use hardware acceleration:

>>>>>>  FindVideoEncoder - Media: h264, UseHardwareCodecs: True, Mode: Custom
Info    Checking: 'NVENC Quadro P2000 - H.264 (AVC)'

Warning: The required encoding level (AvcLevel52) is greater than the maximum level supported by the client (AvcLevel51)
NoMatch Encoder does not support the minimum requied encoding level (AvcLevel52)
NoMatch Encoder does not match
Info    Checking: 'libx264 Software Encoder'

Warning: The required encoding level (AvcLevel52) is greater than the maximum level supported by the client (AvcLevel51)
Info    Check successful - selecting 'libx264 Software Encoder'

...

>>>>>>  Processing Plan
Info    Name                                        CanDoInHardware      WillDoInHardware     Reason                                  
Info    NVDEC Quadro P2000 - H.265 (HEVC)        >> True                 True                 Hardware Codec                           
Info    VideoInput                               >> False                False                The sw pipeline builder does not supp... 
Info    ColorConversion                          >> False                False                                                         
Info    VideoOutput                              >> False                False                Not a hardware encoder                   
Info    libx264 Software Encoder                 >> False                False                Software Codec                           


>>>>>>  Projected Processing Formats
Info    Previous                HW-Context   Format       SW-Format       Next
Info    hevc_cuvid           >> -            yuv420p10    yuv420p10    >> format
Info    format               >> -            yuv420p      yuv420p      >> 

Additionally some stream details:

{"Protocol":"Http","Id":"123","Path":"http://127.0.0.1:8096/LiveTv/LiveStreamFiles/123/stream.ts","Type":"Default","Container":"mpegts","IsRemote":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":false,"IsInfiniteStream":true,"RequiresOpening":true,"RequiresClosing":true,"LiveStreamId":"123","RequiresLooping":false,"SupportsProbing":false,"MediaStreams":[{"Codec":"hevc","ColorTransfer":"arib-std-b67","ColorPrimaries":"bt2020","ColorSpace":"bt2020nc","TimeBase":"1/90000","CodecTimeBase":"1/50","VideoRange":"HDR","DisplayTitle":"4K HEVC","IsInterlaced":false,"BitRate":30000000,"RefFrames":1,"IsDefault":false,"IsForced":false,"Height":2160,"Width":3840,"AverageFrameRate":50,"RealFrameRate":50,"Profile":"Main 10","Type":"Video","AspectRatio":"16:9","Index":-1,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Protocol":"File","PixelFormat":"yuv420p10le","Level":153,"IsAnamorphic":false},{"Codec":"eac3","TimeBase":"1/90000","CodecTimeBase":"1/48000","DisplayTitle":"Dolby Digital+ stereo","IsInterlaced":false,"ChannelLayout":"stereo","BitRate":224000,"Channels":2,"SampleRate":48000,"IsDefault":false,"IsForced":false,"Type":"Audio","Index":-1,"IsExternal":false,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Protocol":"File","Level":0}],"Formats":[],"Bitrate":30224000,"RequiredHttpHeaders":{"User-Agent":"VLC/3.0.1"},"ReadAtNativeFramerate":false}

The complete log is attached.

 

Do I need to change a configuration? I think hardware encoding should work in this case, because the P2000 supports it.

 

Decoder
NVDEC Quadro P2000 - MPEG-2
NVDEC Quadro P2000 - VC-1
NVDEC Quadro P2000 - H.264 (AVC)
NVDEC Quadro P2000 - H.265 (HEVC)
NVDEC Quadro P2000 - VP9

Encoder
NVENC Quadro P2000 - H.264 (AVC)
NVENC Quadro P2000 - H.265 (HEVC)

Thanks in advance!

Link to comment
Share on other sites

embyaner

Did you follow the setup guide, and if so, what did you do?

After installing the graphics card into the QNAP NAS, the drivers have automatically been installed by the OS. NvKernelDriver and NVIDIA GPU Driver. Everything (OS, NvKernelDriver, NVIDIA GPU Driver) is updated to the most recent version.

Emby discovered the graphics card and listed it on the transcoding settings page. All checkboxes are checked, so the graphics card should be used for every available codec as encoder/decoder. And it is working for streams of local files. Okay, at least sometimes I had to disable subtitles to prevent stuttering.

 

Example

>>>>>> FindVideoEncoder - Media: h264, UseHardwareCodecs: True, Mode: Custom
Info Checking: 'NVENC Quadro P2000 - H.264 (AVC)'
Info Check successful - selecting 'NVENC Quadro P2000 - H.264 (AVC)'

>>>>>> FindVideoDecoder - MediaType: hevc, Mode: Custom
Info Checking: 'NVDEC Quadro P2000 - H.265 (HEVC)'
Info Check successful - selecting 'NVDEC Quadro P2000 - H.265 (HEVC)'

>>>>>>  Processing Plan
Info    Name                                        CanDoInHardware      WillDoInHardware     Reason                                  
Info    NVDEC Quadro P2000 - H.265 (HEVC)        >> True                 True                 Hardware Codec                           
Info    VideoInput                               >> True                 True                 Matching hardware context                
Info    ColorConversion                          >> True                 True                                                          
Info    VideoOutput                              >> True                 True                 Hardware encoder                         
Info    NVENC Quadro P2000 - H.264 (AVC)         >> True                 True                 Hardware Codec                           

>>>>>>  Projected Processing Formats
Info    Previous                HW-Context   Format       SW-Format       Next
Info    hevc_cuvid           >> CUDA         cuda         yuv420p10    >> scale_cuda
Info    scale_cuda           >> CUDA         cuda         nv12         >> setsar
Info    setsar               >> CUDA         cuda         nv12         >> 

So, the only two things mentioned in the setup guide, installing the driver and maybe disable subtitles, is done.

 

The graphics card is detected and chosen for streaming local files. So maybe that IPTV stream has something Emby does not want the graphics card to do - or is not supported by the GPU?

Link to comment
Share on other sites

embyaner

Looks good, thank you!

 
>>>>>>  FindVideoEncoder - Media: h264, UseHardwareCodecs: True, Mode: Custom
Info    Checking: 'NVENC Quadro P2000 - H.264 (AVC)'
Info    Check successful - selecting 'NVENC Quadro P2000 - H.264 (AVC)'

>>>>>>  FindVideoDecoder - MediaType: hevc, Mode: Custom
Info    Checking: 'NVDEC Quadro P2000 - H.265 (HEVC)'
Info    Check successful - selecting 'NVDEC Quadro P2000 - H.265 (HEVC)'

Warning: No filter behavior available for filter setsar

>>>>>>  Processing Plan
Info    Name                                        CanDoInHardware      WillDoInHardware     Reason                                  
Info    NVDEC Quadro P2000 - H.265 (HEVC)        >> True                 True                 Hardware Codec                           
Info    VideoInput                               >> True                 True                 Matching hardware context                
Info    ColorConversion                          >> True                 True                                                          
Info    VideoOutput                              >> True                 True                 Hardware encoder                         
Info    NVENC Quadro P2000 - H.264 (AVC)         >> True                 True                 Hardware Codec                           

>>>>>>  Projected Processing Formats
Info    Previous                HW-Context   Format       SW-Format       Next
Info    hevc_cuvid           >> CUDA         cuda         yuv420p10    >> scale_cuda
Info    scale_cuda           >> CUDA         cuda         nv12         >> setsar
Info    setsar               >> CUDA         cuda         nv12         >> 
Edited by embyaner
  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...