【问题标题】:Can't decode HEVC video with DXVA2 and ffmpeg无法使用 DXVA2 和 ffmpeg 解码 HEVC 视频
【发布时间】:2018-03-31 08:45:54
【问题描述】:

我不能使用 DXVA2 硬件加速来解码带有 ffmpeg 的 HEVC 视频。 DXVA2 for H.264 工作正常。

我从 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】:

    我已经通过添加功能解决了这个问题:

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

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

    【讨论】:

    • 谢谢,我试过这个解决方案,但它对我不起作用。 HEVC 解码失败。
    猜你喜欢
    • 1970-01-01
    • 2016-04-08
    • 2016-10-24
    • 2016-04-15
    • 2022-01-21
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多