Jump to content

Server does not detect hardware decoding support h265 on i5 Haswell qs4600


mholin

Recommended Posts

mholin

Hello everybody.

 

I'm facing this issue that emby server 4.1.026 does only use software decoder for HEVC during transcode process.

This leads to about 80-90% cpu usage for ffmpeg.

 

I tried to install the lastest Intel 4600 drivers dated march 2019. CPU is i5-4570t

 

but emby is not willing to see hw acceleration for decode h265.

 

Log from embyserver.txt:

2019-04-23 12:42:33.451 Info QuickSyncCodecProvider: ProcessRun 'ffdetect_qsvencdec' Process exited with code 0
2019-04-23 12:42:33.544 Info QuickSyncCodecProvider: Adapter #0: 'Intel® HD Graphics 4600' Id:1042 (Driver: 1310739.988103, Vendor: 32902)
2019-04-23 12:42:33.604 Info QuickSyncDx11CodecProvider: ffdetect -hide_banner -show_program_version -loglevel 48 -show_error -show_log 40 qsvencdec -print_format json

2019-04-23 12:42:33.604 Info QuickSyncDx11CodecProvider: ProcessRun 'ffdetect_qsvencdec' Execute: C:\Users\mh\AppData\Roaming\Emby-Server\system\ffdetect.exe -hide_banner -show_program_version -loglevel 48 -show_error -show_log 40 qsvencdec -print_format json

 

 

Log from ffmpeg-transcode contains this block:

"Debug: DXGI Factory created",
"Debug: Detected 2 video adapters.",
"Info: Adapter #0: 'Intel® HD Graphics 4600' Id:1042 (Driver: , Vendor: 32902)",
"Debug: Device successfully created",
"Debug: VideoDevice successfully created",
"Info: ee27417f-5e28-4e65-beea-1d26b508adc9: DXVA2_ModeMPEG2_VLD MPEG-2 variable-length decoder - mpeg2video",
"Info: bf22ad00-03ea-4690-8077-473346209b7e: DXVA2_ModeMPEG2_IDCT MPEG-2 inverse discrete cosine transform - mpeg2video",
"Info: 1b81bea4-a0c7-11d3-b984-00c04f2e73c5: DXVA2_ModeVC1_D2010 VC-1 variable-length decoder (2010) - vc1",
"Info: e07ec519-e651-4cd6-ac84-1370cceec851: DXVA2_Intel_VC1_ClearVideo_2 VC-1 variable-length decoder 2 (Intel) - vc1",
"Info: bcc5db6d-a2b6-4af0-ace4-adb1f787bc89: DXVA2_Intel_VC1_ClearVideo VC-1 variable-length decoder (Intel) - vc1",
"Info: 1b81be94-a0c7-11d3-b984-00c04f2e73c5: DXVA2_ModeWMV9_C Windows Media Video 9 inverse discrete cosine transform - wmv3",
"Info: 1b81bea2-a0c7-11d3-b984-00c04f2e73c5: DXVA2_ModeVC1_C VC-1 inverse discrete cosine transform - vc1",
"Info: 1b81be68-a0c7-11d3-b984-00c04f2e73c5: DXVA2_ModeH264_E H.264 variable-length decoder, no film grain technology - h264",
"Info: d79be8da-0cf1-4c81-b82a-69a4e236f43d: DXVA2_ModeH264_VLD_Stereo_Progressive_NoFGT H.264 MVC variable-length decoder, stereo, progressive - h264",
"Info: f9aaccbb-c2b6-4cfc-8779-5707b1760552: DXVA2_ModeH264_VLD_Stereo_NoFGT H.264 MVC variable-length decoder, stereo - h264",
"Info: 705b9d82-76cf-49d6-b7e6-ac8872db013c: DXVA2_ModeH264_VLD_Multiview_NoFGT H.264 MVC variable-length decoder, multiview - h264",
"Info: 91cd2d6e-897b-4fa1-b0d7-51dc88010e0a: - ",
"Info: 97688186-56a8-4094-b543-fc9daaa49f4b: - ",
"Info: c346e8a3-cbed-4d27-87cc-a70eb4dc8c27: - ",
"Info: ffc79924-5eaf-4666-a736-06190f281443: - ",
"Info: f416f7bd-098a-4cf1-a11b-ce54959ca03d: - ",
"Info: bf44dacd-217f-4370-a383-d573bc56707e: - ",
"Info: 2364d06a-f67f-4186-aed0-62b99e1784f1: - ",
"Info: 8c56eb1e-2b47-466f-8d33-7dbcd63f3df2: - ",
"Info: 5b11d51b-2f4c-4452-bcc3-09f2a1160cc0: DXVA2_ModeHEVC_VLD_Main H.265 variable-length decoder, Main profile - hevc",
"Info: 49761bec-4b63-4349-a5ff-87ffdf088466: - ",
"Info: CheckDecoderDetails: MediaType: mpeg2video",
"Debug: DXVA2_ModeMPEG2_VLD - ColorFormat #0: NV12 => nv12",

