我正在尝试捕获屏幕视频以模拟与TeamViewer和mstsc类似的功能(同时支持多次登录),目前正在使用带有“-f gdbgrab”选项的ffmpeg进行奇妙的操作。
但是,每当我切换用户时,包括尝试升级到管理员,不仅我无法捕获UAC或登录屏幕,而且该过程完全终止:
[gdigrab @ 07e34780] Failed to capture image (error 5)
desktop: I/O error
(以管理员身份运行时甚至是SYSTEM)
根据我的理解,这是由于Windows在登录屏幕,UAC屏幕等方面有不同的会话,而且我从这里读到的内容: Session 0 capture screen - 似乎你无法从其他会话中捕获视频,也无法连接到多个会话,因此也没有使用mstsc。
TeamViewer能够捕获UAC甚至登录屏幕。怎么样?
(最好的情况是,我会使用mstsc,但它会注销已登录的用户)
这是我目前用于流式传输的内容:
ffmpeg -f gdigrab -framerate 10 -i desktop -rtmp_live live -c:v mpeg4 -f rtsp -rtsp_transport udp rtsp://localhost:8888/live.sdp?udp
(我已经有一个或多或少的HID输入功能解决方案,但也可能无法正常使用UAC等。)