【问题标题】:Why does Windows only allow one application to access the webcam? [closed]为什么 Windows 只允许一个应用程序访问网络摄像头? [关闭]
【发布时间】:2012-02-18 08:28:24
【问题描述】:

我一直在尝试用 c# 制作一个示例网络摄像头应用程序,但我发现该应用程序无法在 Skype 或 Oovoo 或任何其他应用程序运行的同时运行? (反之亦然)为什么应用程序会在 webc 上获得独占锁

【问题讨论】:

    标签: c# windows winapi video webcam


    【解决方案1】:

    当添加层以共享视频硬件在性能方面不合理时,视频捕获 API 就出现了。此外,如果有 2 个以上的应用程序与相机一起使用,则必须以某种双方都满意的方式让它们就捕获格式达成一致。所以它是最简单直接的方式:你拿起相机,它是你的,你可以根据自己的需要进行设置。但是,其他人会等待您发布硬件,然后其他人才能使用它。

    您可以找到共享摄像头的第三方软件,该软件在内部独占抓取该摄像头,然后公开可共享的虚拟摄像头。这会以性能换取灵活性。

    音频 API 前段时间也专门锁定硬件,但后来操作系统 API 引入了硬件抽象层来共享硬件并在后台从多个应用程序进行混音。

    【讨论】:

    • 是否有任何破解方法可以绕过此限制?还是120%不可能。 :( 我能找到的唯一的东西是 SplitCam 和 ManyCam,这绝对是可怕的。
    • 没有破解,这是设计行为。最好的办法是找到一个“不那么糟糕”的摄像头虚拟化/共享软件。
    • 感谢您的帮助。 :) 自己创建虚拟化软件有多难?我所需要的只是一个没有绒毛的完全最小的应用程序,它可以捕获流并将其输出到另一个“设备”以供 skype/oovoo 使用。
    • 已经进行了很多尝试,请参阅讨论 stackoverflow.com/search?q=pushsource+vcamsocial.msdn.microsoft.com/Search/en-US/windows/… 其中会导致您已经发现的可怕的凸轮分离器。老实说,我不知道那里是否有一个像样的分离器。您当然也可以尝试自己制作,这是可行的。
    【解决方案2】:

    这可能是为了避免应用程序在人们通过 Skype 或其他方式使用网络摄像头时监视他们。

    【讨论】:

    • 有任何证据或信息来支持这一点吗?否则这只是猜测,而不是“专家答案”。
    • “这可能”不是一个实际事实的开始..
    • 我同意“猜测”可能不是最好的答案,但在这种情况下,假设安全可能是一个问题并不算太远。另外,因为这里什么时候只允许“专家答案”?
    • 这是一个很好的假设,但请考虑以下情况:15 年前,视频捕获 API 以这种形式存在,当时网络带宽不足以流式传输,摄像头很少,高端硬件,主动捕获(尤其是实时压缩)单独加载主机时,静默监视是不可能的。
    • 它与安全无关,它与硬件和设备驱动程序的限制有关。制造能够做到这一点的设备在硬件方面会很昂贵,而对于软件和驱动程序来说,几乎没有任何需求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    相关资源
    最近更新 更多