Инициализация hwaccel_context в libavcodec

Я пытаюсь получить видео с аппаратным ускорением, работающее с использованием libavcodec. Я использую hw_decode.c Например, в качестве отправной точки, и я не могу заставить его работать. и то и другое AVCodecContext->hwaccel а также AVCodecContext->hwaccel_context являются NULL

Я верю, что какая-то часть hwaccel работает, как я вижу выход

libva info: VA-API version 0.39.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_0_39
libva info: va_openDriver() returns 0

Что так же, как когда я бегу

ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i input.mpg -f null -

но сразу после этого я получаю следующее сообщение об ошибке

[h264 @ 0x1df2cc0] Hardware acceleration context (hwaccel_context) does not exist.
Failed to get HW surface format.
[h264 @ 0x1df2cc0] decode_slice_header error
[h264 @ 0x1df2cc0] no frame!

Я посмотрел на аналогичный вопрос и ответ на это показывает, как получить AVCodecContext->hwaccel, Но даже с AVCodecContext->hwaccel будучи действительным декодером VAApih264, я все еще получаю то же сообщение об ошибке.

Как мне инициализировать AVCodecContext->hwaccel_context и после этого, что еще мне нужно сделать, чтобы видео с аппаратным ускорением работало в ffmpeg?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]