资源简介

这是一个VS2017工程,可以直接编译运行。实现了利用OpenCV来实时播放RTSP视频流,并能过够截取图片保存为文件。为了不影响RTSP视频流的获取与播放,图片的保存在另一个线程里实现。

资源截图

代码片段和文件信息

// Opencv_RTSP.cpp : 此文件包含 “main“ 函数。程序执行将在此处开始并结束。
//

#include 

#include 
#include 
#include 
#include 

using namespace std;
using namespace cv;

HANDLE g_mutex;

struct MatNode
{
Mat *pMat;
string strtitle;
};

list g_matList;

DWORD WINAPI threadproc(LPVOID lpParam)
{
while (1)
{
MatNode *pNode = NULL;

WaitForSingleobject(g_mutex INFINITE);
if (g_matList.size() > 0)
{
pNode = g_matList.front();
g_matList.pop_front();
}
ReleaseMutex(g_mutex);

if (pNode)
{
imwrite(pNode->strtitle.c_str() *(pNode->pMat));
delete pNode->pMat;
delete pNode;
}
else
{
Sleep(10);
}
}
}

int main()
{
VideoCapture cap;

cap.open(“rtsp://192.168.1.160:554/0“);//呵呵,就这一句关键

Mat Camera_CImg;

Mat Camera_GImg;

cap.set(CV_CAP_PROP_frame_HEIGHT 300);

cap.set(CV_CAP_PROP_frame_WIDTH 300);

if (!cap.isOpened())
return 1024;

unsigned int count = 0;

g_mutex = CreateMutex(NULL FALSE NULL);
HANDLE hThread;
DWORD  threadId;
hThread = CreateThread(NULL 0 threadproc NULL 0 &threadId);


while (1)
{
cap >> Camera_CImg;

if (Camera_CImg.empty())
break;

timeb t;
ftime(&t);
struct tm *local;
local = localtime(&(t.time));
char szTmp[200] = { 0 };
snprintf(szTmp sizeof(szTmp) - 1 “d:\\tmp\\%02d%02d%02d_%03d.jpg“ local->tm_hour local->tm_min local->tm_sec t.millitm);
#if 0
Mat *pMat = new Mat();
Camera_CImg.copyTo(*pMat);
MatNode *pNode = new MatNode;
pNode->pMat = pMat;
pNode->strtitle = szTmp;
WaitForSingleobject(g_mutex INFINITE);
g_matList.push_back(pNode);
ReleaseMutex(g_mutex);
#endif

#if 1
imshow(“input“ Camera_CImg);

if (cvWaitKey(5) == ‘q‘)
break;
#endif
}

system(“pause“);
return 0;
}

// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单

// 入门提示: 
//   1. 使用解决方案资源管理器窗口添加/管理文件
//   2. 使用团队资源管理器窗口连接到源代码管理
//   3. 使用输出窗口查看生成输出和其他消息
//   4. 使用错误列表窗口查看错误
//   5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
//   6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-12-11 09:11  Opencv_RTSP\
     文件        2635  2018-12-10 12:31  Opencv_RTSP\Opencv_RTSP.cpp
     文件        8700  2018-12-11 09:11  Opencv_RTSP\Opencv_RTSP.vcxproj
     文件         956  2018-12-11 09:11  Opencv_RTSP\Opencv_RTSP.vcxproj.filters
     文件         165  2018-12-10 10:18  Opencv_RTSP\Opencv_RTSP.vcxproj.user

评论

共有 条评论