Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
21 Views

On what conditions whill MFXVideoENCODE_Query() return -9(MFX_ERR_NOT_FOUND)

When run commands below, ffmpeg and libav(both are built from mainline) always fail with 'Selected ratecontrol mode is not supported by the QSV runtime. Choose a different mode.'.

./avconv -loglevel verbose -y -i src_55A16E560CEFFFF7F98994D086A220F0.mp4 -c:a copy -q 20 -c:v hevc_qsv -load_plugin hevc_hw out_qsv.mp4
ffmpeg   -loglevel verbose -y -i src_55A16E560CEFFFF7F98994D086A220F0.mp4 -c:a copy -q 20 -c:v hevc_qsv -load_plugin hevc_hw out_qsv.mp4


$ ./avconv -loglevel verbose -y -i ~/chenglinhuang/videos/617547/src_55A16E560CEFFFF7F98994D086A220F0.mp4 -c:a copy -q 20 -c:v hevc_qsv -load_plugin hevc_hw out_qsv.mp4
avconv version v13_dev0-1115-g59cee42, Copyright (c) 2000-2017 the Libav developers
  built on May  9 2017 06:05:44 with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-4)
  configuration: --disable-avplay --disable-avserver --extra-libs='-pthread -lstdc++ -lm -lrt -ldl -lnuma' --enable-gpl --enable-version3 --disable-shared --enable-static --disable-debug --disable-indev=sndio --disable-outdev=sndio --enable-libmp3lame --enable-libvorbis --enable-libx264 --enable-libx265 --enable-libmfx --enable-nonfree --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --enable-debug --disable-optimizations
  libavutil     56.  1. 1 / 56.  1. 1
  libavcodec    58.  3. 1 / 58.  3. 1
  libavformat   58.  0. 0 / 58.  0. 0
  libavdevice   57.  0. 0 / 57.  0. 0
  libavfilter    7.  0. 0 /  7.  0. 0
  libavresample  4.  0. 0 /  4.  0. 0
  libswscale     5.  0. 0 /  5.  0. 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x3ed0ac0] Unknown UUID found: 0xbe7acfcb97a942e89c71999491e3afac
[h264 @ 0x3ee2d40] Reinit context to 1920x1088, pix_fmt: 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/mm/chenglinhuang/videos/617547/src_55A16E560CEFFFF7F98994D086A220F0.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41
    creation_time   : 2017-04-28 15:39:04
  Duration: 00:33:27.72, start: 0.000000, bitrate: 2019 kb/s
    Stream #0:0(eng): Video: h264 (Main) [avc1 / 0x31637661]
      yuv420p, tv, bt709/bt709/bt709
      1920x1080 (0x0), 1698 kb/s
      25 fps, 25k tbn (default)
    Metadata:
      creation_time   : 2017-04-28 15:39:04
      handler_name    : Alias Data Handler
      encoder         : AVC Coding
    Stream #0:1(eng): Audio: aac (LC) [mp4a / 0x6134706D]
      48000 Hz, stereo, fltp, 317 kb/s (default)
    Metadata:
      creation_time   : 2017-04-28 15:39:04
      handler_name    : Alias Data Handler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> hevc (hevc_qsv))
  Stream #0:1 -> #0:1 (copy)
Press ctrl-c to stop encoding
[h264 @ 0x3ee86c0] Reinit context to 1920x1088, pix_fmt: 0
[buffer @ 0x403c0e0] w:1920 h:1080 pixfmt:yuv420p tb:1/25000 sar:0/1
[fps @ 0x3ee4d80] fps=25/1
[buffersink @ 0x3ee9b00] auto-inserting filter 'auto-inserted fifo 0' between the filter 'fps for output stream 0:0' and the filter 'output stream 0:0'
[format @ 0x40e3160] auto-inserting filter 'auto-inserted scaler 0' between the filter 'Parsed filter 0 null' and the filter 'format'
[scale @ 0x40c18a0] w:1920 h:1080 fmt:yuv420p -> w:1920 h:1080 fmt:nv12 flags:0x4
[hevc_qsv @ 0x3f3c3a0] No device available for encoder (device type qsv for codec hevc_qsv).
[hevc_qsv @ 0x3f3c3a0] Initialized an internal MFX session using hardware accelerated implementation
[hevc_qsv @ 0x3f3c3a0] Using the constant quantization parameter (CQP) ratecontrol method
[hevc_qsv @ 0x3f3c3a0] MFXVideoENCODE_Query() = -9
[hevc_qsv @ 0x3f3c3a0] Selected ratecontrol mode is not supported by the QSV runtime. Choose a different mode.
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
[fps @ 0x3ee4d80] 0 frames in, 0 frames out; 0 frames dropped, 0 frames duplicated.



-------------------------------------------------------

I can't find any document  describes  exact meaning of MFX_ERR_NOT_FOUND.

I have checked the system(Media Server Studio 2017 R2, CentOS 7.2 “Gold”) with sample_encode and sample_decode.

Any help would be greatly appreciated

