-
Notifications
You must be signed in to change notification settings - Fork 14
Startup Parameters
- gop_cache
- gop_buffer_size
- probe_timeout
- write_timeout
- mw_latency
- listen_ip
- public_ip
- idle_timeout
- receive_timeout
- debug
- hls
- rtsp
- webrtc.transport
- gb28181
- 1078.port
- record
- hook
- log
{
"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缓存开关,是实现拉流秒开
的关键所在,目前代码里面强制开启。WebRtc和RTSP输出流中不使用GOP缓存。
GOP缓存区大小初始值,单位Bytes,取值范围512KB-20MB(4Mb码率-160Mb码率区间)。 合理的初始值可以有效降低因内存不足,造成重新扩容的可能性。
解析推流Track的超时时间,单位毫秒。如果该计时器触发,Track数量不为0,以当前Track数量为准, 后续解析出来的Track都将丢弃,否则(Track数量为0)关闭Source。
针对TCP拉流Sink的发包超时时间,超过该时间会强制关闭该连接。
合并写延迟大小,单位毫秒,目前强制开启。 针对RTMP/FLV输出流,将缓存指定时长的传输流,一次性发送给Sink。可有效降低用户态和内核态交互频率, 大幅提升服务器性能。
监听地址。
公网IP。
空闲超时,单位秒。如果Source没有一路拉流,将在该计时器触发时,决定是否关闭Source。
收流超时, 单位秒。如果Source没有收到推流数据包,将在该计时器触发时,决定是否关闭Source。
如果开启,将保存推流数据包。
单个TS切片时长。
最大TS切片数量。
TS切片存放目录。
[554,20000,30000]
第一个RTSP Server监听端口, 第二个和第三个指定UDP拉流的端口范围。如果只开启TCP拉流,只需要配置一个554
端口。
鉴权密码。
UDP|TCP
同时开启TCP和UDP拉流,可以只配置一项。
目前仅支持UDP拉流。
[50000,60000]
GB28181收流端口范围, 如果只有一个元素则表示单端口收流。
UDP|TCP
同时开启TCP和UDP推流,可以只配置一项。
目前仅支持TCP单端口推流。
录制格式,目前仅支持FLV录制。
录制文件存放的目录。
发送http请求的超时时间,单位秒。
lkm启动通知。
推流通知。
推流结束通知。
拉流通知。
拉流结束通知。
推流的录制文件通知。
空闲超时通知。
收流超时通知。
日志是否保存到文件,默认不保存。
日志级别,-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
)
日志文件名称,同时可指明存放的目录。
单个日志文件最大大小,单位MB。
最多允许保留多少个日志文件。
最多允许保留多少天的日志文件。
是否压缩日志文件,默认不压缩。