首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据是如何通过windows上的OBS-Studio虚拟摄像机中的管脚跨过滤器移动的?

数据是如何通过windows上的OBS-Studio虚拟摄像机中的管脚跨过滤器移动的?
EN

Stack Overflow用户
提问于 2021-01-31 13:38:15
回答 1查看 57关注 0票数 0

我喜欢OBS-Studio的虚拟相机功能。

我试图理解它的工作原理,但无法正确理解。我只知道它是使用DirectShow构建的。项目包含OutputFilterOutputPinCaptureFilterCapturePin

代码语言:javascript
复制
class OutputFilter : public IBaseFilter {
    // ...
    friend class OutputPin;
    IFilterGraph *graph;
    ComPtr<OutputPin> pin;
    // ...
}

class OutputPin : public IPin, public IAMStreamConfig, public IKsPropertySet {
    // ...
    friend class OutputFilter;
    // ...
}

class CaptureFilter : public IBaseFilter {
    // ...
    friend class CapturePin;
    ComPtr<IFilterGraph> graph;
    ComPtr<CapturePin> pin;
    // ...
}

class CapturePin : public IPin, public IMemInputPin {
    // ...
    CaptureFilter *filter;
    // ...
}

当我们启用虚拟摄像机时,数据是如何通过这些过滤器和引脚移动的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-13 08:33:05

他们使用的是shared memory server。基本上,他们有一个渲染过滤器,将传入的位图复制到共享内存中。然后他们有一个捕获过滤器,从共享内存中读取位图。你可以在这里看到他们的一些代码:win-dshow

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65976105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档