@@ -2,6 +2,7 @@ package engine
22
33import (
44 "context"
5+ "strings"
56 "sync"
67 "time"
78
@@ -54,7 +55,7 @@ func init() {
5455var Streams StreamCollection
5556var StreamTimeoutError = errors .New ("timeout" )
5657
57- //FindStream 根据流路径查找流
58+ // FindStream 根据流路径查找流
5859func FindStream (streamPath string ) * Stream {
5960 return Streams .GetStream (streamPath )
6061}
@@ -92,21 +93,39 @@ func (r *StreamContext) Update() {
9293
9394// Stream 流定义
9495type 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
112131func (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