我正在尝试在 Windows 应用程序中输出 H.264 视频。我对 FFMPEG 比较熟悉,并且我已经成功地让它在 SDL 窗口中播放 H.264 没有问题。不过,我真的会从使用硬件加速中受益(可能通过 DXVA2)
我正在阅读原始 H264 视频,没有容器,没有音频……只有原始视频(没有 B 帧,只有 I 和 P)。此外,我知道将使用此应用程序的所有系统都具有至少支持 VP3 的 Nvidia GPU。考虑到这组假设,我希望能走捷径,让它变得简单而不是笼统,让它适用于我的特定场景。
到目前为止,我知道我需要通过调用 ff_find_hwaccel 填充 hwaccel 成员来在编解码器上下文中设置硬件加速。我的计划是看看 Media Player Classic Home Cinema,它在解码 H.264 时使用 FFMPEG 支持 DXVA2 方面做得很好。但是,代码很大,我不确定在哪里看。我可以在 h264.c 中找到调用 ff_find_hwaccel 的地方,但我想知道我应该在哪里看。
更具体地说,我想知道为了让 DXVA2 通过 FFMPEG 工作而必须编写的最少步骤集是什么?
编辑:如果有人知道我在哪里可以找到“重要”的代码片段,我愿意查看 VLC 或其他任何东西。我刚刚提到了 MPC-HC,因为我认为它是最容易在 Windows 中编译的。