众所周知,屏幕共享是实时音视频互动中十分重要的一项功能,能够帮助参会者访问另一台计算机或桌面的内容,从而实现文档、图片、多媒体等的实时共享。而在实现屏幕共享的过程中,我们就不得不来聊一聊抓屏技术。看看唐桥科技音视频PaaS平台是如何根据抓屏技术特性来实现最优的抓屏效率和最佳的用户体验。
Windows系统上有很多抓屏技术,不同的抓屏技术又局限于Windows系统版本,没有一种通用的抓屏技术可以高效的抓取屏幕图像,其中主要的原因是操作系统的显示驱动模型在从XDDM向WDDDM转变,应用层的API也在从GDI向D3D转变。本文重点关注SCC如何集成各种抓屏技术以兼容所有Windows系统。
01 显示器驱动程序模型
Windows 显示驱动程序模型要求图形硬件供应商提供配对的用户模式显示驱动程序和内核模式显示驱动程序。
windows 2000 显示器驱动程序模型 (XDDM)。XDDM 是为 Windows 2000 到 Windows Vista 和 Windows 7 提供的显示/图形驱动程序体系结构。
从上图可以看出,其核心模块是GDI。在XDDM下我们可以采用GDI技术抓屏。
WDDM 是从 Windows Vista 开始提供的显示/图形驱动程序体系结构
从上图可以看出其核心模块是D3D,同时还兼容了GDI。那么在WDDM下我们可以采用基于D3D的一些抓屏技术。