将现有视频文件从C#馈送到Skype呼叫的最简单方法

本文关键字:Skype 呼叫 方法 最简单 视频 文件 | 更新日期: 2023-09-27 18:00:16

我在SO和其他地方看了很多地方,但似乎没有什么能直接回答我的问题(至少没有使用我熟悉的术语)。

注意:我们意识到让视频自动应答器顺利工作并看起来很好的挑战,但这个问题并不在于此。现在,我正专注于将视频文件输入Skype的直接技术问题。

背景
我被要求创建一个Skype"自动应答器",用于支持音频和视频通话以及IM聊天的演示环境。

问题
创建IM聊天"机器人程序"相对容易,而且似乎有一个现有的Skype API用于在通话中播放音频文件,但没有API用于播放视频文件。

做作业
在Skype API中,还有另一个名为SkypeKit的版本,据说它提供了与标准的API桌面不同的功能。我已经提交了访问SkypeKit的请求,但尚未收到回复。

除了Skype API的支持外,我们的下一个想法是,必须有虚拟网络摄像头组件可供下载/购买,使我们能够播放视频,以便Skype相信它来自网络摄像头。我在stackoverflow上发现的一个更接近这个的问题是:

如何在.NET 中使用虚拟网络摄像头驱动程序进行传输

然而,这篇文章的作者将他的请求限制在免费/开源解决方案上,而我可以选择使用商业组件(在合理的范围内)。此外,对它的唯一响应意味着使用DirectShow构建自己的虚拟网络摄像头。

在SO和其他网站上,有很多关于使用DirectShow构建自己的虚拟网络摄像头的讨论,但这似乎比花几个美元买东西要贵得多。我对DirectShow或任何相关的东西都没有任何经验,仅仅理解概念和术语就需要时间。我可能会花时间学习所有这些,但如果有更简单的解决方案,我会更喜欢。

就现有组件而言,我能找到的唯一组件是Virtual Camera SDK,但它似乎专注于捕捉视频(从屏幕或真实的网络摄像头),而不是为其他应用程序冒充网络摄像头。他们的网站信息也相当模糊,这让我有点谨慎。

我发现了很多其他产品和讨论,但在这里列出它们会很乏味,也没有什么信息。

问题
我的实际问题有两部分:

  1. 将视频文件流式传输到Skype通话的最佳方式是什么
  2. 如果答案是通过虚拟网络摄像头,那么实现这一点的最简单方法是什么(即现成的好组件、示例代码等)

顺便说一句,这里有人甚至建议只在屏幕上播放视频,并设置一个真正的网络摄像头将图像流式传输到Skype中。正如你所能想象的,一个完全程序化的解决方案会更好。

提前感谢您的帮助。

将现有视频文件从C#馈送到Skype呼叫的最简单方法

根据当前的技术,我认为最好的选择确实是使用虚拟网络摄像头实现。

有几种可用的解决方案(快速谷歌搜索-www.Google.com/search?q=虚拟+网络摄像头-返回了相当多的选项)。完整的POC解决方案包括:

  • 初始化虚拟网络摄像头,让它为视频播放做好准备
  • 确保Skype使用虚拟网络摄像头作为视频源
  • 使用Skype API检测Skype传入的视频呼叫
  • 使用Skype API接听电话,并以虚拟设备为目标开始视频播放
  • 清理:视频结束时挂断,或者如果远程呼叫方挂断,则停止播放