#include "PushStreamAppPipeController.h" #include #include //#include #include #include PushStreamAppPipeController::PushStreamAppPipeController(std::string &chanPubID, int fps, int streamTransType, int gpuIdx, RtspAnalysManager *manager) : videoCaptureElement(chanPubID, fps, streamTransType, gpuIdx, manager), index(chanPubID), videoPublishElement(nullptr) { string path = appConfig.getStringProperty("srsAddr") + "cam" + chanPubID + ".flv"; cv::Size size_(appPref.getIntData("pulish.width"), appPref.getIntData("pulish.height")); int gupIdx = appPref.getLongData("gpu.index"); videoPublishElement = new ffmpeg::VideoPublishElement(path, size_, "flv", 25, gupIdx); if (appPref.getIntData("pulish.width") < 0 || appPref.getIntData("pulish.height") < 0) { ERR("pulish.width: " << appPref.getIntData("pulish.width") << " Height: " << appPref.getIntData("pulish.height")); } videoCaptureElement.registerConnector([&] { //if(!videoPublishElement.isBusy()){ videoPublishElement->setImage(videoCaptureElement.getImage()); //videoPublishElement.submit(); //} }); registerElement(videoCaptureElement); registerElement(*videoPublishElement); // videoCaptureElement.setOutPutInterval(3); } std::string PushStreamAppPipeController::getRtmp() { std::string ret = videoPublishElement->getPath(); size_t pos = ret.find(".flv"); ret = ret.substr(0, pos); INFO(ret); return ret; } void PushStreamAppPipeController::SaveVideo(const std::string &strImageName) { videoCaptureElement.SaveVideo(strImageName); } void PushStreamAppPipeController::SetVideoMinMaxSeconds(const int minSeconds, const int maxSeconds) { videoCaptureElement.SetVideoMinMaxSeconds(minSeconds, maxSeconds); }