Actions
Bug #5403
closedVAAPI not working. Always getting Unable to open vaapi encoder. yuv420p is invalid or not supported.
Status:
Rejected
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
2018-12-06
Due date:
% Done:
0%
Estimated time:
Found in version:
4.2.6,4.2.7
Affected Versions:
Description
Hi,
I'm using the latest TVHeadend 4.2.7 on a AlpineLinux based system. I'm trying to transcode a stream by using the hardware VAAPI transcoder (I have an Intel N4200 CPU), but it seems to be failing in TVHeadend.
The errors I'm getting are these:
hevc_vaapi: H.265/HEVC (VAAPI): 2018-12-06 15:34:13.662 transcode: 000A: 1:H264 1920x1080 ==> HEVC 1920x1080 (hevc_vaapi) 2018-12-06 15:34:13.662 transcode: 000A: 2:AAC-LATM ==> Passthrough 2018-12-06 15:34:13.688 transcode: 000A: Using preset medium 2018-12-06 15:34:13.688 libav: Specified pixel format yuv420p is invalid or not supported 2018-12-06 15:34:13.688 transcode: 000A: Unable to open hevc_vaapi encoder 2018-12-06 15:34:14.671 libav: Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead. h264_vaapi: H.264/AVC (VAAPI): 2018-12-06 15:36:37.885 transcode: 000B: 1:H264 1920x1080 ==> H264 1920x1080 (h264_vaapi) 2018-12-06 15:36:37.885 transcode: 000B: 2:AAC-LATM ==> Passthrough 2018-12-06 15:36:37.904 transcode: 000B: Using preset medium 2018-12-06 15:36:37.905 libav: Specified pixel format yuv420p is invalid or not supported 2018-12-06 15:36:37.905 transcode: 000B: Unable to open h264_vaapi encoder 2018-12-06 15:36:38.856 libav: Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead. vp8_vaapi: VP8 (VAAPI): 2018-12-06 15:39:00.538 transcode: 000C: 1:H264 1920x1080 ==> VP8 1920x1080 (vp8_vaapi) 2018-12-06 15:39:00.538 transcode: 000C: 2:AAC-LATM ==> Passthrough 2018-12-06 15:39:00.561 libav: Specified pixel format yuv420p is invalid or not supported 2018-12-06 15:39:00.561 transcode: 000C: Unable to open vp8_vaapi encoder 2018-12-06 15:39:01.521 libav: Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
Running VAINFO shows this:
vainfo error: can't connect to X server! libva info: VA-API version 1.2.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/lib/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) Broxton - 2.2.0 vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264Main : VAEntrypointEncSliceLP VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileH264High : VAEntrypointEncSliceLP VAProfileH264MultiviewHigh : VAEntrypointVLD VAProfileH264MultiviewHigh : VAEntrypointEncSlice VAProfileH264StereoHigh : VAEntrypointVLD VAProfileH264StereoHigh : VAEntrypointEncSlice VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileNone : VAEntrypointVideoProc VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileVP8Version0_3 : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice VAProfileHEVCMain10 : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointVLD
Also running ffmpeg manually with vaapi works correctly with this command:
ffmpeg -vaapi_device /dev/dri/renderD128 -hwaccel vaapi -hwaccel_output_format vaapi -i input.ts -an -vf 'format=nv12|vaapi,hwupload' -c:v h264_vaapi -qp 25 output.mp4
Is there something special that has to be enabled in order to have a working VAAPI profile to use Hardware transcoding in TVHeadend? Or is there any way to manually specify a piped command for transcoding in TVHeadend?
Files
Actions