首页 > 解决方案 > C#捕获桌面视频并通过网络发送

问题描述

我正在寻找一种捕获当前桌面视图的方法(或者选择一个窗口来捕获也可以)。我找到了很多将视频文件流式传输或将桌面捕获到视频文件的方法,但没有关于我的主题,即根本没有文件。

主要思想取自 Skype 的桌面演示,该演示将用户桌面的视频和声音流提供给另一个用户,甚至提供给群聊中的多个用户。所以我正在寻找类似的库(如果甚至存在类似的库),或者至少有一个关于如何做到这一点的方向。生成的程序应该能够流式传输给喜欢的 1-4 个用户。如果在转换过程中丢失了一些数据包(即短连接丢失),另一个要求是能够赶上流。

C++ 解决方案也可以,但如果 C# 不那么复杂,则更好。提前致谢。

upd:.NET 桌面应用程序,而不是 asp.net 或 .NET 核心

标签: c#networkingaudiovideostream

解决方案


只需自己编码(粘贴在一起)

  1. 捕获活动窗口的屏幕截图?
  2. 带有 SignalR 的 ASP .NET Core 应用程序:https ://docs.microsoft.com/en-us/aspnet/core/tutorials/signalr-typescript-webpack?view=aspnetcore-2.2&tabs=visual-studio
  3. 而是 ChatHub 板条箱,例如 ImageStreamHub(2 方法 Start(); Stop(); )
  4. Start() - 将开始循环截取屏幕截图并通过网络套接字发送(等待 Clients.All.SendAsync("imageReceived", image);)
  5. Stop() - 你猜对了,会终止循环

替代方案:看看这个: https ://docs.microsoft.com/en-us/aspnet/core/signalr/streaming?view=aspnetcore-2.2

而不是发送数字,而是发送图像


推荐阅读