recordNode.cpp 844 B

1234567891011121314151617181920212223242526272829
  1. #include "common/data.hpp"
  2. #include "common/meta.hpp"
  3. #include "nodes/record/RecordNode.hpp"
  4. namespace GNode
  5. {
  6. void RecordNode::handle_data(std::shared_ptr<meta::MetaData>& meta_data)
  7. {
  8. cv::Mat image = meta_data->draw_image;
  9. int width = image.cols;
  10. int height = image.rows;
  11. if (!writer_.isOpened())
  12. {
  13. writer_.open(gst_pipeline_, cv::CAP_GSTREAMER, 0, fps_, cv::Size(width, height), true);
  14. if (!writer_.isOpened())
  15. {
  16. PLOGE.printf("RecordNode : [%s] cannot open video writer", name_.c_str());
  17. stop();
  18. }
  19. }
  20. writer_ << image;
  21. }
  22. } // namespace GNode
  23. // appsrc ! videoconvert ! x264enc tune=zerolatency bitrate=500 speed-preset=ultrafast ! h264parse ! flvmux streamable=true ! queue ! rtmpsink location='rtmp://172.16.20.168:1935/live' sync=false async=false