修改管线
This commit is contained in:
parent
7899be41e8
commit
b0bb06dff7
@ -114,34 +114,30 @@ std::string RTMPManager::make_key(const std::string& name) { return name + "_mai
|
||||
GstElement* RTMPManager::create_pipeline(const Camera& cam)
|
||||
{
|
||||
const int fps = 30;
|
||||
const int bitrate = cam.bitrate; // 3.5M~4M
|
||||
const int gop = 4;
|
||||
const int bitrate = cam.bitrate;
|
||||
const int gop = 15; // ⭐ 从 4 改为 15(非常重要)
|
||||
|
||||
const std::string stream_name = cam.name;
|
||||
const std::string rtmp_url = "rtmp://127.0.0.1:1935/" + stream_name;
|
||||
|
||||
std::string pipeline_str = "v4l2src name=src device=" + cam.device +
|
||||
std::string pipeline_str = "v4l2src device=" + cam.device +
|
||||
" io-mode=dmabuf "
|
||||
|
||||
// 原始 4:3 输入
|
||||
"! video/x-raw,format=NV12,"
|
||||
"width=1280,height=960,"
|
||||
"framerate=30/1 "
|
||||
|
||||
// ⭐ 裁成 16:9(上下各裁 120)
|
||||
"! videocrop top=120 bottom=120 "
|
||||
|
||||
// 可选:如果你想输出非 1280x720(比如 960x540)
|
||||
"! videoscale "
|
||||
"! video/x-raw,"
|
||||
"width=" +
|
||||
std::to_string(cam.width) + ",height=" + std::to_string(cam.height) +
|
||||
" "
|
||||
|
||||
// 队列(建议后面再把 leaky 去掉)
|
||||
"! queue max-size-buffers=2 max-size-time=0 leaky=downstream "
|
||||
// ⭐ 缓冲拉开,避免瞬时饿死
|
||||
"! queue max-size-buffers=8 max-size-time=0 leaky=downstream "
|
||||
|
||||
// 编码
|
||||
"! mpph264enc "
|
||||
"rc-mode=cbr "
|
||||
"bps=" +
|
||||
@ -155,6 +151,7 @@ GstElement* RTMPManager::create_pipeline(const Camera& cam)
|
||||
|
||||
"! h264parse config-interval=1 "
|
||||
"! video/x-h264,stream-format=avc,alignment=au "
|
||||
|
||||
"! flvmux streamable=true "
|
||||
|
||||
"! rtmpsink location=\"" +
|
||||
|
||||
Loading…
Reference in New Issue
Block a user