【发布时间】:2020-07-21 14:22:46
【问题描述】:
我想为视频聊天编写自己的相机过滤器,并理想地将它们应用于任何/所有流行的视频聊天应用程序(Zoom、Hangouts、Skype 等)。我想象这个工作的方式是编写一个 macOS 应用程序来读取相机源,应用我的过滤器,并公开一个额外的虚拟相机。然后可以在任何视频聊天应用程序中选择此虚拟相机。
我花了很多时间研究如何做到这一点,但我仍然不清楚现代 macOS API 是否可以做到这一点。 StackOverflow 上有一些类似的问题(例如here、here),但它们要么没有答案,要么很老。我希望这个问题能收集到正确方向的建议/链接/想法,以便在 2020 年之前做到这一点。
这是我目前得到的:
直播社区中有一个流行的工具,叫做 OBS Studio。它捕获来自不同来源(相机、桌面等)的输入,具有用于应用效果的插件系统,然后将输出流式传输到流行的服务(例如 Twitch)。但是,在 macOS 上没有将流公开为虚拟相机的功能。在讨论这个问题时(thread、thread),人们谈到了一个叫做 Siphon 的工具和一个叫做 CamTwist 的工具。
不幸的是,Siphon 没有公开虚拟摄像头 anymore:“SyphonInject 在 macOS 10.14 (Mojave) 中不再起作用。Apple 关闭了允许在全局目录中添加脚本以加载到任何进程中的漏洞。尝试注入任何进程都会静默失败。如果禁用 SIP,它将起作用,但这是一个糟糕的主意,我不会建议或帮助任何人这样做。”
幸运的是,CamTwist 有效。我让它在我的 macOS Catalina 上运行,在我的相机流上应用了它的一些内置效果,并看到它在我的环聊设置中显示为一个新相机(在restarting Chrome 之后)。这令人鼓舞。
不幸的是,CamTwist 相当陈旧且维护不善。它使用 Quartz Composer 来实现效果,但 Quartz Composer 是 Apple 的 deprecated,它可能在 Catalina 中过着最后的日子。
macOS SDK 曾经有一个名为 CoreMediaIO 的 API,这可能是公开虚拟相机的方式,但该 API 也已被弃用。这是not clear 如果/什么是现代替代品。
我想问这个问题的另一种方式是:CamTwist 是如何实现的,它为什么在 macOS Catalina 中仍然有效,以及您将如何在 2020 年实现同样的东西?
任何对这一切有所启发的东西都将受到高度赞赏!
【问题讨论】:
-
fwiw 在过去一周左右我一直在使用 OBS + CamTwist,因为我得到了一个 mac。它适用于缩放/等。直到今天(几个小时前)我安装了一个新的 osx 更新并且它坏了:|编辑:实际上,它似乎只在缩放时破裂。一定是今天的新缩放更新。其他都很好:)
-
edit:看起来它适用于 google meet 并返回 OBS,但它没有出现在 photobooth 中。可能是 osx api 问题
标签: macos video-processing video-capture macos-catalina video-conversion