[some lines deleted]

"Debug: Max Resolution: 4096x2160",
"Info: >>>> Adding video decoder for type: hevc",
"Debug: Dispose DecoderService",
"Debug: DecoderService disposed",
"Debug: Dispose Dx11Device",
"Debug: Dx11Device disposed",
"Debug: Dispose DXGI Factory",
"Debug: DXGI Factory disposed"

 

DXDiag executed on my machine tells me this is DX12 but DX11 and DX11.1 features a included:

 

DirectX Version: DirectX 12

Display Tab 1: No problems found.

Card name: Intel® HD Graphics 4600

Manufacturer: Intel Corporation

Chip type: Intel® HD Graphics

Family DAC type: Internal

Device Type: Full Device (POST)

Device Key: Enum\PCI\VEN_8086&DEV_0412&SUBSYS_30A317AA&REV_06

Device Status: 0180200A [DN_DRIVER_LOADED|DN_STARTED|DN_DISABLEABLE|DN_NT_ENUMERATOR|DN_NT_DRIVER]

Device Problem Code: No Problem

Driver File Version: 20.19.0015.5063 (English)

Driver Version: 20.19.15.5063

DDI Version: 12

Feature Levels: 11_1,11_0,10_1,10_0,9_3,9_2,9_1

Driver Model: WDDM 2.0

Graphics Preemption: Primitive

ompute Preemption: Thread group

 

 

any ideas how I can get the hardware decoding working here?

 

thanks

Michael

Link to comment
Share on other sites

PenkethBoy

A cpu of that vintage does not support H265 via quicksync

 

I have a i7 4790s and H265 decode is not possible

 

Hence why Emby does not support it  :P

Link to comment
Share on other sites

mholin

hm. I'm still wondering, that the VLC player can playback my sample video of GameOfThrones encoded in h265 with only 20% cpu power on this cpu.

 

I've found this post:

 

https://software.intel.com/en-us/forums/intel-media-sdk/topic/703284

 

looks like some plugin has to be include during compiling process with Media SDK

 

MFX_PLUGINID_HEVCD_HW plugin

 

can please somebody add this plugin to the next release?

I'm willing to support testing...  :rolleyes:

 

thanks Michael

Link to comment
Share on other sites

PenkethBoy

the difference in cpu % is that emby trys to do the transcode as fast as possible - unless you use the throttle option - so a comparison with VLC is not very valid

 

The cpu does not have the hw decoder/encoder for H265 - but can do it via the cpu which is what you are seeing

 

Only way around this is to get/use newer hardware - if you can afford that or is an option to you

Link to comment
Share on other sites

mholin

I have throtteling enabled. I guess this is why I have only 70% cpu in ffmpeg.

 

I'm fine with the system in h264 world.

But h265 seems to be not supported by emby server, maybe do to the miss of this plugin mentioned above.

