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

时间:2018-03-31 08:45:54

标签: ffmpeg hevc

我无法使用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中分配的回调,并且对于所有H.264视频,仅返回HEVC视频的AV_PIX_FMT_YUV420P而不是AV_PIX_FMT_DXVA2_VLD。所以硬件解码不起作用。

HEVC的软件解码没有问题。

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

1 个答案:

答案 0 :(得分: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;

相关问题