Add default_query setting for RTSP server
This commit is contained in:
+14
-3
@@ -9,20 +9,23 @@ import (
|
|||||||
"github.com/AlexxIT/go2rtc/pkg/tcp"
|
"github.com/AlexxIT/go2rtc/pkg/tcp"
|
||||||
"github.com/rs/zerolog"
|
"github.com/rs/zerolog"
|
||||||
"net"
|
"net"
|
||||||
|
"net/url"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Init() {
|
func Init() {
|
||||||
var conf struct {
|
var conf struct {
|
||||||
Mod struct {
|
Mod struct {
|
||||||
Listen string `yaml:"listen" json:"listen"`
|
Listen string `yaml:"listen" json:"listen"`
|
||||||
Username string `yaml:"username" json:"-"`
|
Username string `yaml:"username" json:"-"`
|
||||||
Password string `yaml:"password" json:"-"`
|
Password string `yaml:"password" json:"-"`
|
||||||
|
DefaultQuery string `yaml:"default_query"`
|
||||||
} `yaml:"rtsp"`
|
} `yaml:"rtsp"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// default config
|
// default config
|
||||||
conf.Mod.Listen = ":8554"
|
conf.Mod.Listen = ":8554"
|
||||||
|
conf.Mod.DefaultQuery = "video&audio"
|
||||||
|
|
||||||
app.LoadConfig(&conf)
|
app.LoadConfig(&conf)
|
||||||
app.Info["rtsp"] = conf.Mod
|
app.Info["rtsp"] = conf.Mod
|
||||||
@@ -50,6 +53,10 @@ func Init() {
|
|||||||
|
|
||||||
log.Info().Str("addr", address).Msg("[rtsp] listen")
|
log.Info().Str("addr", address).Msg("[rtsp] listen")
|
||||||
|
|
||||||
|
if query, err := url.ParseQuery(conf.Mod.DefaultQuery); err == nil {
|
||||||
|
defaultMedias = mp4.ParseQuery(query)
|
||||||
|
}
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
conn, err := ln.Accept()
|
conn, err := ln.Accept()
|
||||||
@@ -79,6 +86,7 @@ var Port string
|
|||||||
|
|
||||||
var log zerolog.Logger
|
var log zerolog.Logger
|
||||||
var handlers []Handler
|
var handlers []Handler
|
||||||
|
var defaultMedias []*streamer.Media
|
||||||
|
|
||||||
func rtspHandler(url string) (streamer.Producer, error) {
|
func rtspHandler(url string) (streamer.Producer, error) {
|
||||||
backchannel := true
|
backchannel := true
|
||||||
@@ -166,6 +174,9 @@ func tcpHandler(conn *rtsp.Conn) {
|
|||||||
conn.SessionName = app.UserAgent
|
conn.SessionName = app.UserAgent
|
||||||
|
|
||||||
conn.Medias = mp4.ParseQuery(conn.URL.Query())
|
conn.Medias = mp4.ParseQuery(conn.URL.Query())
|
||||||
|
if conn.Medias == nil {
|
||||||
|
conn.Medias = defaultMedias
|
||||||
|
}
|
||||||
|
|
||||||
if err := stream.AddConsumer(conn); err != nil {
|
if err := stream.AddConsumer(conn); err != nil {
|
||||||
log.Warn().Err(err).Str("stream", name).Msg("[rtsp]")
|
log.Warn().Err(err).Str("stream", name).Msg("[rtsp]")
|
||||||
|
|||||||
Reference in New Issue
Block a user