diff --git a/src/rtmp_manager.cpp b/src/rtmp_manager.cpp index c6630eb..cbfb499 100644 --- a/src/rtmp_manager.cpp +++ b/src/rtmp_manager.cpp @@ -114,19 +114,24 @@ GstElement* RTMPManager::create_pipeline(const Camera& cam) " ! mpph264enc bps=" + std::to_string(bitrate) + " gop=" + std::to_string(fps) + " rc-mode=cbr " - " ! h264parse " - " ! flvmux streamable=true name=mux " - " ! tee name=t " + " ! h264parse ! tee name=t " - "t. ! queue leaky=downstream ! rtmpsink location=\"" + + // ------ 分支1:live ------ + "t. ! queue max-size-buffers=5 leaky=downstream " + " ! flvmux streamable=true name=mux_live " + " ! rtmpsink location=\"" + live_rtmp + "\" sync=false async=false " - "t. ! queue leaky=downstream ! rtmpsink location=\"" + + // ------ 分支2:record ------ + "t. ! queue max-size-buffers=5 leaky=downstream " + " ! flvmux streamable=true name=mux_record " + " ! rtmpsink location=\"" + record_rtmp + "\" sync=false async=false " - "t. ! queue ! fakesink"; + // ------ 分支3:AI ------ + "t. ! queue ! fakesink sync=false"; GError* error = nullptr; GstElement* pipeline = gst_parse_launch(pipeline_str.c_str(), &error);