繁体   English   中英

OpenCV捕获桌面屏幕直播

[英]OpenCV capturing desktop screen live

我正在使用OpenCV进行c ++编码项目。 我对OpenCV中的一些限制有些困难,我想分析一个视频文件并检测某些对象。 这很好用,但现在我希望它分析我的桌面屏幕的一部分。 (生活)

有没有人知道如何做到这一点? 我想制作一个捕捉我的桌面屏幕的网络摄像头模拟器,但我认为这样做很复杂,而且应该更容易。

如果您的目标是Windows操作系统,那么Engine推荐的选项似乎很理想。

对于Linux,我最终使用RTSP服务器(FFSERVER)作为VideoCapture输入,然后使用带有“x11grab”的FFMPEG进行截屏。

FFMPEG for Windows将接受“屏幕捕获记录器”应用程序作为输入,但我没有任何经验在Windows上设置RTSP服务器。

对于我的设置,这转换为如下所示的代码:

cv::VideoCapture cap;
cap.open("http://localhost:8090/live.flv"); // open the default camera
cap.set(CV_CAP_PROP_FOURCC, CV_FOURCC('F', 'L', 'V', '1'));

cv::resize(frame, frame, cv::Size(200, 200));
cv::VideoWriter outStream("http://localhost:8090/feed2.ffm",
CV_FOURCC('F', 'L', 'V', '1'), 10, cv::Size(200, 200), true);

200x200分辨率对于最小化延迟是必要的,因此如果您可以直接获取屏幕缓冲区以避免从性能角度看起来更好的不必要的屏幕录像/编码...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM