无法使用DXVA2和ffmpeg解码HEVC视频

问题描述 投票:0回答:1

我无法使用DXVA2硬件加速来使用ffmpeg解码HEVC视频。适用于H.264的DXVA2工作正常。

我从ffmpeg源代码编译了一个官方示例hw_decode.c:

https://github.com/FFmpeg/FFmpeg/blob/master/doc/examples/hw_decode.c

当我调用av_send_packet()时,它执行在AVCodecContext-> get_format中分配的回调,并且仅为HEVC视频返回AV_PIX_FMT_YUV420P,而不是为所有H.264视频返回AV_PIX_FMT_DXVA2_VLD。所以硬件解码不起作用。

HEVC的软件解码没有问题。

MPC-HC使用DXVA2播放精细的HEVC视频(CPU负载较低,任务管理器显示GPU详细信息中视频解码器的工作)。我的显卡是Geforce 1060。

ffmpeg hevc
1个回答
0
投票

我通过添加功能来解决这个问题:

  enum AVPixelFormat get_hw_format(AVCodecContext *ctx,
    const enum AVPixelFormat *pix_fmts)
   {
    return AV_PIX_FMT_DXVA2_VLD;
   }

上述函数的分配地址pCodecContext-> get_format = get_hw_format;

© www.soinside.com 2019 - 2024. All rights reserved.