У меня есть проект, который использует FFmpeg для декодирования видеопотоков, и я хочу использовать аппаратное декодирование, где это возможно.Согласно этому ответу , использование ff_find_hwaccel
и друзей в новых сборках FFmpeg не рекомендуется.
В ответе указано, что ff_find_hwaccel
устарело.Я хочу знать, как работает новый метод выделения аппаратно ускоренного декодера.Это делается автоматически?Могу ли я просто передать hwaccel
в AvDictionary в качестве третьего варианта avcodec_open2
, или мне нужно сделать что-то более сложное?
В настоящее время код для выделения AVCodecContext
выглядит следующим образом:
auto video_codec = avcodec_find_decoder(codec_id);
auto context = avcodec_alloc_context3(video_codec);
auto retcode = avcodec_open2(context, video_codec, nullptr);
с проверкой ошибок, конечно.
Затем я вставляю AVPackets в декодер, используя avcodec_decode_video2
.