Increase RTMP client compatibility

This commit is contained in:
Ingo Oppermann 2022-09-14 14:49:03 +02:00
parent f752080f4a
commit 6c0f2974f0
2 changed files with 30 additions and 3 deletions

View File

@ -69,6 +69,9 @@ func (s *server) log(who, action, path, message string, client net.Addr) {
}
func (s *server) handlePlay(conn *rtmp.Conn) {
client := conn.NetConn().RemoteAddr()
s.log("PLAY", "INVALID", conn.URL.Path, "not supported", client)
conn.Close()
}
@ -108,15 +111,23 @@ func main() {
var cert string
var key string
var help bool
var addr string
var app string
var token string
flag.StringVar(&cert, "cert", "", "Path to the certifacate file")
flag.StringVar(&key, "key", "", "Path to the key file")
flag.StringVar(&addr, "addr", ":1935", "Address to listen on")
flag.StringVar(&app, "app", "/", "RTMP app, should start with /")
flag.StringVar(&token, "token", "", "Token query string")
flag.BoolVar(&help, "h", false, "Show options")
flag.Parse()
config := Config{
Addr: ":1935",
Addr: addr,
App: app,
Token: token,
}
server, _ := New(config)

View File

@ -426,9 +426,15 @@ var CodecTypes = flv.CodecTypes
func (self *Conn) writeBasicConf() (err error) {
// > SetChunkSize
if err = self.writeSetChunkSize(1024 * 1024 * 128); err != nil {
if self.isserver {
if err = self.writeSetChunkSize(self.readMaxChunkSize); err != nil {
return
}
} else {
if err = self.writeSetChunkSize(1024 * 1024 * 1); err != nil {
return
}
}
// > WindowAckSize
if err = self.writeWindowAckSize(1024 * 1024 * 3); err != nil {
return
@ -471,12 +477,17 @@ func (self *Conn) readConnect() (err error) {
if ok {
tcurl, _ = _tcurl.(string)
}
connectparams := self.commandobj
if err = self.writeBasicConf(); err != nil {
return
}
if err = self.flushWrite(); err != nil {
return
}
// > _result("NetConnection.Connect.Success")
if err = self.writeCommandMsg(3, 0, "_result", self.commandtransid,
flvio.AMFMap{
@ -1180,6 +1191,7 @@ func (self *Conn) fillChunkHeader(b []byte, csid uint32, timestamp int32, msgtyp
if Debug {
fmt.Printf("rtmp: write chunk msgdatalen=%d msgsid=%d\n", msgdatalen, msgsid)
fmt.Print(hex.Dump(b[:msgdatalen]))
}
return
@ -1568,6 +1580,10 @@ func (self *Conn) handleMsg(timestamp uint32, msgsid uint32, msgtypeid uint8, ms
}
self.readAckSize = pio.U32BE(self.msgdata)
return
default:
if Debug {
fmt.Printf("rtmp: unhandled msg: %d\n", msgtypeid)
}
}
self.gotmsg = true