Skip to content

Commit ed42940

Browse files
authored
Merge pull request #33 from pdnews/feature/appAndStreamName
Feature/app and stream name
2 parents bb93204 + 51e76eb commit ed42940

1 file changed

Lines changed: 40 additions & 15 deletions

File tree

stream.go

Lines changed: 40 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package engine
22

33
import (
44
"context"
5+
"strings"
56
"sync"
67
"time"
78

@@ -54,7 +55,7 @@ func init() {
5455
var Streams StreamCollection
5556
var StreamTimeoutError = errors.New("timeout")
5657

57-
//FindStream 根据流路径查找流
58+
// FindStream 根据流路径查找流
5859
func FindStream(streamPath string) *Stream {
5960
return Streams.GetStream(streamPath)
6061
}
@@ -92,21 +93,39 @@ func (r *StreamContext) Update() {
9293

9394
// Stream 流定义
9495
type Stream struct {
95-
URL string //远程地址,仅远程拉流有值
96-
StreamContext `json:"-"`
97-
StreamPath string
98-
Type string //流类型,来自发布者
99-
StartTime time.Time //流的创建时间
100-
Subscribers []*Subscriber // 订阅者
101-
VideoTracks Tracks
102-
AudioTracks Tracks
103-
DataTracks Tracks
104-
AutoCloseAfter *int //当无人订阅时延迟N秒后自动停止发布
105-
Transcoding map[string]string //转码配置,key:目标编码,value:发布者提供的编码
96+
//URL 远程地址,仅远程拉流有值
97+
URL string
98+
StreamContext `json:"-"`
99+
StreamPath string
100+
101+
//Type 流类型,来自发布者
102+
Type string
103+
104+
//StartTime 流的创建时间
105+
StartTime time.Time
106+
107+
//Subscribers 订阅者
108+
Subscribers []*Subscriber
109+
VideoTracks Tracks
110+
AudioTracks Tracks
111+
DataTracks Tracks
112+
113+
//AutoCloseAfter 当无人订阅时延迟N秒后自动停止发布
114+
AutoCloseAfter *int
115+
116+
//Transcoding 转码配置,key:目标编码,value:发布者提供的编码
117+
Transcoding map[string]string
106118
subscribeMutex sync.Mutex
107-
OnClose func() `json:"-"`
108-
ExtraProp interface{} //额外的属性,用于实现子类化,减少map的使用
109-
closeDelay *time.Timer
119+
OnClose func() `json:"-"`
120+
121+
//ExtraProp 额外的属性,用于实现子类化,减少map的使用
122+
ExtraProp interface{}
123+
closeDelay *time.Timer
124+
125+
//AppName 应用名
126+
AppName string
127+
//StreamName 流名
128+
StreamName string
110129
}
111130

112131
func (r *Stream) Close() {
@@ -153,6 +172,12 @@ func (r *Stream) Publish() bool {
153172
r.AudioTracks.Init(r)
154173
r.DataTracks.Init(r)
155174
r.StartTime = time.Now()
175+
176+
//获取App名称和流名,App 名称取一级目录,流名取最后一级
177+
param := strings.Split(r.StreamPath, "/")
178+
r.AppName = param[0]
179+
r.StreamName = param[len(param)-1]
180+
156181
Streams.m[r.StreamPath] = r
157182
utils.Print(Green("Stream publish:"), BrightCyan(r.StreamPath))
158183
go r.waitClose(closeChann)

0 commit comments

Comments
 (0)