mirror of
https://github.com/Monibuca/plugin-rtsp.git
synced 2025-09-27 03:56:08 +08:00
修复获取rtsp列表信息
This commit is contained in:
17
main.go
17
main.go
@@ -22,6 +22,14 @@ var config = struct {
|
||||
AutoPushList map[string]string
|
||||
}{":554", ":8000", ":8001", 0, false, nil, nil}
|
||||
|
||||
type RTSPStreamInfo struct {
|
||||
StreamPath string
|
||||
Type string //流类型,来自发布者
|
||||
StartTime time.Time
|
||||
URL string
|
||||
SubscriberCount int
|
||||
}
|
||||
|
||||
func init() {
|
||||
InstallPlugin(&PluginConfig{
|
||||
Name: "RTSP",
|
||||
@@ -29,10 +37,13 @@ func init() {
|
||||
Run: runPlugin,
|
||||
})
|
||||
}
|
||||
func getRtspList() (info []*RTSPublisher) {
|
||||
func getRtspList() (info []*RTSPStreamInfo) {
|
||||
for _, s := range Streams.ToList() {
|
||||
if rtsp, ok := s.ExtraProp.(*RTSPublisher); ok {
|
||||
info = append(info, rtsp)
|
||||
switch rtsp := s.ExtraProp.(type) {
|
||||
case *RTSPublisher:
|
||||
info = append(info, rtsp.GetInfo())
|
||||
case *RTSPClient:
|
||||
info = append(info, rtsp.GetInfo())
|
||||
}
|
||||
}
|
||||
return
|
||||
|
10
publisher.go
10
publisher.go
@@ -18,6 +18,16 @@ type RTSPublisher struct {
|
||||
processFunc []func([]byte)
|
||||
}
|
||||
|
||||
func (p *RTSPublisher) GetInfo() (info *RTSPStreamInfo) {
|
||||
info = &RTSPStreamInfo{
|
||||
URL: p.URL,
|
||||
StreamPath: p.StreamPath,
|
||||
Type: p.Type,
|
||||
StartTime: p.StartTime,
|
||||
SubscriberCount: len(p.Subscribers),
|
||||
}
|
||||
return
|
||||
}
|
||||
func (p *RTSPublisher) setTracks(tracks gortsplib.Tracks) {
|
||||
if p.processFunc != nil {
|
||||
p.processFunc = p.processFunc[:len(tracks)]
|
||||
|
Reference in New Issue
Block a user