支持JT1078和GB28181的流媒体服务器-LKM启动配置文件参数说明
流媒体服务器地址:https://github.com/lkmio/lkm
GB28181信令,模拟多个国标设备工具:https://github.com/lkmio/gb-cms
文章目录
- gop_cache
 - gop_buffer_size
 - probe_timeout
 - write_timeout
 - mw_latency
 - listen_ip
 - public_ip
 - idle_timeout
 - receive_timeout
 - debug
 - hls
 - segment_duration
 - playlist_length
 - dir
 
- rtsp
 - port
 - password
 - transport
 
- webrtc.transport
 - gb28181
 - port
 - transport
 
- 1078.port
 - record
 - format
 - dir
 
- hook
 - timeout
 - on_started
 - on_publish
 - on_publish_done
 - on_play
 - on_play_done
 - on_record
 - on_idle_time
 - on_receive_timeout
 
- log
 - file_logging
 - level
 - name
 - max_size
 - max_backup
 - max_age
 - compress
 
{"gop_cache": true,"gop_buffer_size": 8192000,"probe_timeout": 2000,"write_timeout": 5000,"mw_latency": 350,"listen_ip" : "0.0.0.0","public_ip": "192.168.2.148","idle_timeout": 60,"receive_timeout":60,"debug": false,"http": {"port": 8080},"rtmp": {"enable": true,"port": 1935},"hls": {"enable": true,"segment_duration": 2,"playlist_length": 10,"dir": "../tmp"},"rtsp": {"enable": true,"port": [554,20000,30000],"password": "123456","transport": "UDP|TCP"},"webrtc": {"enable": true,"port": 8000,"transport": "UDP"},"gb28181": {"enable": true,"port": [50000,60000],"transport": "UDP|TCP"},"jt1078": {"enable": true,"port": 1078},"record": {"enable": false,"format": "flv","dir": "../record"},"hooks": {"enable": false,"timeout": 10,"on_started": "http://localhost:9000/api/v1/hook/on_started","on_publish": "http://localhost:9000/api/v1/hook/on_publish","on_publish_done": "http://localhost:9000/api/v1/hook/on_publish_done","on_play" : "http://localhost:9000/api/v1/hook/on_play","on_play_done" : "http://localhost:9000/api/v1/hook/on_play_done","on_record": "http://localhost:9000/api/v1/hook/on_record","on_idle_timeout": "http://localhost:9000/api/v1/hook/on_idle_timeout","on_receive_timeout": "http://localhost:9000/api/v1/hook/on_receive_timeout"},"log": {"file_logging": false,"level": -1,"name": "./logs/lkm.log","max_size":   10,"max_backup": 100,"max_age":    7,"compress":  false}
}
 