If you deal with Intel Media SDK for windows version, please somebody may try out this plugin in the next release.

 

There are lots of thousands Intel 4th gen cpus out there which could benefit.

 

thank you

Michael

Link to comment
Share on other sites

PenkethBoy

H265 IS supported by Emby - IF - your hardware supports it

 

With your cpu thats not the case and adding software plugins is not going to change that

Link to comment
Share on other sites

mholin

Hello PenkethBoy

 

I'm are not sure if this is true.

Several sources claim this:

 

https://en.wikipedia.org/wiki/Intel_Graphics_Technology#Capabilities_(GPU_video_acceleration)

 

 5cbf5d9d38b1f_haswell1.jpg

 

 

 

https://forum.kodi.tv/showthread.php?tid=215305

 

5cbf5f5694927_haswell2.jpg

 

 

 

and, most interesting, the extract from the ffmpeg Logfile, when emby-server asks videodriver, what it can handle:

 

"Info: Adapter #0: 'Intel® HD Graphics 4600' Id:1042 (Driver: , Vendor: 32902)",
"Debug: Device successfully created",
"Debug: VideoDevice successfully created",
"Info: ee27417f-5e28-4e65-beea-1d26b508adc9: DXVA2_ModeMPEG2_VLD MPEG-2 variable-length decoder - mpeg2video",
"Info: bf22ad00-03ea-4690-8077-473346209b7e: DXVA2_ModeMPEG2_IDCT MPEG-2 inverse discrete cosine transform - mpeg2video",
"Info: 1b81bea4-a0c7-11d3-b984-00c04f2e73c5: DXVA2_ModeVC1_D2010 VC-1 variable-length decoder (2010) - vc1",
"Info: e07ec519-e651-4cd6-ac84-1370cceec851: DXVA2_Intel_VC1_ClearVideo_2 VC-1 variable-length decoder 2 (Intel) - vc1",
"Info: bcc5db6d-a2b6-4af0-ace4-adb1f787bc89: DXVA2_Intel_VC1_ClearVideo VC-1 variable-length decoder (Intel) - vc1",
"Info: 1b81be94-a0c7-11d3-b984-00c04f2e73c5: DXVA2_ModeWMV9_C Windows Media Video 9 inverse discrete cosine transform - wmv3",
"Info: 1b81bea2-a0c7-11d3-b984-00c04f2e73c5: DXVA2_ModeVC1_C VC-1 inverse discrete cosine transform - vc1",
"Info: 1b81be68-a0c7-11d3-b984-00c04f2e73c5: DXVA2_ModeH264_E H.264 variable-length decoder, no film grain technology - h264",
"Info: d79be8da-0cf1-4c81-b82a-69a4e236f43d: DXVA2_ModeH264_VLD_Stereo_Progressive_NoFGT H.264 MVC variable-length decoder, stereo, progressive - h264",
"Info: f9aaccbb-c2b6-4cfc-8779-5707b1760552: DXVA2_ModeH264_VLD_Stereo_NoFGT H.264 MVC variable-length decoder, stereo - h264",
"Info: 705b9d82-76cf-49d6-b7e6-ac8872db013c: DXVA2_ModeH264_VLD_Multiview_NoFGT H.264 MVC variable-length decoder, multiview - h264",
"Info: 91cd2d6e-897b-4fa1-b0d7-51dc88010e0a: - ",
"Info: 97688186-56a8-4094-b543-fc9daaa49f4b: - ",
"Info: c346e8a3-cbed-4d27-87cc-a70eb4dc8c27: - ",
"Info: ffc79924-5eaf-4666-a736-06190f281443: - ",
"Info: f416f7bd-098a-4cf1-a11b-ce54959ca03d: - ",
"Info: bf44dacd-217f-4370-a383-d573bc56707e: - ",
"Info: 2364d06a-f67f-4186-aed0-62b99e1784f1: - ",
"Info: 8c56eb1e-2b47-466f-8d33-7dbcd63f3df2: - ",
"Info: 5b11d51b-2f4c-4452-bcc3-09f2a1160cc0: DXVA2_ModeHEVC_VLD_Main H.265 variable-length decoder, Main profile - hevc",
"Info: 49761bec-4b63-4349-a5ff-87ffdf088466: - ",
"Info: CheckDecoderDetails: MediaType: mpeg2video",
"Debug: DXVA2_ModeMPEG2_VLD - ColorFormat #0: NV12 => nv12",

 

 

