ISampleGrabberCB :: SampleCB时间戳

时间:2016-03-22 07:03:11

标签: windows video directshow webcam-capture

我正在尝试使用DirectShow和ISampleGrabber界面从网络摄像头捕获视频流。我想获得每个抓取框架的时间戳。但SampleTime方法中的SampleCB(double SampleTime, IMediaSample *pSample)参数始终为零。

为什么它可以为零?此值是否取决于相机驱动程序实现或其他内容? 有没有其他方法可以获取抓取帧的时间戳?

1 个答案:

答案 0 :(得分:1)

如果您从预览引脚捕获,或通过Smart Tee Filter预览从相机获得的分支,则时间戳可能为零。时间戳不为零,帧没有时间戳,Sample Grabber过滤器无法区分这两种情况。

您可以使用GraphStudioNext的分析器过滤器或使用DumpMediaSamples轻松验证时间戳。

在您的应用程序中,您首先对图表的精确拓扑感兴趣,哪些过滤器连接到Sample Grabber的上游。您很可能需要更新代码以消除预览的使用。