OpenCV直播捕捉桌面屏幕

我正在使用OpenCV进行c ++编码项目。 我在OpenCV中遇到了一些限制,我想分析视频文件并检测某些对象。 这工作完美,但现在我希望它分析我的桌面屏幕的一部分。 (生活)

有谁有线索如何做到这一点? 我想制作捕捉我的桌面屏幕的网络摄像头模拟器,但我认为这种方式很复杂,它应该更容易。


如果您的目标是Windows操作系统,那么引擎推荐的选项看起来很理想。

对于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的分辨率对于最大限度地减少延迟是必要的,所以如果您可以直接抓取屏幕缓冲区以避免不必要的屏幕录制/编码,从性能角度看听起来更好......

链接地址: http://www.djcxy.com/p/81077.html

上一篇: OpenCV capturing desktop screen live

下一篇: recording live stream video from tv card using ffmpeg at window