$ ./sample_decode h265 -i ../content/test_stream.265 -o test.yuv -hw
plugin_loader.h :170 [INFO] Plugin was loaded from GUID: { 0x33, 0xa6, 0x1c, 0x0b, 0x4c, 0x27, 0x45, 0x4c, 0xa8, 0xd8, 0x5d, 0xde, 0x75, 0x7c, 0x6f, 0x8e } (Intel (R) Media SDK HW plugin for HEVC DECODE)
pretending that stream is 30fps one
pretending that aspect ratio is 1:1
libva info: VA-API version 0.99.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so
libva info: Found init function __vaDriverInit_0_32
libva info: va_openDriver() returns 0
Decoding Sample Version 7.0.16053634


Input video	HEVC
Output format	NV12
Input:
  Resolution	176x96
  Crop X,Y,W,H	0,0,0,0
Output:
  Resolution	176x96
Frame rate	30.00
Memory type		system
MediaSDK impl		hw
MediaSDK version	1.21

Decoding started
Frame number:  101, fps: 2419.509, fread_fps: 0.000, fwrite_fps: 0.000
Decoding finished
plugin_loader.h :196 [INFO] MFXBaseUSER_UnLoad(session=0x0x7fa74d4d01e0), sts=0
$ ./sample_encode h265 -i ../content/test_stream_176x96.yuv -o test.265 -h 176 -w 96 -hw
plugin_loader.h :170 [INFO] Plugin was loaded from GUID: { 0x6f, 0xad, 0xc7, 0x91, 0xa0, 0xc2, 0xeb, 0x47, 0x9a, 0xb6, 0xdc, 0xd5, 0xea, 0x9d, 0xa3, 0x47 } (Intel (R) Media SDK HW plugin for HEVC ENCODE)
libva info: VA-API version 0.99.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so
libva info: Found init function __vaDriverInit_0_32
libva info: va_openDriver() returns 0
Encoding Sample Version 7.0.16053634

Input file format	YUV420
Output video		HEVC
Source picture:
	Resolution	96x176
	Crop X,Y,W,H	0,0,96,176
Destination picture:
	Resolution	96x176
	Crop X,Y,W,H	0,0,96,176
Frame rate	30.00
Bit rate(Kbps)	366
Gop size	0
Ref dist	0
Ref number	0
Idr Interval	0
Target usage	balanced
Memory type	system
Media SDK impl		hw
Media SDK version	1.21

Processing started
Frame number: 101
plugin_loader.h :196 [INFO] MFXBaseUSER_UnLoad(session=0x0x7ff2b9e32d90), sts=0

Processing finished

sample_encode and sample_decode work find, so I think the sdk has been installed correctly.

----------------------------------

The system configuration:

$ cat /etc/centos-release
CentOS Linux release 7.2.1511 (Core)

$ uname -a
Linux multimedia 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux


$ lscpu 
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 94
Model name:            Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
Stepping:              3
CPU MHz:               800.000
BogoMIPS:              6382.03
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              6144K
NUMA node0 CPU(s):     0-3


$ vainfo 
error: can't connect to X server!
libva info: VA-API version 0.99.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so
libva info: Found init function __vaDriverInit_0_32
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.99 (libva 1.67.0.pre1)
vainfo: Driver version: 16.5.1.59511-ubit
vainfo: Supported profile and entrypoints
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	<unknown entrypoint>
      VAProfileH264ConstrainedBaseline:	<unknown entrypoint>
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264Main               :	<unknown entrypoint>
      VAProfileH264Main               :	<unknown entrypoint>
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264High               :	<unknown entrypoint>
      VAProfileH264High               :	<unknown entrypoint>
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointEncPicture
      VAProfileVP8Version0_3          :	VAEntrypointEncSlice
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileVP8Version0_3          :	<unknown entrypoint>
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileVP9Profile0            :	<unknown entrypoint>
      <unknown profile>               :	VAEntrypointVideoProc
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileNone                   :	<unknown entrypoint>


$ python ~/sys_analyzer_linux.py 
--------------------------
Hardware readiness checks:
--------------------------
 [ OK ] Processor name: Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
--------------------------
OS readiness checks:
--------------------------
 [ OK ] GPU visible to OS
--------------------------
Intel(R) Media Server Studio Install:
--------------------------
 [ OK ] user in video group
 [ OK ] libva.so.1 found
 [ OK ] vainfo reports valid codec entry points
 [ OK ] /dev/dri/renderD128 connects to Intel i915

--------------------------
Media SDK Plugins available:
(for more info see /opt/intel/mediasdk/plugins/plugins.cfg)
--------------------------
    H264LA Encoder 	= 588f1185d47b42968dea377bb5d0dcb4
    VP8 Decoder 	= f622394d8d87452f878c51f2fc9b4131
    HEVC Decoder 	= 33a61c0b4c27454ca8d85dde757c6f8e
    HEVC Encoder 	= 6fadc791a0c2eb479ab6dcd5ea9da347
--------------------------
Component Smoke Tests:
--------------------------
 [ OK ] Media SDK HW API level:1.21
 [ OK ] Media SDK SW API level:1.21
 [ OK ] OpenCL check:platform:Intel(R) OpenCL GPU OK CPU OK

 

 

 

0 Kudos
1 Reply
Highlighted
Beginner
21 Views

I have confirmed that the hevc_qsv encoder(GUID 6fadc791a0c2eb479ab6dcd5ea9da347) has been loaded successfully.

0 Kudos