diff --git a/README.md b/README.md index 41ff19c..95bab9d 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,18 @@ record plugin for monibuca 实现了录制Flv文件的功能,并且支持再次使用录制好的Flv文件作为发布者进行发布。 ## 默认配置 -配置中的Path 表示要保存的Flv文件的根路径,可以使用相对路径或者绝对路径 + ```toml [Record] -Path = "" -AutoRecord =false +Path = "resource/[appName]/[streamName]" +AutoRecord = false +AppendFlv = false ``` +- `Path` 表示要保存的Flv文件的根路径,可以使用相对路径或者绝对路径,默认为流路径 +- `AutoRecord` 是否自动开启录制 +- `AppendFlv` 当存在历史录制文件时,是否追加写入,如果不存在历史录制文件,则总是新创建文件 + ## API - `/api/record/flv/list` 罗列所有录制的flv文件 diff --git a/main.go b/main.go index 1fbe2c9..5f9e861 100644 --- a/main.go +++ b/main.go @@ -15,8 +15,9 @@ import ( ) var config struct { - Path string - AutoRecord bool + Path string + AutoRecord bool + AppendFlv bool } var recordings sync.Map @@ -34,7 +35,7 @@ type FileWr interface { } var ExtraConfig struct { - CreateFileFn func(filename string) (FileWr,error) + CreateFileFn func(filename string) (FileWr, error) AutoRecordFilter func(stream string) bool } @@ -46,6 +47,9 @@ func init() { "AutoRecord": func(v interface{}) { config.AutoRecord = v.(bool) }, + "AppendFlv": func(v interface{}) { + config.AppendFlv = v.(bool) + }, }, } pc.Install(run) @@ -128,7 +132,7 @@ func run() { func onPublish(p *Stream) { if config.AutoRecord || (ExtraConfig.AutoRecordFilter != nil && ExtraConfig.AutoRecordFilter(p.StreamPath)) { - SaveFlv(p.StreamPath, false) + SaveFlv(p.StreamPath, config.AppendFlv) } }