小编use*_*837的帖子

在8/10窗口技术中实现完全实时的屏幕捕获,无延迟

我将使用C#或C ++ 创建一个非常快速且实时的远程服务,这没关系,但是目前我正在使用c#。

好的,我要寻找的是一种以最快的速度实时捕获Windows屏幕的方法。

我知道网上已经有办法了,但问题是延迟 ...

  • 我使用C#copyfromscreen,1920x1080的延迟为92ms [视频中的5帧]
  • 我将C#copyfromscreen与jpg编码器一起使用,对于1920x1080,延迟为36ms
  • 我将Unity3D screenCapture与jpg编码器一起使用,对于1920x1080,延迟为38ms
  • 我使用C#Windows Desktop Duplication API,对于1920x1080,延迟为19ms [视频中为3帧]
  • 我将C#Windows Desktop Duplication API与jpg编码器一起使用,对于1920x1080 [视频中为2帧],延迟为12ms
  • 我将C ++ Windows Desktop Duplication API与jpg编码器一起使用,对于1920x1080 [视频中为2帧],延迟为9ms
  • 我将C#Windows DirectXCapture与jpg编码器一起使用,对于1920x1080 [视频中为2帧],延迟为16ms

我以这种方式认为进度是正常的,直到我签出Windows 10/8任务栏实时预览缩略图,并且它是完全实时的,没有1ms的延迟,这意味着帧对帧!

我尝试将所有方法的1920 x 1080尺寸调整为“任务栏预览”尺寸,但未做任何更改!

注意:该程序无法通过Internet处理,因此可以在本地网络上运行。

我猜测延迟是由于位图处理或其他原因造成的,但我还不知道! [添加时间]这是我在服务器上处理图片的方式:

private static byte[] capture()
{
    Bitmap bmp = screenshot_DDAPI(); // Avarage Time : 29.6566ms
    MemoryStream ms …
Run Code Online (Sandbox Code Playgroud)

c# c++ winapi

5
推荐指数
2
解决办法
788
查看次数

标签 统计

c# ×1

c++ ×1

winapi ×1