dxva2 硬件解码器支持哪些 h264 配置文件

Posted

技术标签:

【中文标题】dxva2 硬件解码器支持哪些 h264 配置文件【英文标题】:which h264 profile supported by dxva2 hardaware decoder 【发布时间】:2018-05-16 10:43:41 【问题描述】:

我有解码实时 h264 摄像机流并显示的代码。我用的是 ffmpeg dxvae 解码器。

问题: avcodec_send_packet 返回负错误码。

我尝试过的:

    我有转储流数据包并保存在 h264 文件中。然后 ffmpeg.exe -hwaccel dxva2 -threads 1 -i output.h264 -f null - -benchmark 命令验证并抛出错误 dxva2_vld 格式设置失败:hwaccel 初始化返回错误。

    我发现 h264 文件具有基线配置文件。做基线资料 dxva2 解码器不支持?

    我可以用 vlc 播放器播放文件。

我还使用上面的命令解码了高配置的 h264 视频,它工作正常。

请帮助解决这个问题。提前致谢。

【问题讨论】:

如果vlc播放器能够播放文件,并不意味着它使用硬件解码播放文件。 vlc 在某些 h264 文件上回退到软件解码。我遇到了一些类似的 h264 文件,通常是一些旧的 mp4。我可以看看这些文件的特征,看看为什么不能使用硬件解码 【参考方案1】:

这取决于您的 GPU 硬件能力。例如,这里是 NVidia 功能(来自 2016 年 6 月的编解码器 sdk):

另外,对于 NVidia,如果您检查此链接 Nvidia PureVideo ,某些宽度无法解码:

请注意,所有功能集 B 硬件都无法解码以下宽度的 H.264:769-784、849-864、929-944、1009-1024、1793-1808、1873-1888、1953-1968、2033- 2048 像素。

【讨论】:

以上是关于dxva2 硬件解码器支持哪些 h264 配置文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 DX11 和 DXVA2

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

基于FFmpeg的Dxva2硬解码及Direct3D显示

iOS8系统H264视频硬件编解码说明

iOS8系统H264视频硬件编解码说明

Microsoft Media Foundation 中的 h264 无损模式