我将使用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)