Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.

sample_encode h265 fails

Ike_S_
Beginner
1,139 Views

I am trying to use sample_encode.exe binary to generate h265 output and I am getting errors.
I am using the sample video file from your web site (176x96) renamed as 176_96.yuv
This works (and generates correct output):

     sample_encode h264 -i 176_96.yuv -o 1.264 -w 176 -h 96

This fails:

      sample_encode h265 -i 176_96.yuv -o 1.265 -w 176 -h 96
      Return on error: error code -3, .\src\pipeline_encode.cpp       530
      Return on error: error code -3, .\src\pipeline_encode.cpp       1061
      Return on error: error code -3, .\src\pipeline_encode.cpp       991
      Return on error: error code 1,  .\src\sample_encode.cpp 420

This also fails:

       sample_encode h265 -hevc_encoder_plugin 1 -i 176_96.yuv -o 1.264 -w 176 -h 96
       Return on error: error code -9, .\src\pipeline_encode.cpp       952
       Return on error: error code 1,  .\src\sample_encode.cpp 420

0 Kudos
11 Replies
Anthony_P_Intel
Employee
1,139 Views

Hi,

Support for H.265 (HEVC) is not built into the library that comes with "Intel Media SDK 2014 for Clients".  Instead it is supported as a "plug-in" to the architecture.  The "Intel® Media SDK 2014 HEVC Software Pack" is sold separately, but you can download a 30-day trial from the "Media Solutoins Portal"   ( https://software.intel.com/media-solutions-portal ).

Once the plug-in is installed, the Media SDK API (and sample_encode ) can be used.

 

0 Kudos
Ike_S_
Beginner
1,139 Views

I have done that. I installed Intel® Media SDK 2014 HEVC Software Pack, which in turned installed the 2014 Media SDK.

I am running sample_encode.exe from C:\Program Files\Intel\Media SDK 2014 HEVC Software Pack Evaluation\samples\sample_encode\win32

I am getting a slightly different error from sample_decode.exe using the test_stream.265 file that you posted on your web site

What am I doing wrong? What is the correct command line for encoding?

0 Kudos
Anthony_P_Intel
Employee
1,139 Views

Sorry, I should have mentioned in first response...

When you use the 'h265' parameter, you also need to use the "-hevc_encoder_plugin 1" parameter.

sample_encode.exe h265 -hevc_encoder_plugin 1 -i 176_96.yuv -o 1.265 -w 176 -h 96

There is a "readme-encode" document in the "sample_encode" folder that mentions this.

Also, If you are using the 64-bit version of the "sample_encode" in the default installation location ("C;\Program Files\Intel\...") the location is only allows writing of files with administrator privileges.  This would affect all codecs, but it is may be cause of other issue you are seeing.

 

0 Kudos
Ike_S_
Beginner
1,139 Views

I already tried adding "-hevc_encoder_plugin 1" to the command line. As you can see in my original post, it still fails, although the error is slightly different:

 sample_encode h265 -hevc_encoder_plugin 1 -i 176_96.yuv -o 1.264 -w 176 -h 96
       Return on error: error code -9, .\src\pipeline_encode.cpp       952
       Return on error: error code 1,  .\src\sample_encode.cpp 420

I only tried the 32-bit version of the encoder. And it is not a problem creating files, because I can create H264 files in the sample place.

0 Kudos
Ike_S_
Beginner
1,139 Views

After stepping through the sample_encode source code, when I run it with this command line:
    sample_encode h265 -hevc_encoder_plugin 1 -i 176_96.yuv -o 1.264 -w 176 -h 96

The sample fails quickly on this line with -9:

if (pParams->IsUseHEVCEncoderPlugin)
{
   MSDK_MEMCPY(m_UID_HEVC.Data, HEVC_ENCODER_UID, 16);
   sts = MFXVideoUSER_Load(m_mfxSession, &m_UID_HEVC, pParams->HEVCPluginVersion);

}

MFXVideoUSER_Load doesn't even seem to look for the plugin DLL. I ran Process Monitor, which allows you to see which files or registry entries are accessed, and there is no attempt to load the plugin DLL or any of the registry settings containing its location.

I would expect you to look for HKEY_LOCAL_MACHINE\SOFTWARE\Intel\MediaSDK\Plugin\{2fca9974-9fdb-49ae-b121-a5b63ef568f7} to find the DLL location and then try to load the DLL. I am not sure what is wrong, since I can't find the source for MFXVideoUSER_Load anywhere.

0 Kudos
Ike_S_
Beginner
1,139 Views

Bah. I found out the error was caused by an older version of libmfxsw32.dll (version 1.6). And the HEVC plugin requires version 1.8, so it wasn't loaded. And since the error occurred when the session was created, I didn't see that anything went wrong.

It's good that you gave us the source for the libmfx library. So, false alarm - it's working now (both encode and decode).

0 Kudos
yiling_w_
Beginner
1,139 Views

hi,i encounter the same issue as you, could you pass me the effective libmfxsw32.dll file? thanks!

my email:wuyiling@avcon.com.cn

0 Kudos
Anthony_P_Intel
Employee
1,139 Views

Hi, please notice that Intel® Media SDK 2014 R2 for Clients with API 1.9 is now available on Media Solutions Portal.

The libmfxsw32.dll that was part of Intel® Media SDK 2014 for Clients added support for API 1.8.

We recommended that all new development use the latest SDK, but if you are using newer features this is an understandable requirement.

0 Kudos
yiling_w_
Beginner
1,139 Views

hi, tony

follow your instruction,install 2014 media SDK but not 2013 version is OK now, thanks.

 

 

 

0 Kudos
ramya_s_
Beginner
1,139 Views

Hi, 

Is there a way to output the encoded bitstream in the sample_hevc_gaa application ? 

0 Kudos
Igor_S_
Beginner
1,139 Views

I also have problem with sample_encode. I use trial version of "Intel(R) Media Server Studio 2017" and sample files from "Samples for Intel(R) Media Server Studio 2017 for Windows 6.0.0.193". Now I want to use software encoding. Thus I changed pParams->bUseHWLib in sample_decode.cpp:
...
// set default implementation
pParams->bUseHWLib = false;

sample_encode.exe h265 -i test_stream_176x96.yuv -o test_stream.265 -w 176  -h 96 -sw

I got the following error:
ERROR: No free surfaces in pool (during long period)
Return on error: error code -4, src\pipeline_encode.cpp 1443
Return on error: error code 1,  src\sample_encode.cpp   903

If I use sample_encode with h264 parameters like
sample_encode.exe h264 -i test_stream_176x96.yuv -o test_stream.264 -w 176  -h 96 -sw
it works fine.

What is wrong with software h265 encoder?

Thanks,
Igor.

0 Kudos
Reply