主题: 实时截取指定窗口,然后显示到wpf窗口中。
根据主题可以确定的步骤有 通过句柄 截取指定窗口,然后把图片 显示到wpf的窗口上,
1.因为要实时显示,所以对运行效率有要求,所以截取窗口 使用c++,windows api 来截取窗口。
然后到c# 这边,要实时读取数据,这边使用filemapping(内存共享)来获取数据。 然后c# 端在实时传输视频,使用现成的网络库lidgren。完成传输。
缺点:这里只是把实时截取的图片文件流发送给了wpf端,在截屏的效率 和 实时渲染视频都没问题,而socket用的是udp封装后的idgren的极其耗费宽带,有6M~11M每秒的宽带,导致最终显示到wpf上的速度过慢。
针对以上问题,我准备对截取后的图片进行编码成视频,然后让socket传输视频,准备采用intel media sdk 或者media sdk进行编码,编码后放入内存共享中,然后c++在封装一个解码,进行显示。
这里先使用media sdk 做一个 把图片序列帧变成编码后的 封装。
后使用media sdk 做一个解码。