如何解码原始H264帧

时间:2013-11-20 05:13:55

标签: video ffmpeg directshow h.264 decoding

我需要开发一个全屏客户端,它将解码来自网络源的原始h264帧。任何建议的方法从哪里开始? 我正在看ffmpeg,但后来我必须将它与VS接口,我在途中迷路了。 Microsoft Media Foundation有一个内置的h264解码器,没有足够简单的示例供我理解。 与DirectShow相同,但微软表示其灭绝技术不使用它。 客户端应该能够使用WinXP和目标。 所以,如果有人能指出我正确的方向,那就太好了。

1 个答案:

答案 0 :(得分:3)

您正确枚举了这些选项,并且您说得对,没有简单的示例。技术本身有点复杂,它通常不是单独使用,而是作为更复杂系统的一部分,如流媒体客户端。此外,该技术不是免费的,并且没有广泛可用的“默认”H.264解码器实现。

FFmpeg是一个不错的选择,如果你很好地使用LGPL / GPL并且你可以从源代码构建它(使用GPL甚至可以下载prebuilt binaries),从VS接口需要一些努力但是可行,更多麻烦的是缺乏文档,因此您需要在Internet上查找代码片段。

媒体基金会是不行的:Windows XP没有Media Foundation H.264解码器。然后API本身并不流行,它提供的唯一优势是没有DirectShow的非桌面Windows版本的可用性。

DirectShow是Windows中最好的本机媒体API。由于Windows中具有向后兼容性,因此可通过Windows 8.1获得Windows XP。微软提供了一个体面的H.264解码器,启动Windows Vista - Microsoft DTV-DVD Video Decoder,与Media Foundation提供的解码器版本相同。这样的第三方解码器通常与DirectShow接口。互联网上有硬件辅助解码支持,大量示例代码和教程。虽然有点陡峭的学习曲线。