| | |
| | | } |
| | | } |
| | | |
| | | m_picCount++; |
| | | //几张选一张放入Redis |
| | | if (m_picCount % m_nPicsPickOne != 0) { |
| | | return; |
| | | } else { |
| | | m_picCount.store(0); |
| | | } |
| | | u_char *data; |
| | | int width = 0, height = 0, step = 0, cn = 0; |
| | | cv::Mat copyMat; |
| | | |
| | | { |
| | | u_char *data; |
| | | int width = 0, height = 0, step = 0, cn = 0; |
| | | m_capture->retrieveFrame(0, &data, &step, &width, &height, &cn); |
| | | |
| | | cv::Mat img(height, width, CV_8UC3, data, step); |
| | | cv::Mat copyMat; |
| | | img.copyTo(copyMat); |
| | | std::string imageName = m_capture->GetImageName(); |
| | | m_pManager->SaveImageToRedis(m_camId, imageName, copyMat); |
| | | } |
| | | //#todo publish Video |
| | | //#publish Video |
| | | if (m_publishVideoRet) { |
| | | if (videoPublishElement == nullptr) { |
| | | string path = appConfig.getStringProperty("srsAddr") + "cam" + m_camId + ".flv"; |
| | | cv::Size size_(appConfig.getIntProperty("pulish.width"), appConfig.getIntProperty("pulish.height")); |
| | | int gupIdx = appPref.getIntData("gpu.index"); |
| | | DBG("size_:" << size_.width << "X" << size_.height); |
| | | videoPublishElement = new ffmpeg::VideoPublishElement(path, size_, "flv", 25, gupIdx); |
| | | videoPublishElement->start(); |
| | | } else { |
| | | // DBG("videoPublishElement->setImage()"); |
| | | m_capture->retrieveFrame(0, &data, &step, &width, &height, &cn); |
| | | cv::Mat img(height, width, CV_8UC3, data, step); |
| | | img.copyTo(copyMat); |
| | | |
| | | if (!copyMat.empty()) { |
| | | videoPublishElement->setImage(copyMat); |
| | | } else { |
| | | DBG("copyMat.empty()"); |
| | | } |
| | | } |
| | | } else { |
| | | if (videoPublishElement != nullptr) { |
| | | DBG("videoPublishElement->stop()"); |
| | | videoPublishElement->stop(); |
| | | videoPublishElement->wait(); |
| | | delete videoPublishElement; |
| | | videoPublishElement = nullptr; |
| | | } |
| | | } |
| | | |
| | | //几张选一张放入Redis |
| | | m_picCount++; |
| | | if (m_picCount % m_nPicsPickOne != 0) { |
| | | return; |
| | | } else { |
| | | m_picCount.store(0); |
| | | } |
| | | |
| | | if (copyMat.empty()) { |
| | | // ERR("copyMat.empty()"); |
| | | m_capture->retrieveFrame(0, &data, &step, &width, &height, &cn); |
| | | cv::Mat img(height, width, CV_8UC3, data, step); |
| | | img.copyTo(copyMat); |
| | | } |
| | | std::string imageName = m_capture->GetImageName(); |
| | | m_pManager->SaveImageToRedis(m_camId, imageName, copyMat); |
| | | |
| | | fireConnectors(); |
| | | } |
| | | |