#include <thread>
Mat gImage;
#define FRAME_RATE_CAPTURE 30 //默认显示帧率
#define FRAME_RATE_SHOW 20 //默认显示帧率
/* 默认分辨率720p */
#define DEFAULT_WIDTH 1280
#define DEFAULT_HEIGHT 720
string ip = "10.15.4.19";
/******************************IPC摄像头 *******************************/
void threadIpcCapture()
{
VideoCapture cap;
Mat image;
prctl(PR_SET_NAME,"threadIpcCapture");
cap.open("rtsp://admin:admin@" + ip + ":554/av_stream");
while(1)
{
cap >> image;
if(!image.empty())
resize(image,gImage,Size(DEFAULT_WIDTH, DEFAULT_HEIGHT));
usleep(1000 * 1000 / FRAME_RATE_CAPTURE);
}
}
int main(int argc, char *argv[])
{
/* 初始化显示窗口 */
const string wintitle = "camera";
namedWindow(wintitle);
thread t(threadIpcCapture);
while (1)
{
/* 获取video0的数据 */
if (gImage.empty())
continue;
/* 显示图片 */
imshow(wintitle, gImage);
/* 等待按键 */
if (waitKey(1000/FRAME_RATE_SHOW) >= 0)
{
break;
}
}
}