Opened 3 years ago

Last modified 8 months ago

#6347 new defect

[h264_qsv @ 0x22fc7a0] Warning in encoder initialization: partial acceleration (4)

Reported by: Hett Owned by:
Priority: normal Component: avcodec
Version: unspecified Keywords: qsv
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

h264_qsv encoder is to very slow (slower than libx264 on same CPU)

Mybe it related with warning:

[h264_qsv @ 0x38027a0] Warning in encoder initialization: partial acceleration (4)

What does it mean?

binary builded with MediaServerStudioEssentials2017R2.tar.gz on core 4.4

All output:

root@DS5098:~# ./ffmpeg-3.3/ffmpeg -v verbose -i porno2.mp4 -strict -2 -y -vcodec h264_qsv -acodec aac -f mp4 -profile:v baseline -force_fps -look_ahead 0 -movflags faststart out.mp4
ffmpeg version 3.3 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
  configuration: --disable-shared --enable-static --enable-gpl --enable-nonfree --enable-fontconfig --enable-libfreetype --enable-libmp3lame --enable-librtmp --enable-libx264 --enable-version3 --enable-ffplay --disable-doc --disable-ffserver --enable-pthreads --enable-filters --enable-libvorbis --enable-libtheora --enable-runtime-cpudetect --enable-libass --enable-bzlib --enable-zlib --prefix=/opt/ffmpeg_qsv/ --enable-libmfx
  libavutil      55. 58.100 / 55. 58.100
  libavcodec     57. 89.100 / 57. 89.100
  libavformat    57. 71.100 / 57. 71.100
  libavdevice    57.  6.100 / 57.  6.100
  libavfilter     6. 82.100 /  6. 82.100
  libswscale      4.  6.100 /  4.  6.100
  libswresample   2.  7.100 /  2.  7.100
  libpostproc    54.  5.100 / 54.  5.100
Routing option strict to both codec and muxer layer
[h264 @ 0x37d9760] Reinit context to 1280x720, pix_fmt: yuv420p
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'porno2.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2016-06-22T19:04:31.000000Z
  Duration: 00:13:00.89, start: 0.000000, bitrate: 1582 kb/s
    Stream #0:0(und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, bt709, left), 1280x720 [SAR 1:1 DAR 16:9], 1388 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 191 kb/s (default)
    Metadata:
      creation_time   : 2016-06-22T19:04:35.000000Z
      handler_name    : IsoMedia File Produced by Google, 5-11-2011
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_qsv))
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[h264 @ 0x3806220] Reinit context to 1280x720, pix_fmt: yuv420p
[graph 0 input from stream 0:0 @ 0x3b83be0] w:1280 h:720 pixfmt:yuv420p tb:1/30 fr:30/1 sar:1/1 sws_param:flags=2
[auto_scaler_0 @ 0x3d2c520] w:iw h:ih flags:'bicubic' interl:0
[format @ 0x3d2bba0] auto-inserting filter 'auto_scaler_0' between the filter 'Parsed_null_0' and the filter 'format'
[auto_scaler_0 @ 0x3d2c520] w:1280 h:720 fmt:yuv420p sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x4
[h264_qsv @ 0x38027a0] Initialized an internal MFX session using hardware accelerated implementation
[h264_qsv @ 0x38027a0] Using the average variable bitrate (AVBR) ratecontrol method
[h264_qsv @ 0x38027a0] Warning in encoder initialization: partial acceleration (4)
[h264_qsv @ 0x38027a0] profile: baseline; level: 32
[h264_qsv @ 0x38027a0] GopPicSize: 250; GopRefDist: 1; GopOptFlag: closed ; IdrInterval: 0
[h264_qsv @ 0x38027a0] TargetUsage: 4; RateControlMethod: AVBR
[h264_qsv @ 0x38027a0] TargetKbps: 1000; Accuracy: 0; Convergence: 0
[h264_qsv @ 0x38027a0] NumSlice: 0; NumRefFrame: 1
[h264_qsv @ 0x38027a0] RateDistortionOpt: OFF
[h264_qsv @ 0x38027a0] RecoveryPointSEI: unknown IntRefType: 0; IntRefCycleSize: 0; IntRefQPDelta: 0
[h264_qsv @ 0x38027a0] MaxFrameSize: 0; MaxSliceSize: 0;
[h264_qsv @ 0x38027a0] BitrateLimit: unknown; MBBRC: unknown; ExtBRC: unknown
[h264_qsv @ 0x38027a0] Trellis: auto
[h264_qsv @ 0x38027a0] RepeatPPS: unknown; NumMbPerSlice: 0; LookAheadDS: unknown
[h264_qsv @ 0x38027a0] AdaptiveI: unknown; AdaptiveB: unknown; BRefType: auto
[h264_qsv @ 0x38027a0] MinQPI: 0; MaxQPI: 0; MinQPP: 0; MaxQPP: 0; MinQPB: 0; MaxQPB: 0
[h264_qsv @ 0x38027a0] Entropy coding: CAVLC; MaxDecFrameBuffering: 0
[h264_qsv @ 0x38027a0] NalHrdConformance: OFF; SingleSeiNalUnit: ON; VuiVclHrdParameters: OFF VuiNalHrdParameters: OFF
[graph_1_in_0_1 @ 0x3a93960] tb:1/44100 samplefmt:fltp samplerate:44100 chlayout:0x3
Output #0, mp4, to 'out.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    encoder         : Lavf57.71.100
    Stream #0:0(und): Video: h264 (h264_qsv), 1 reference frame ([33][0][0][0] / 0x0021), nv12(progressive, left), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 1000 kb/s, 30 fps, 15360 tbn, 30 tbc (default)
    Metadata:
      handler_name    : VideoHandler
      encoder         : Lavc57.89.100 h264_qsv
    Side data:
      cpb: bitrate max/min/avg: 0/0/1000000 buffer size: 0 vbv_delay: -1
    Stream #0:1(eng): Audio: aac (LC) ([64][0][0][0] / 0x0040), 44100 Hz, stereo, fltp, delay 1024, 128 kb/s (default)
    Metadata:
      creation_time   : 2016-06-22T19:04:35.000000Z
      handler_name    : IsoMedia File Produced by Google, 5-11-2011
      encoder         : Lavc57.89.100 aac