so according to

 

https://software.intel.com/en-us/forums/intel-media-sdk/topic/703284

 

only one more option to include one more plugin is needed during preparing the code with Media SDK.

 

5cbf62e0d2e2f_haswell3.jpg

 

 

@@dev team: please try this!!

 

bye Michael

Edited by mholin
  • Like 1
Link to comment
Share on other sites

KarlDag

Hello PenkethBoy

 

I'm are not sure if this is true.

Several sources claim this:

 

https://en.wikipedia.org/wiki/Intel_Graphics_Technology#Capabilities_(GPU_video_acceleration)

 

5cbf5d9d38b1f_haswell1.jpg

 

 

 

https://forum.kodi.tv/showthread.php?tid=215305

 

5cbf5f5694927_haswell2.jpg

 

 

 

and, most interesting, the extract from the ffmpeg Logfile, when emby-server asks videodriver, what it can handle:

 

"Info: Adapter #0: 'Intel® HD Graphics 4600' Id:1042 (Driver: , Vendor: 32902)",

"Debug: Device successfully created",

"Debug: VideoDevice successfully created",

"Info: ee27417f-5e28-4e65-beea-1d26b508adc9: DXVA2_ModeMPEG2_VLD MPEG-2 variable-length decoder - mpeg2video",

"Info: bf22ad00-03ea-4690-8077-473346209b7e: DXVA2_ModeMPEG2_IDCT MPEG-2 inverse discrete cosine transform - mpeg2video",

"Info: 1b81bea4-a0c7-11d3-b984-00c04f2e73c5: DXVA2_ModeVC1_D2010 VC-1 variable-length decoder (2010) - vc1",

"Info: e07ec519-e651-4cd6-ac84-1370cceec851: DXVA2_Intel_VC1_ClearVideo_2 VC-1 variable-length decoder 2 (Intel) - vc1",

"Info: bcc5db6d-a2b6-4af0-ace4-adb1f787bc89: DXVA2_Intel_VC1_ClearVideo VC-1 variable-length decoder (Intel) - vc1",

"Info: 1b81be94-a0c7-11d3-b984-00c04f2e73c5: DXVA2_ModeWMV9_C Windows Media Video 9 inverse discrete cosine transform - wmv3",

"Info: 1b81bea2-a0c7-11d3-b984-00c04f2e73c5: DXVA2_ModeVC1_C VC-1 inverse discrete cosine transform - vc1",

"Info: 1b81be68-a0c7-11d3-b984-00c04f2e73c5: DXVA2_ModeH264_E H.264 variable-length decoder, no film grain technology - h264",

"Info: d79be8da-0cf1-4c81-b82a-69a4e236f43d: DXVA2_ModeH264_VLD_Stereo_Progressive_NoFGT H.264 MVC variable-length decoder, stereo, progressive - h264",

"Info: f9aaccbb-c2b6-4cfc-8779-5707b1760552: DXVA2_ModeH264_VLD_Stereo_NoFGT H.264 MVC variable-length decoder, stereo - h264",

"Info: 705b9d82-76cf-49d6-b7e6-ac8872db013c: DXVA2_ModeH264_VLD_Multiview_NoFGT H.264 MVC variable-length decoder, multiview - h264",

"Info: 91cd2d6e-897b-4fa1-b0d7-51dc88010e0a: - ",

"Info: 97688186-56a8-4094-b543-fc9daaa49f4b: - ",

"Info: c346e8a3-cbed-4d27-87cc-a70eb4dc8c27: - ",

"Info: ffc79924-5eaf-4666-a736-06190f281443: - ",

"Info: f416f7bd-098a-4cf1-a11b-ce54959ca03d: - ",

"Info: bf44dacd-217f-4370-a383-d573bc56707e: - ",

"Info: 2364d06a-f67f-4186-aed0-62b99e1784f1: - ",

"Info: 8c56eb1e-2b47-466f-8d33-7dbcd63f3df2: - ",

"Info: 5b11d51b-2f4c-4452-bcc3-09f2a1160cc0: DXVA2_ModeHEVC_VLD_Main H.265 variable-length decoder, Main profile - hevc",

"Info: 49761bec-4b63-4349-a5ff-87ffdf088466: - ",

"Info: CheckDecoderDetails: MediaType: mpeg2video",

"Debug: DXVA2_ModeMPEG2_VLD - ColorFormat #0: NV12 => nv12",

 

 

so according to

 

https://software.intel.com/en-us/forums/intel-media-sdk/topic/703284

 

only one more option to include one more plugin is needed during preparing the code with Media SDK.

 

5cbf62e0d2e2f_haswell3.jpg

 

 

@@dev team: please try this!!

 

bye Michael

You're mixing in playback with quick sync. They are not the same thing.

 

The first gen that partially supported h265 in hardware QUICKSYNC was Skylake. Many Lake is the first gen with 100% hardware support for hevc 10bit.

 

In your case, if you really need It, go get a RX570, you'll get great hardware acceleration for about 130US$.

Edited by KarlDag
Link to comment
Share on other sites

mholin

5cc055f3c23db_IMG_20190424_141459.jpg

 

 

this is some kind of luxury problem: above is my private data center. I first tried to run emby directly on the DS1813. But it's CPU is only able to direct streaming. For most forms of transcoding, it is to weak.

 

Than I bought this Tiny Lenovo M93P with the i5-4570. 

 

This comes with SSD is really nice for hosting the emby server software. But - currently - no hardware based h265 decode, so I run into 70-90% CPU usage here.

 

A more recent Tiny PC with gen6 Intel is about 400€ which I cannot spend on emby transcoding.

 

but maybe some guy from the emby team reads all this long postings above and does try this miracle plugin switch mentionend in the intel developer forum.

 

thanks

 

Michael 

Link to comment
Share on other sites

Gerrit507

You see a higher CPU load with emby because it's decoding and encoding. VLC is only decoding when you play a movie. Both programs use ffmpeg so the performance should be equivalent.

 

According to the log you posted the GPU and the included version of ffmpeg support DXVA2 decoding and not quicksync. Are you able to choose DXVA2 h265 decoder?

  • Like 1
Link to comment
Share on other sites

@@mholin - Could you please post your full hw detection log?

 

 

Let me add that you've been mixing up a few things:

 

DXVA2 is something totally different from QuickSync and these do not always support the same set of codecs.

When you see a DXVA2 HEVC Decoder, it doesn't necessarily mean that a QuickSync HEVC decoder is available.

 

Regarding QuickSync.

On Windows, the HEVC-Hardware decoder plugin is part of the Intel graphics driver and we're loading it automatically.

But if the hardware does not support it, it obviously doesn't work.

We do not support QuickSync software implementations (plugins). When there's no hardware support, we're using our normal software implementations instead.

 

Regarding CPU load when comparing to VLC, please refer to the post from @@Gerrit507 above.

Also, you need to consider that Emby is transcoding as fast as possible by default (without throttling) while VLC is only decoding for playback speed.

Link to comment
Share on other sites

mholin

ok guys, I guess I have to take it.

thanks for the explanations.

 

I'm going to get a HP Prodesk 600 G2 tiny PC with Intel i5-6500T Skylake

This should be able to hardware decode and even encode h265.

 

bye Michael

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...