gop_cache
GOP缓存开关,是实现拉流秒开的关键所在,目前代码里面强制开启。WebRtc和RTSP输出流中不使用GOP缓存。
gop_buffer_size
GOP缓存区大小初始值,单位Bytes,取值范围512KB-20MB(4Mb码率-160Mb码率区间)。 合理的初始值可以有效降低因内存不足,造成重新扩容的可能性。
probe_timeout
解析推流Track的超时时间,单位毫秒。如果该计时器触发,Track数量不为0,以当前Track数量为准, 后续解析出来的Track都将丢弃,否则(Track数量为0)关闭Source。
write_timeout
针对TCP拉流Sink的发包超时时间,超过该时间会强制关闭该连接。
mw_latency
合并写延迟大小,单位毫秒,目前强制开启。 针对RTMP/FLV输出流,将缓存指定时长的传输流,一次性发送给Sink。可有效降低用户态和内核态交互频率, 大幅提升服务器性能。
listen_ip
监听地址。
public_ip
公网IP。
idle_timeout
空闲超时,单位秒。如果Source没有一路拉流,将在该计时器触发时,决定是否关闭Source。
receive_timeout
收流超时, 单位秒。如果Source没有收到推流数据包,将在该计时器触发时,决定是否关闭Source。
debug
如果开启,将保存推流数据包。
hls
segment_duration
单个TS切片时长。
playlist_length
最大TS切片数量。
dir
TS切片存放目录。
rtsp
port
[554,20000,30000] 第一个RTSP Server监听端口, 第二个和第三个指定UDP拉流的端口范围。如果只开启TCP拉流,只需要配置一个554端口。
password
鉴权密码。
transport
UDP|TCP同时开启TCP和UDP拉流,可以只配置一项。
webrtc.transport
目前仅支持UDP拉流。
gb28181
port
[50000,60000] GB28181收流端口范围, 如果只有一个元素则表示单端口收流。
transport
UDP|TCP同时开启TCP和UDP推流,可以只配置一项。
1078.port
目前仅支持TCP单端口推流。
record
format
录制格式,目前仅支持FLV录制。
dir
录制文件存放的目录。
hook
timeout
发送http请求的超时时间,单位秒。
on_started
lkm启动通知。
on_publish
推流通知。
on_publish_done
推流结束通知。
on_play
拉流通知。
on_play_done
拉流结束通知。
on_record
推流的录制文件通知。
on_idle_time
空闲超时通知。
on_receive_timeout
收流超时通知。
log
file_logging
日志是否保存到文件,默认不保存。
level
日志级别,-1-5级别,详情如下:
const (// DebugLevel logs are typically voluminous, and are usually disabled in// production.DebugLevel Level = iota - 1// InfoLevel is the default logging priority.InfoLevel// WarnLevel logs are more important than Info, but don't need individual// human review.WarnLevel// ErrorLevel logs are high-priority. If an application is running smoothly,// it shouldn't generate any error-level logs.ErrorLevel// DPanicLevel logs are particularly important errors. In development the// logger panics after writing the message.DPanicLevel// PanicLevel logs a message, then panics.PanicLevel// FatalLevel logs a message, then calls os.Exit(1).FatalLevel_minLevel = DebugLevel_maxLevel = FatalLevel// InvalidLevel is an invalid value for Level.//// Core implementations may panic if they see messages of this level.InvalidLevel = _maxLevel + 1
) 
name
日志文件名称,同时可指明存放的目录。
max_size
单个日志文件最大大小,单位MB。
max_backup
最多允许保留多少个日志文件。
max_age
最多允许保留多少天的日志文件。
compress
是否压缩日志文件,默认不压缩。
相关文章:
支持JT1078和GB28181的流媒体服务器-LKM启动配置文件参数说明
流媒体服务器地址:https://github.com/lkmio/lkm GB28181信令,模拟多个国标设备工具:https://github.com/lkmio/gb-cms 文章目录 gop_cachegop_buffer_sizeprobe_timeoutwrite_timeoutmw_latencylisten_ippublic_ipidle_timeoutreceive_timeo…...
什么是隐式类型转换?隐式类型转换可能带来哪些问题? 显式类型转换(如强制类型转换)有哪些风险?
C 中的隐式类型转换 定义:在 C 中,隐式类型转换是指由编译器自动执行的类型转换,不需要程序员显式地进行操作。这种转换在很多情况下会自动发生,比如在表达式求值、函数调用传参等过程中。常见场景 算术运算中的转换:…...
量化交易新利器:阿布量化(AbuQuant)——金融研究者的得力助手
🚀 量化交易新利器:阿布量化(AbuQuant)——金融研究者的得力助手 🚀 文章目录 🚀 量化交易新利器:阿布量化(AbuQuant)——金融研究者的得力助手 🚀dz…...
UI设计从入门到进阶,全能实战课
课程内容: ├── 【宣导片】从入门到进阶!你的第一门UI必修课!.mp4 ├── 第0课:UI知识体系梳理 学习路径.mp4 ├── 第1课:IOS设计规范——基础规范与切图.mp4 ├── 第2课:IOS新趋势解析——模块规范与设计原则(上).mp4…...
Uniapp自动调整元素高度
获取设备的像素 如果你想让元素的高度相对于整个屏幕的高度占用一定的比例,可以通过获取屏幕的高度,然后计算出你想要的比例来设置元素的高度。以下是如何实现的示例: <script setup> import { ref, onMounted } from vue;// 定义一个…...
软考高项经验分享:我的备考之路与实战心得
软考,尤其是信息系统项目管理师(高项)考试,对于众多追求职业提升与专业认可的人士来说,是一场充满挑战与机遇的征程。我在当年参加软考高项的经历,可谓是一波三折,其中既有成功的喜悦࿰…...
安全关系型数据库查询新选择:Rust 语言的 rust-query 库深度解析
在当今这个数据驱动的时代,数据库作为信息存储和检索的核心组件,其重要性不言而喻。然而,对于开发者而言,如何在保证数据安全的前提下,高效地进行数据库操作却是一项挑战。传统的 SQL 查询虽然强大,但存在诸…...
《C++ 模型训练之早停法:有效预防过拟合的关键策略》
在 C 模型开发的复杂世界里,过拟合犹如一个潜藏的陷阱,常常使我们精心构建的模型在实际应用中表现大打折扣。而早停法(Early Stopping)作为一种行之有效的策略,能够帮助我们及时察觉模型训练过程中的异常,避…...
5.11【数据库】第一次实验
民宿预定,至少有不同的民宿,民宿下面有不同的房间(面积,房间编号) 房间类型,单价, 可预订以及不可预订 游客信息 订单信息 公司有很多课程, 学生,课程 每位学生每期…...
【CSS in Depth 2 精译_062】第 10 章 CSS 中的容器查询(@container)概述 + 10.1 容器查询的一个简单示例
当前内容所在位置(可进入专栏查看其他译好的章节内容) 【第十章 CSS 容器查询】 ✔️ 10.1 容器查询的一个简单示例 ✔️ 10.1.1 容器尺寸查询的用法 ✔️ 10.2 深入理解容器10.3 与容器相关的单位10.4 容器样式查询的用法10.5 本章小结 文章目录 第 10…...
蓝桥杯每日真题 - 第23天
题目:(直线) 题目描述(12届 C&C B组C题) 解题思路: 题目理解: 在平面直角坐标系中,从给定的点集中确定唯一的直线。 两点确定一条直线,判断两条直线是否相同,可通过…...
# Vue 入门级教程三
在前两篇 Vue 入门教程中,我们已经熟悉了 Vue 的基础语法、数据绑定、指令以及组件化开发等核心概念。在本教程中,我们将进一步探索 Vue 的高级特性,包括过滤器、自定义指令、过渡效果以及 Vue 与后端数据交互等内容,让你能够构建…...
hint: Updates were rejected because the tip of your current branch is behind!
问题 本地仓库往远段仓库推代码时候提示: error: failed to push some refs to 192.168.2.1:java-base/java-cloud.git hint: Updates were rejected because the tip of your current branch is behind! refs/heads/master:refs/heads/master [rejected] (…...
PHP 方头像转为圆图
业务需要把创建海报上的用户头像由方形转为圆形,前端的样式设置不能用。 故采用GD的函数来对方图进行裁剪处理为圆图。 目录 裁剪函数 本地图片 远程图片 效果 参考文章 总结 裁剪函数 从网上找的一个裁剪图片的函数。 代码如下: /* * 将图片切…...
centos 7 离线安装postgis插件
前一段时间记录了下如何在centos7中离线安装postgresql,因为工作需要,我不仅要安装postgresql,还需要安装postgis插件,这篇文章记录下postgis插件的安装过程。 1. 安装前的参考 如下的链接都是官网上的链接,对你安装p…...
pyinstaller打包的时候将ffmpeg也加进包中(包括打包文件夹的方法)
在使用 PyInstaller 打包包含 pydub 的 Python 应用程序时,由于 pydub 需要依赖 ffmpeg,你需要确保 ffmpeg 被正确包含进打包后的程序。以下是操作步骤: 1. 准备 ffmpeg 首先,确保你已经下载并安装了 ffmpeg。可以通过以下方式获取…...
JVM面试知识点1
内存结构(掌握内存结构划分、熟知各区域结构功能) 经典的JVM内存结构: 按照线程是否共享来划分: Heap (堆区) 1. 堆区的介绍 堆是 OOM 故障最主要的发生区域。它是内存区域中最大的一块区域,被所有线程共…...
wordpress
2024年自己建网站的步骤,新手自学建站教程 – 奶爸建站笔记 超详细图解:从 0 搭建一个个人网站,也太简单了吧 - 王一白 - 博客园 如何使用插件或者自定义页面创建一个WordPress着陆页 - 闪电博...
Day33 动态规划part02
62.不同路径 本题大家掌握动态规划的方法就可以。 数论方法 有点非主流,很难想到。 代码随想录 视频讲解:动态规划中如何初始化很重要!| LeetCode:62.不同路径_哔哩哔哩_bilibili class Solution {public int uniquePaths(int m, int n) {int dp[][] = new int[m][n];//初…...
渗透测试之Web基础之Linux病毒编写——泷羽sec
声明: 学习视频来自B站UP主泷羽sec,如涉及侵权马上删除文章。本文只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频 (bilibili.com)https://space.bilibili.com/350329294 导读: 时刻…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...
