【问题标题】:ISampleGrabberCB::SampleCB timestampISampleGrabberCB::SampleCB 时间戳
【发布时间】:2016-03-22 15:51:51
【问题描述】:

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

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

【问题讨论】:

    标签: windows video directshow webcam-capture


    【解决方案1】:

    如果您从预览图钉或通过 Smart Tee 过滤器从相机派生的预览腿捕捉,时间戳可能为零。时间戳不为零,帧根本没有时间戳,Sample Grabber 过滤器无法区分这两种情况。

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

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

    【讨论】:

    • 是的,我使用了预览图钉。将其更改为捕获 pin 和时间戳现在不为零。感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多