This commit is contained in:
cxh 2025-12-29 14:13:37 +08:00
parent dbf9e51c4d
commit ee0f84304b

View File

@ -77,21 +77,29 @@ GstElement* RTMPManager::create_pipeline(const Camera& cam)
const std::string live_rtmp = "rtmp://36.153.162.171:19435/" + app + "/" + stream_name + "?vhost=live"; const std::string live_rtmp = "rtmp://36.153.162.171:19435/" + app + "/" + stream_name + "?vhost=live";
const std::string record_rtmp = "rtmp://127.0.0.1:2935/" + app + "/" + stream_name + "?vhost=record"; const std::string record_rtmp = "rtmp://127.0.0.1:2935/" + app + "/" + stream_name + "?vhost=record";
std::string pipeline_str = "v4l2src name=src device=" + cam.device + std::string pipeline_str = "v4l2src device=" + cam.device +
" io-mode=dmabuf do-timestamp=true " " io-mode=dmabuf "
"! video/x-raw,format=NV12," "! video/x-raw,format=NV12,"
"width=" + "width=" +
std::to_string(width) + ",height=" + std::to_string(height) + std::to_string(width) + ",height=" + std::to_string(height) +
",framerate=" + std::to_string(fps) + ",framerate=" + std::to_string(fps) +
"/1 " "/1 "
"! queue max-size-buffers=4 leaky=downstream "
"! mpph264enc " "! mpph264enc "
"profile=high " "profile=baseline " // ⭐ 关键:别用 high
"bps=" + "bframes=0 " // ⭐ 关键:禁 B 帧
std::to_string(bitrate) + " gop=" + std::to_string(fps) + "gop=" +
std::to_string(fps) +
" "
"rc-mode=cbr " "rc-mode=cbr "
"bps=" +
std::to_string(bitrate) +
" "
"header-mode=each-idr " "header-mode=each-idr "
" ! h264parse config-interval=1 " "! h264parse "
" ! queue max-size-buffers=5 max-size-time=0 leaky=downstream " "config-interval=1 "
"disable-passthrough=true "
"! queue max-size-buffers=5 leaky=downstream "
"! flvmux streamable=true " "! flvmux streamable=true "
"! rtmpsink location=\"" + "! rtmpsink location=\"" +
live_rtmp + "\" sync=false async=false"; live_rtmp + "\" sync=false async=false";