【问题标题】:Simplest way to feed existing video file to a Skype call from C#?从 C# 将现有视频文件提供给 Skype 呼叫的最简单方法?
【发布时间】:2013-02-06 02:34:34
【问题描述】:

我在 SO 和其他地方的很多地方都看过,但似乎没有任何东西可以直接回答我的问题(至少不使用我熟悉的术语)。

注意:我们知道让视频自动回复器顺利运行并看起来不错的挑战,但这个问题与此无关。现在我专注于将视频文件提供给 Skype 的直接技术问题。

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

问题
为此创建一个 IM 聊天“机器人”相对容易,而且似乎有一个现有的 Skype API 用于通过呼叫播放音频文件,但没有用于播放视频文件的 API。

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

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

How to transmit with a virtual webcam driver in .NET

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

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

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

我发现了很多其他产品和讨论,但在这里一一列出会很乏味且没有信息量。

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

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

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

提前感谢您的帮助。

【问题讨论】:

  • 我不会将此作为答案,因为我没有足够的细节来真正帮助您,但我的第一个想法是您可以查看 linux 下真实网络摄像头设备的输出并考虑创建您自己的设备,应用程序(如 Skype)可以连接到该设备并从中接收视频。
  • 如果 Skype 没有给您想要的东西,您最好的解决方案是制作一个虚拟相机驱动程序,这意味着使用 Windows DDK 将其开发为设备。一旦你进入了那个领域,就没有什么示例代码了,因为很少有人需要这样做。
  • 另外,“virtual camera sdk”网站上糟糕的英语不会让我相信他们的产品适合在生产中使用。
  • @JamesSnell 感谢您的回复,但是创建我自己的虚拟相机驱动程序比我现在想考虑的要多得多。我有点惊讶没有更多现成的解决方案。
  • hmm - 回到这个我发现了一个 SO 线程,它在 tmhare.mvps.org/downloads.htm 讨论 Vivek 的 VCam,并且结合使用 Flash 将视频播放到屏幕区域并巧妙地处理转换可能是好赌吗?

标签: c# webcam skype


【解决方案1】:

对于当前的技术,我想说最好的选择确实是使用虚拟网络摄像头实现。

有几种可用的解决方案(快速的 Google 搜索 - www.google.com/search?q=virtual+webcam - 返回了很多选项)。完整的 POC 解决方案包括:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多