mirror of
https://github.com/Monibuca/plugin-rtsp.git
synced 2025-09-26 19:51:14 +08:00
feat: remove pull protocol config
This commit is contained in:
@@ -52,7 +52,6 @@ rtsp:
|
|||||||
rtcpaddr: :8001
|
rtcpaddr: :8001
|
||||||
readbuffercount: 2048
|
readbuffercount: 2048
|
||||||
writebuffercount: 2048
|
writebuffercount: 2048
|
||||||
pullprotocol: tcp # auto, tcp, udp
|
|
||||||
```
|
```
|
||||||
:::tip Configuration override
|
:::tip Configuration override
|
||||||
publish and subscribe, any section not configured will use global configuration.
|
publish and subscribe, any section not configured will use global configuration.
|
||||||
|
@@ -49,7 +49,6 @@ rtsp:
|
|||||||
rtcpaddr: :8001
|
rtcpaddr: :8001
|
||||||
readbuffercount: 2048 # 读取缓存队列大小
|
readbuffercount: 2048 # 读取缓存队列大小
|
||||||
writebuffercount: 2048 # 写出缓存队列大小
|
writebuffercount: 2048 # 写出缓存队列大小
|
||||||
pullprotocol: tcp # auto, tcp, udp
|
|
||||||
```
|
```
|
||||||
:::tip 配置覆盖
|
:::tip 配置覆盖
|
||||||
publish
|
publish
|
||||||
|
26
client.go
26
client.go
@@ -5,6 +5,7 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
|
|
||||||
"github.com/bluenviron/gortsplib/v3"
|
"github.com/bluenviron/gortsplib/v3"
|
||||||
|
"github.com/bluenviron/gortsplib/v3/pkg/base"
|
||||||
"github.com/bluenviron/gortsplib/v3/pkg/url"
|
"github.com/bluenviron/gortsplib/v3/pkg/url"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
"m7s.live/engine/v4"
|
"m7s.live/engine/v4"
|
||||||
@@ -33,15 +34,8 @@ func (p *RTSPPuller) Connect() error {
|
|||||||
ReadBufferCount: rtspConfig.ReadBufferCount,
|
ReadBufferCount: rtspConfig.ReadBufferCount,
|
||||||
AnyPortEnable: true,
|
AnyPortEnable: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
switch rtspConfig.PullProtocol {
|
|
||||||
case "tcp", "TCP":
|
|
||||||
p.Transport = gortsplib.TransportTCP
|
p.Transport = gortsplib.TransportTCP
|
||||||
client.Transport = &p.Transport
|
client.Transport = &p.Transport
|
||||||
case "udp", "UDP":
|
|
||||||
p.Transport = gortsplib.TransportUDP
|
|
||||||
client.Transport = &p.Transport
|
|
||||||
}
|
|
||||||
// parse URL
|
// parse URL
|
||||||
u, err := url.Parse(p.RemoteURL)
|
u, err := url.Parse(p.RemoteURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -58,31 +52,35 @@ func (p *RTSPPuller) Connect() error {
|
|||||||
|
|
||||||
func (p *RTSPPuller) Pull() (err error) {
|
func (p *RTSPPuller) Pull() (err error) {
|
||||||
u, _ := url.Parse(p.RemoteURL)
|
u, _ := url.Parse(p.RemoteURL)
|
||||||
if _, err = p.Options(u); err != nil {
|
var res *base.Response
|
||||||
|
if res, err = p.Options(u); err != nil {
|
||||||
p.Error("Options", zap.Error(err))
|
p.Error("Options", zap.Error(err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
p.Debug("Options", zap.Any("res", res))
|
||||||
// find published tracks
|
// find published tracks
|
||||||
tracks, baseURL, _, err := p.Describe(u)
|
tracks, baseURL, res, err := p.Describe(u)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
p.Error("Describe", zap.Error(err))
|
p.Error("Describe", zap.Error(err))
|
||||||
return
|
return err
|
||||||
}
|
}
|
||||||
|
p.Debug("Describe", zap.Any("res", res))
|
||||||
p.tracks = tracks
|
p.tracks = tracks
|
||||||
err = p.SetTracks()
|
err = p.SetTracks()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
p.Error("SetTracks", zap.Error(err))
|
p.Error("SetTracks", zap.Error(err))
|
||||||
return
|
return err
|
||||||
}
|
}
|
||||||
if err = p.SetupAll(tracks, baseURL); err != nil {
|
if err = p.SetupAll(tracks, baseURL); err != nil {
|
||||||
p.Error("SetupAndPlay", zap.Error(err))
|
p.Error("SetupAndPlay", zap.Error(err))
|
||||||
return
|
return err
|
||||||
}
|
}
|
||||||
p.OnPacketRTPAny(p.OnPacket)
|
p.OnPacketRTPAny(p.OnPacket)
|
||||||
_, err = p.Play(nil)
|
res, err = p.Play(nil)
|
||||||
|
p.Debug("Play", zap.Any("res", res))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
p.Error("Play", zap.Error(err))
|
p.Error("Play", zap.Error(err))
|
||||||
return
|
return err
|
||||||
}
|
}
|
||||||
return p.Wait()
|
return p.Wait()
|
||||||
}
|
}
|
||||||
|
1
main.go
1
main.go
@@ -22,7 +22,6 @@ type RTSPConfig struct {
|
|||||||
RTCPAddr string `default:":8001"`
|
RTCPAddr string `default:":8001"`
|
||||||
ReadBufferCount int `default:"2048"`
|
ReadBufferCount int `default:"2048"`
|
||||||
WriteBufferCount int `default:"2048"`
|
WriteBufferCount int `default:"2048"`
|
||||||
PullProtocol string `default:"tcp"` //tcp、udp、auto
|
|
||||||
sync.Map
|
sync.Map
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user