Bug#910486: ffmpeg: vaapi encoding does not work
Control: reassign -1 i965-va-drivers 2.2.0+dfsg1-2
Control: tags -1 + moreinfo
Hi
On 2018-10-07 04:47:06, ghost wrote:
> Package: ffmpeg
> Version: 7:4.0.2-2+b1
> Severity: normal
>
> Dear Maintainer,
>
> * What led up to the situation?
> I am just following the FFmpeg wiki https://trac.ffmpeg.org/wiki/Hardware/VAAPI, and things are not working as documented.
>
> * What exactly did you do
> I first tried the simplest one which should "allows the decoder to work standlone to make decoding faster without any additional options", then I tried to feed the vaapi pixfmt to a vaapi encoder, but both are not working (see below)
>
> * What was the outcome of this action?
> For the first one:
> $ ffmpeg -hwaccel vaapi -i cut.mp4 -c:v libx264 output.mp4 -y
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'cut.mp4':
> Metadata:
> major_brand : isom
> minor_version : 512
> compatible_brands: isomiso2avc1mp41
> encoder : Lavf57.56.101
> Duration: 00:00:19.99, start: 0.008005, bitrate: 451 kb/s
> Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt470bg/unknown/unknown), 640x480 [SAR 1:1 DAR 4:3], 361 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 2k tbc (default)
> Metadata:
> handler_name : VideoHandler
> Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 111 kb/s (default)
> Metadata:
> handler_name : SoundHandler
> Stream mapping:
> Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
> Stream #0:1 -> #0:1 (aac (native) -> aac (native))
> Press [q] to stop, [?] for help
> [AVHWFramesContext @ 0x7fc91004d2c0] Failed to read image from surface 0x4000018: 20 (the requested function is not implemented).
This is most certainly a bug in the i965-va-driver when disabling the non-free
parts. Does evertyhing work as expected if you replace i965-va-driver with
i965-va-driver-shaders (from non-free)?
> [h264 @ 0x55b57872fd00] Failed to transfer data to output frame: -5.
> Error while processing the decoded data for stream #0:0
> [aac @ 0x55b57872e4c0] Qavg: 1227.311
> [aac @ 0x55b57872e4c0] 2 frames left in the queue on closing
> Conversion failed!
>
> For the second one:
> $ ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -i cut.mp4 -c:v h264_vaapi output.mp4
> ...
> Stream mapping:
> Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_vaapi))
> Stream #0:1 -> #0:1 (aac (native) -> aac (native))
> Press [q] to stop, [?] for help
> ffmpeg: i965_encoder.c:1692: intel_enc_hw_context_init: Assertion `encoder_context->mfc_context' failed.
As above
>
> * What outcome did you expect instead?
> They should work...
>
> FWIW:
>
> The input is a short video cut in h264. Hardware decoding looks fine:
> $ ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -i cut.mp4 -f null -
> ...
> Stream mapping:
> Stream #0:0 -> #0:0 (h264 (native) -> wrapped_avframe (native))
> Stream #0:1 -> #0:1 (aac (native) -> pcm_s16le (native))
> Press [q] to stop, [?] for help
> Output #0, null, to 'pipe:':
> Metadata:
> major_brand : isom
> minor_version : 512
> compatible_brands: isomiso2avc1mp41
> encoder : Lavf58.12.100
> Stream #0:0(und): Video: wrapped_avframe, vaapi_vld, 640x480 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc (default)
> Metadata:
> handler_name : VideoHandler
> encoder : Lavc58.18.100 wrapped_avframe
> Stream #0:1(und): Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s (default)
> Metadata:
> handler_name : SoundHandler
> encoder : Lavc58.18.100 pcm_s16le
> frame= 542 fps=0.0 q=-0.0 Lsize=N/A time=00:00:20.08 bitrate=N/A speed= 194x
> video:284kB audio:3444kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
>
> $ lspci | grep Graphic
> 00:02.0 VGA compatible controller: Intel Corporation HD Graphics 5500 (rev 09)
>
> $ vainfo
> libva info: VA-API version 1.2.0
> libva info: va_getDriverName() returns 0
> libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
> libva info: Found init function __vaDriverInit_1_2
> libva info: va_openDriver() returns 0
> vainfo: VA-API version: 1.2 (libva 2.2.0)
> vainfo: Driver version: Intel i965 driver for Intel(R) Broadwell - 2.2.0
> vainfo: Supported profile and entrypoints
> VAProfileMPEG2Simple : VAEntrypointVLD
> VAProfileMPEG2Simple : VAEntrypointEncSlice
> VAProfileMPEG2Main : VAEntrypointVLD
> VAProfileMPEG2Main : VAEntrypointEncSlice
> VAProfileH264ConstrainedBaseline: VAEntrypointVLD
> VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
> VAProfileH264Main : VAEntrypointVLD
> VAProfileH264Main : VAEntrypointEncSlice
> VAProfileH264High : VAEntrypointVLD
> VAProfileH264High : VAEntrypointEncSlice
> VAProfileH264MultiviewHigh : VAEntrypointVLD
> VAProfileH264StereoHigh : VAEntrypointVLD
> VAProfileVC1Simple : VAEntrypointVLD
> VAProfileVC1Main : VAEntrypointVLD
> VAProfileVC1Advanced : VAEntrypointVLD
> VAProfileJPEGBaseline : VAEntrypointVLD
> VAProfileVP8Version0_3 : VAEntrypointVLD
>
> $ apt list i965-va-driver
> i965-va-driver/testing,now 2.2.0+dfsg1-2 amd64 [Installed, auto]
>
>
>
> -- System Information:
> Debian Release: buster/sid
> APT prefers testing-debug
> APT policy: (500, 'testing-debug'), (500, 'testing')
> Architecture: amd64 (x86_64)
>
> Kernel: Linux 4.18.0-1-amd64 (SMP w/4 CPU cores)
> Locale: LANG=zh_CN.UTF-8, LC_CTYPE=zh_CN.UTF-8 (charmap=UTF-8), LANGUAGE=zh_CN:zh (charmap=UTF-8)
> Shell: /bin/sh linked to /bin/dash
> Init: systemd (via /run/systemd/system)
> LSM: AppArmor: enabled
>
> Versions of packages ffmpeg depends on:
> ii libavcodec58 7:4.0.2-2+b1
> ii libavdevice58 7:4.0.2-2+b1
> ii libavfilter7 7:4.0.2-2+b1
> ii libavformat58 7:4.0.2-2+b1
> ii libavresample4 7:4.0.2-2+b1
> ii libavutil56 7:4.0.2-2+b1
> ii libc6 2.27-6
> ii libpostproc55 7:4.0.2-2+b1
> ii libsdl2-2.0-0 2.0.8+dfsg1-4
> ii libswresample3 7:4.0.2-2+b1
> ii libswscale5 7:4.0.2-2+b1
>
> ffmpeg recommends no packages.
>
> Versions of packages ffmpeg suggests:
> pn ffmpeg-doc <none>
>
> -- no debconf information
>
--
Sebastian Ramacher
Reply to: