2012-08-09 59 views
1

我正在开发h264 directshow过滤器。如何调试H264 DirectShow过滤器?

我有一个有效的硬件来源,它可以正确输出NAL单元。 我有一个DirectShow过滤器,它宣传h264并成功连接到默认的Windows 7解码器微软dtv-dvd视频解码器。

当我将渲染器连接到解码器时,渲染器不会得到任何数据包,所以我认为解码器无法正确解码我的数据包。

[H264来源] - > [DTV-DVD解码器] - > [增强视频渲染器]

有没有办法为我检查,其中微软解码器出现故障?

任何其他信息可帮助

+0

更可能是解码器输入无效,并且您需要检查从输出引脚输出的内容。 – 2012-08-09 21:15:49

回答

3

你有困难的是,你不必为DTV-DVD解码器的代码,使得它在一定程度上管道中的黑盒子。事实上,你的h264资源可以连接到dtv-dvd解码器意味着你在媒体格式协商方面有一个良好的开端。为了更好地了解发生了什么问题,我建议您将dtv-dvd解码器替换为具有源代码的解码器,然后使用GraphEdit或其他类似工具调试管道。我一直在做同样的发展,并且发现一旦我的h264流水线能够使用一个解码器滤波器正常工作,它一般可以与其他h264解码器一起正常工作。

以下是其中包括源代码的几个选项:

另外,我还发现了DTV-DVD过滤器是有点挑剔。它可能有助于使用二进制形式提供以下解码器过滤器来进行测试:

  • Nanocosmos有一个非常好的“AVC/h264 decoder Decoder SDK”基于DirectShow的。 (免费评估)

  • CoreCodec's CoreAVC” 包括最快的H264解码器,支持CUDA和DXVA之一(商业 - 花费$只需支付12.95)

  • MainConcept公司的H264解码器过滤器可作为他们的 “MainConcept Showcase”(免费评估的一部分)

+0

我还想补充一点,今天优秀的LAV Filters包,它是ffdshow过滤器项目的延续或重新想象,其中DirectShow过滤器是从libavformat和libavcodec及相关的(传统上FFMpeg附属的)库。它有一个H.264分离器和解码器(滤波器的名称是“LAV Video Decoder”),它适合于例如H.264的捕获引脚。媒体源过滤器。 – amn 2016-11-23 14:44:01