因此,过去几周我一直在尝试解决这个问题,但有些陷入停滞。我正在尝试将来自 IP 地址的 RTSP 流注册为虚拟网络摄像头,以便在另一个应用程序(可能是 Skype 或类似应用程序)中使用。我需要的是我的计算机将虚拟网络摄像头添加到其设备列表中。这最好通过 C# 脚本来完成,因为可以通过 .NET 程序动态添加设备。 我在 StackOverflow 上发现了类似的问题,但其中许多已经过时、使用 Linux 或接收其他流格式/协议(protocol)。
到目前为止,我的方法一直是使用 DirectShow 过滤器,并且到目前为止已经在一定程度上发挥了作用。使用 Graphedit,我可以使用 RTSP 源过滤器查看传入的流。但是,也存在一些问题:
- 源过滤器是试用版,完整版是付费的,而且相当昂贵
- 我没有 DirectShow 过滤器编程经验
- 我只通过 GraphEdit 显示流,没有注册虚拟驱动程序,因此 Skype 无法使用流
所以我想我的问题可以归结为:
- 我使用 DirectShow 的方法是实现我想要的目标的唯一方法吗?
- 如果 Windows 应将流列为网络摄像头设备,那么使用过滤器是否是正确的方法?
- vcam 仍然是实现此类功能的最佳示例吗?
- 有人知道类似的开源程序可以实现我所描述的目的吗?
无论如何,我很感谢我能得到的任何帮助! 谢谢。
最佳答案
The diagram below explains the applicability of virtual cameras:
您正在尝试以某种方式安装较低的绿色或蓝色框,以便它从 RTSP 读取数据。
请注意,越来越多的应用程序(例如新的 Skype)基于媒体基础(图表右上角的框),并且基于过滤器的源越来越不适用。
创建一个可以被各种软件识别的虚拟相机假设您提供了驱动程序(红色框)。尽管存在这样的软件包,但我不知道有任何开源甚至免费的软件包可以让您快速开始这条路线。
基于 DirectShow 过滤器的源(并且您尚未在那里实现 RTSP 客户端)只能由相同位数的基于 DirectShow 的应用程序看到。
关于video-capture - 将网络视频流注册为虚拟摄像机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55096781/