[mp4 @ 0x3803120] Starting second pass: moving the moov atom to the beginning of the file.24x
frame=  565 fps= 97 q=-0.0 Lsize=    2632kB time=00:00:19.04 bitrate=1132.3kbits/s speed=3.28x
video:2317kB audio:297kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.688684%
Input file #0 (porno2.mp4):
  Input stream #0:0 (video): 573 packets read (2498482 bytes); 566 frames decoded;
  Input stream #0:1 (audio): 820 packets read (457384 bytes); 820 frames decoded (839680 samples);
  Total: 1393 packets (2955866 bytes) demuxed
Output file #0 (out.mp4):
  Output stream #0:0 (video): 565 frames encoded; 565 packets muxed (2372316 bytes);
  Output stream #0:1 (audio): 820 frames encoded (839680 samples); 821 packets muxed (304240 bytes);
  Total: 1386 packets (2676556 bytes) muxed
[aac @ 0x3805900] Qavg: 1260.849
Exiting normally, received signal 2.

Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.

Change History (8)

comment:1 Changed 2 years ago by kwsk

Same here cpu usage very high
It maybe not use hwaccel

comment:2 Changed 2 years ago by cehoyos

Is the issue reproducible with current FFmpeg git head?

comment:3 Changed 2 years ago by heleppkes

Sounds to me like your hardware is not capable of full hardware acceleration. Providing details about your hardware might help.

comment:4 Changed 2 years ago by kwsk

No problem in 3.1 and 3.2
I think this is bug of 3.3

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.4.4.47109-ubit
vainfo: Supported profile and entrypoints
      VAProfileH264Baseline           :	VAEntrypointEncSlice
      VAProfileH264Baseline           :	<unknown entrypoint>
      VAProfileH264Baseline           :	<unknown entrypoint>
      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               :	VAEntrypointEncSlice
      VAProfileVP9Profile0            :	VAEntrypointEncSlice
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile0            :	<unknown entrypoint>
      <unknown profile>               :	VAEntrypointVideoProc
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileNone                   :	<unknown entrypoint>

comment:5 Changed 2 years ago by milanc

I have same issue with MSS 2017 R3 and last ffmpeg N-87031-gf3913dc.
With older ffmpeg version N-82007-g1a9513b QSV works.
Hardware is capable of full hardware acceleration, this is any bug in ffmpeg. :/

Last edited 2 years ago by milanc (previous) (diff)

comment:6 Changed 2 years ago by milanc

PLS DELETE (duplicate)

Last edited 2 years ago by milanc (previous) (diff)

comment:7 follow-up: Changed 9 months ago by zoolog

any news about issue?

comment:8 in reply to: ↑ 7 Changed 8 months ago by lizhong1008

Replying to zoolog:

any news about issue?

Current command line as above is to use software decoding + qsv HW encoding.

It is remembered to use pure qsv transcoding pipeline: qsv decoding + qsv encoding. Thus will be helpful for performance. More details please refer https://trac.ffmpeg.org/wiki/Hardware/QuickSync#FullExamples

If you think it is a regression, please help to use git bisect to find out the regression commit ID.

Note: See TracTickets for help on using tickets.