mirror of
https://github.com/bluenviron/mediamtx.git
synced 2025-12-25 20:41:59 -08:00
add new arguments --read-timeout and --write-timeout
This commit is contained in:
parent
3113c9e476
commit
dc52266a70
4 changed files with 17 additions and 8 deletions
|
|
@ -73,6 +73,8 @@ Flags:
|
|||
--rtsp-port=8554 port of the RTSP TCP listener
|
||||
--rtp-port=8000 port of the RTP UDP listener
|
||||
--rtcp-port=8001 port of the RTCP UDP listener
|
||||
--read-timeout=5s timeout for read operations
|
||||
--write-timeout=5s timeout for write operations
|
||||
--publish-user="" optional username required to publish
|
||||
--publish-pass="" optional password required to publish
|
||||
--pre-script="" optional script to run on client connect
|
||||
|
|
|
|||
17
main.go
17
main.go
|
|
@ -13,11 +13,6 @@ import (
|
|||
|
||||
var Version string = "v0.0.0"
|
||||
|
||||
const (
|
||||
_READ_TIMEOUT = 5 * time.Second
|
||||
_WRITE_TIMEOUT = 5 * time.Second
|
||||
)
|
||||
|
||||
type trackFlow int
|
||||
|
||||
const (
|
||||
|
|
@ -50,6 +45,8 @@ type args struct {
|
|||
rtspPort int
|
||||
rtpPort int
|
||||
rtcpPort int
|
||||
readTimeout time.Duration
|
||||
writeTimeout time.Duration
|
||||
publishUser string
|
||||
publishPass string
|
||||
preScript string
|
||||
|
|
@ -77,6 +74,12 @@ func newProgram(args args) (*program, error) {
|
|||
if args.rtcpPort == 0 {
|
||||
args.rtcpPort = 8001
|
||||
}
|
||||
if args.readTimeout == time.Duration(0) {
|
||||
args.readTimeout = 5 * time.Second
|
||||
}
|
||||
if args.writeTimeout == time.Duration(0) {
|
||||
args.writeTimeout = 5 * time.Second
|
||||
}
|
||||
|
||||
if args.version == true {
|
||||
fmt.Println("rtsp-simple-server " + Version)
|
||||
|
|
@ -170,6 +173,8 @@ func main() {
|
|||
argRtspPort := kingpin.Flag("rtsp-port", "port of the RTSP TCP listener").Default("8554").Int()
|
||||
argRtpPort := kingpin.Flag("rtp-port", "port of the RTP UDP listener").Default("8000").Int()
|
||||
argRtcpPort := kingpin.Flag("rtcp-port", "port of the RTCP UDP listener").Default("8001").Int()
|
||||
argReadTimeout := kingpin.Flag("read-timeout", "timeout for read operations").Default("5s").Duration()
|
||||
argWriteTimeout := kingpin.Flag("write-timeout", "timeout for write operations").Default("5s").Duration()
|
||||
argPublishUser := kingpin.Flag("publish-user", "optional username required to publish").Default("").String()
|
||||
argPublishPass := kingpin.Flag("publish-pass", "optional password required to publish").Default("").String()
|
||||
argPreScript := kingpin.Flag("pre-script", "optional script to run on client connect").Default("").String()
|
||||
|
|
@ -183,6 +188,8 @@ func main() {
|
|||
rtspPort: *argRtspPort,
|
||||
rtpPort: *argRtpPort,
|
||||
rtcpPort: *argRtcpPort,
|
||||
readTimeout: *argReadTimeout,
|
||||
writeTimeout: *argWriteTimeout,
|
||||
publishUser: *argPublishUser,
|
||||
publishPass: *argPublishPass,
|
||||
preScript: *argPreScript,
|
||||
|
|
|
|||
|
|
@ -122,8 +122,8 @@ func newServerClient(p *program, nconn net.Conn) *serverClient {
|
|||
p: p,
|
||||
conn: gortsplib.NewConnServer(gortsplib.ConnServerConf{
|
||||
NConn: nconn,
|
||||
ReadTimeout: _READ_TIMEOUT,
|
||||
WriteTimeout: _WRITE_TIMEOUT,
|
||||
ReadTimeout: p.args.readTimeout,
|
||||
WriteTimeout: p.args.writeTimeout,
|
||||
}),
|
||||
state: _CLIENT_STATE_STARTING,
|
||||
write: make(chan *gortsplib.InterleavedFrame),
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ func (l *serverUdpListener) log(format string, args ...interface{}) {
|
|||
func (l *serverUdpListener) run() {
|
||||
go func() {
|
||||
for w := range l.write {
|
||||
l.nconn.SetWriteDeadline(time.Now().Add(_WRITE_TIMEOUT))
|
||||
l.nconn.SetWriteDeadline(time.Now().Add(l.p.args.writeTimeout))
|
||||
l.nconn.WriteTo(w.buf, w.addr)
|
||||
}
|
||||
}()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue