Hi,
recently I've started experimenting with HEVC plugin, which provide software HEVC decoder and encoder implementations. I've install Professional edition, recompile kernel with included patchset, and run test:
~# /opt/intel/mediasdk/samples/_bin/x64/sample_multi_transcode -i::h265 /opt/intel/mediasdk/samples/_bin/content/test_stream.265 -o::h265 test_out.h265 -sw -pe 2fca99749fdb49aeb121a5b63ef568f7 Multi Transcoding Sample Version 8.2.25.982 plugin_loader.h :172 [INFO] Plugin was loaded from GUID: { 0x15, 0xdd, 0x93, 0x68, 0x25, 0xad, 0x47, 0x5e, 0xa3, 0x4e, 0x35, 0xf3, 0xf5, 0x42, 0x17, 0xa6 } (Intel (R) Media SDK plugin for HEVC DECODE) plugin_loader.h :172 [INFO] Plugin was loaded from GUID: { 0x2f, 0xca, 0x99, 0x74, 0x9f, 0xdb, 0x49, 0xae, 0xb1, 0x21, 0xa5, 0xb6, 0x3e, 0xf5, 0x68, 0xf7 } (Intel (R) Media SDK plugin for HEVC ENCODE) Pipeline surfaces number (DecPool): 12 MFX SOFTWARE Session 0 API ver 1.25 parameters: Input video: HEVC Output video: HEVC Session 0 was NOT joined with other sessions Transcoding started .. Transcoding finished Common transcoding time is 1.46311 sec ------------------------------------------------------------------------------- *** session 0 PASSED (MFX_ERR_NONE) 1.46296 sec, 101 frames -i::h265 /opt/intel/mediasdk/samples/_bin/content/test_stream.265 -o::h265 test_out.h265 -sw -pe 2fca99749fdb49aeb121a5b63ef568f7 ------------------------------------------------------------------------------- The test PASSED plugin_loader.h :198 [INFO] MFXBaseUSER_UnLoad(session=0x0x55fc454a0bc0), sts=0 plugin_loader.h :198 [INFO] MFXBaseUSER_UnLoad(session=0x0x55fc454a0bc0), sts=0
So everything looks fine, and I've started to transcode my own files. And first sample gives me dramatically poor results: transcoding speed was getting around 3-5 fps.
~# /opt/intel/mediasdk/samples/_bin/x64/sample_multi_transcode -sw -i::h265 in.h265 -o::h265 out.h265 -b 18000 -MaxKbps 20000 -n 100 -u veryfast Multi Transcoding Sample Version 8.2.25.982 plugin_loader.h :172 [INFO] Plugin was loaded from GUID: { 0x15, 0xdd, 0x93, 0x68, 0x25, 0xad, 0x47, 0x5e, 0xa3, 0x4e, 0x35, 0xf3, 0xf5, 0x42, 0x17, 0xa6 } (Intel (R) Media SDK plugin for HEVC DECODE) plugin_loader.h :172 [INFO] Plugin was loaded from GUID: { 0x2f, 0xca, 0x99, 0x74, 0x9f, 0xdb, 0x49, 0xae, 0xb1, 0x21, 0xa5, 0xb6, 0x3e, 0xf5, 0x68, 0xf7 } (Intel (R) Media SDK plugin for HEVC ENCODE) Pipeline surfaces number (DecPool): 15 MFX SOFTWARE Session 0 API ver 1.25 parameters: Input video: HEVC Output video: HEVC Session 0 was NOT joined with other sessions Transcoding started . Transcoding finished Common transcoding time is 19.0315 sec ------------------------------------------------------------------------------- *** session 0 PASSED (MFX_ERR_NONE) 19.0313 sec, 100 frames -sw -i::h265 in.h265 -o::h265 out.h265 -b 18000 -MaxKbps 20000 -n 100 -u veryfast ------------------------------------------------------------------------------- The test PASSED plugin_loader.h :198 [INFO] MFXBaseUSER_UnLoad(session=0x0x55d8bc1d6b50), sts=0 plugin_loader.h :198 [INFO] MFXBaseUSER_UnLoad(session=0x0x55d8bc1d6b50), sts=0
I think I have some error with my setup, but could not figured out where. On same CPU libx265 gives me around 25-30 fps ultrafast 3840x2160 transcoding, and I expect to get at least close results from MediaSDK HEVC plugin.
The input file: https://yadi.sk/d/mUOCI9shJQI68Q
I've tried to convert size to 1920x1080, convert input HEVC to 8 bits, select 25 fps input files, forcibly select chroma mode, direct select GUID of plugin. Also notice that I use only software implementation, without HW acceleration and CPU without quicksync support, but as I understand it should be fine.
My system: ubuntu 16.04.5, kernel 4.4.111 with patchset, MediaSDK 2018R1 Professional Edition for Linux.
Could you please help?