mirror of
https://github.com/Monibuca/plugin-record.git
synced 2025-09-27 04:56:47 +08:00
录制支持追加模式,并优化文档
This commit is contained in:
11
README.md
11
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文件
|
||||
|
12
main.go
12
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)
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user